Manual Install

Steps to install Saturn Cloud Enterprise using directly from a Docker image.

Below are the steps to automatically install Saturn Cloud Enterprise manually. The installation is done via a Docker image. Note that if possible we recommend installing it automatically via the AWS Marketplace instead.

This installer has all of the users accessing AWS via a single IAM user and uses standard roles. If you want to customize the IAM roles and resources being used by Saturn Cloud, see our installation with IAM roles instructions.

In order to follow these instructions, you will need a computing environment to run the commands. We recommend using an AWS EC2 instance running the Ubuntu 20.04 AMI. The computing environment must also have: 1. Console access to your AWS account. 2. A bash-compatible shell to run the AWS commands. 3. Permission in your AWS account to create IAM roles and/or permission to create CloudFormation stacks.

1. Sign up for Saturn Cloud

Visit the Saturn Cloud Installation Manager to register your company with Saturn Cloud. This lets us know on our side that you are setting up our product. After giving us your information, the Installation Manager will direct you to the AWS Marketplace where you can a Saturn Cloud Enterprise subscription your existing AWS account.

Screenshot of signup in AWS Marketplace for Saturn Cloud

2. Create the installation IAM role

Our installer needs an IAM role in order to provision resources into your AWS account, and provide customer support and product updates.

The role created by our cloud formation stack will create a trust relationship to our account. If you are running the installer yourself or if you have security concerns then you can modify the trust relationship to point to your account.

In AWS Console, navigate to the CloudFormation section. Click the "Create Stack" button. From the dropdown, choose the standard option ("With new resources").

Screenshot of AWS Console showing CloudFormation panel, with Create Stack button centered

On the next screen, choose "Template is ready" option in the "Prepare template" section. For the template, use the URL: `https://s3.us-east-2.amazonaws.com/saturn-cf-templates/iam-role.cft`

Click Next.

Screenshot of AWS Console showing Create Stack form

On the next screen, give the stack a name of your choice (for example, "Saturn Cloud Access"). The external ID can be found on the installer page. Click "Next"

Screenshot of AWS Console showing Create Stack form, with Stack Name and Parameters shown

On the next screen, all fields are optional. Proceed to the next page when you have configured these items as desired.

Screenshot of AWS Console showing Configure Stack Options

Review all values on the next page - step back and making corrections if needed. When you're ready to create the stack, check the checkbox next to "I acknowledge that AWS CloudFormation might create IAM resources with custom names." Then, click on the "Create stack" button.

Screenshot of AWS Console showing warning displayed before Create Stack can be selected

Once stack creation is complete, you need to provide the ARN for the created role to the installer in order to continue with the deployment. You may find this info on the "Outputs" tab in the AWS console. The ARN is the string that starts with "arn:aws:iam" in the "Value" column, as shown below.

3. Create your installation configuration

The Saturn Cloud installation need a configuration specific to your organization. The easiest way to create it is to contact [support@saturncloud.io](mailto:support@saturncloud.io). We will help you generate your installation configuration. It will look something like this:

org_name: ...
region: ...
aws_account_id: ...
private_subnets:
- ...
public_subnets:
- ...
worker_subnets:
- ...
enable_irsa: true
Save this file as config.yaml--we'll use it in the next step.

4. Set up the environment to run the Docker container

To run the Docker container that executes the Saturn Cloud Enterprise installer, you first need to set up a computing environment appropriate for this. These steps use an AWS EC2 instance for the hardware that runs the container. While you can use other environments instead, this should be the most straightforward.

To run the Docker container that executes the Saturn Cloud Enterprise installer, you first need to set up a computing environment appropriate for this. These steps use an AWS EC2 instance for the hardware that runs the container. While you can use other environments instead, this should be the most straightforward.

4.1 Start an AWS EC2 instance

Create and start an AWS EC2 instance with the Ubuntu 20.04 AMI. This EC2 instance needs to have the IAM role associated with it that you are using for the Saturn Cloud installation process.

4.2 Install Docker into the EC2 instance

Once the instance is created, you'll need to install Docker using the following commands:


sudo apt-get update

sudo apt-get install \
    ca-certificates \
    curl \
    gnupg \
    lsb-release

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt-get update

sudo apt-get install docker-ce docker-ce-cli containerd.io

4.3 Copy the installation configuration

Next, copy the config.yaml file from the earlier steps onto the machine. You do not need to save it in any particular location, but keep track of the path you saved it to.

4.4 Set the environment variables

From there, you'll need to set environment variables for the installation:

export INSTALLER_TAG=...
export DATA_DIR=....
export AWS_DEFAULT_REGION=...

We will provide you with the INSTALLER_TAG, which will point to the latest version of our Installer. DATA_DIR should point to a directory on disk where you've written the config.yaml from Step (4b). AWS_DEFAULT_REGION should be the same as the region you want to see your resources on AWS UI (EX: us-east-2).

5. Run the installer to setup AWS resources

You can now run the installation Docker container on the EC2 instance using the following command:

docker run -e AWS_DEFAULT_REGION=$AWS_DEFAULT_REGION --rm -it -v ${DATA_DIR}:/sdata saturncloud/saturn-aws:${INSTALLER_TAG} python saturn_aws/scripts/main.py install --skip-k8s

This Docker container will install Saturn Cloud within your AWS account. This will take some time - typically 15-45 minutes. If you encounter errors, contact us and we will help debug. The last step - associating the OIDC provider can take up to 30 minutes.

6. Run the installer to setup k8s resources

Finally, we need to set up the Kubernetes cluster for Saturn Cloud. Run the following command from the installation EC2 instance

docker run -e AWS_DEFAULT_REGION=$AWS_DEFAULT_REGION --rm -it -v ${DATA_DIR}:/sdata saturncloud/saturn-aws:${INSTALLER_TAG} python saturn_aws/scripts/main.py install-k8s

You may stop your installation EC2 instance, but do not terminate it. You can use this instance in the future for updates. Please backup a copy of the config.yaml file

At this point the installation of Saturn Cloud Enterprise should be complete. You will recieve an email with details of your Saturn Cloud Enterprise installation. You will be able to access your saturn cloud account at https://app.{orgname}.saturnenterprise.io, where {orgname} depends on the organization name used when signing up for Saturn Cloud. After installing we recommend you have data scientists try it out, and reach out to us to schedule a demo.