How to install Charmed Kubeflow on AWS with CloudFormation

We provide an out-of-the-box Charmed Kubeflow (CKF) solution on AWS. The solution is packaged as an AWS CloudFormation template. The template provisions an EC2 instance, runs a MicroK8s cluster on this instance and deploys CKF to the cluster.


  1. Install Kubeflow with AWS CloudFormation template
  2. Fill in the form
  3. Enable SSH to the instance
  4. Access the dashboard

Install Kubeflow with AWS CloudFormation template

Clone the kubeflow-aws-appliance repository for the CloudFormation source code.

Log in to the AWS console. Switch to the US East 1 region.


The CloudFormation template provided will only work in the US East 1 region. There is an open issue to address this.

Head to the CloudFormation service and upload the template file: Create stack > Template is ready > Upload a template file > Choose File > cf_kubeflow_single_instance.yaml

After the template file is loaded, click Next.

Fill in the form

By default the template provides reasonable defaults but you still need to fill the stack name, KeyPair and Password fields.

If you are creating multiple stacks simultaneously using this template, then you must specify a unique AppName for each one. There is an open issue to address this.

See more: The AWS Kubeflow CloudFormation form

After filling the Parameters, click Next.

You can leave the options as they are and click Next.

At the very end, there is a section that starts with The following resource(s) require capabilities. Tick the “I acknowledge…” box. Then click Submit. Your form is now submitted.

Wait until the stack goes to the green CREATE_COMPLETE status.

Enable SSH to the instance

By default, the ssh port for the security group connected with the EC2 instance is disabled. Enable ssh to the instance as follows by adding an inbound rule to the security group. See AWS documentation authorizing access for more detailed steps.

Now you should be able to ssh with the key you provided in the form.

$ ssh -i <key-pair>.pem -D 9999 ubuntu@<ec2-ip>

Waiting for deployment

After deployment you need to wait until Kubeflow is ready. The whole setup takes around 40 minutes. You can ssh into the instance and run:

juju status --watch 5s

Wait until all listed units are in Active state.

Access the dashboard

See: Install > Access the dashboard

Please note that an internet connection is required in order to deploy the product. The following components are downloaded as part of the bundle: Notebook, Katib, KServe, Pipeline, Tensorboard. This AMI requires an ongoing internet connection, in order to have all components of the bundle correctly. The dashboard access needs network proxy changes. The bundle components are subject to changes at any update.

Last updated 15 days ago.