> For the complete documentation index, see [llms.txt](https://docs.codeocean.com/admin-guide/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.codeocean.com/admin-guide/v2.2/deployment-guide/cloudformation-deployment.md).

# CloudFormation Deployment

When you have completed prerequisites and have hosting domain information handy, you can continue deploying Code Ocean via AWS CloudFormation. Visit [AWS CloudFormation's website](https://aws.amazon.com/cloudformation/) for more information.

## Create CloudFormation Stack

Code Ocean deployment is publicly available via AWS S3. Go to AWS CloudFormation -> Stacks -> Create stack or [follow this link](https://console.aws.amazon.com/cloudformation/home?#/stacks/new?stackName=codeocean\&templateURL=https://codeocean-vpc.s3.amazonaws.com/templates/v2.2.0/codeocean.template.yaml) (to autofill all the fields) to start creating a deployment stack in CloudFormation, with Code Ocean's latest release template.

The following steps are consistent with the steps of creating a stack in AWS CloudFormation.

### Step 1 - Specify the template

1. Choose **Template is ready** in the Prerequisite section.
2. Choose **Amazon S3 URL** in the Specify template section.
3. Enter [https://codeocean-vpc.s3.amazonaws.com/templates/v2.2.0/codeocean.template.yaml](<https://codeocean-vpc.s3.amazonaws.com/templates/v2.2.0/codeocean.template.yaml&#xA;>)
4. Click **Next**.&#x20;

![](/files/-MYvI0tj7fRBFEL8QkmC)

### Step 2 - Specify stack details

Most configuration parameters are set to the recommended defaults.&#x20;

1. Choose a name for the deployment stack, the default will be `codeocean`.
2. Set `DNS name` to `codeocean`.
3. Set `DNS Root Domain` to the hosting domain (e.g. `[company].com`). Visit [Prerequisites](/admin-guide/v2.2/deployment-guide/prerequisites.md#choose-a-hosting-domain) if you need more information.
4. Set `Availability Zone 1` and `Availability Zone 2` for the VPC
5. Scroll to the bottom and click **Next**.

![](/files/-MhE6BQDA5iVzCnhMemW)

{% hint style="warning" %}
**Stack Parameters** are set by default to their recommended values for the default internet-facing deployment type. Please visit [Deployment Parameters](/admin-guide/v2.2/deployment-guide/deployment-parameters.md) page for the full list of parameters and their purpose. Note that there are some changes required according to AWS region and/or deployment type.

Please contact our support or email <support@codeocean.com> if you have any questions or you need help regarding parameters values.
{% endhint %}

### Step 3 - Configure stack options (optional)

You can specify tags (key-value pairs) for resources in your stack and set advanced options.&#x20;

Click **Next** when you are done.

![](/files/-MZa7NmhoJKeKcHXi7D4)

{% hint style="info" %}
Visit the [Resource tag](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html) page on AWS for more information about specifying tags.

Visit the [AWS CloudFormation stack options](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-add-tags.html) page on AWS for more information about advanced options.&#x20;
{% endhint %}

### Step 4 - Review

1. Review and assure that all the details are correct.
2. Check the box to acknowledge that CloudFormation might create IAM resources.
3. Click **Create Stack** to start the deployment.

After you click on Create Stack, you will be redirected to the stack screen where you can follow the progress of your stack deployment :

![](/files/-MYvIFxcfhWGgpxKNVqE)

## SSL Certificate Approval

For the deployment to be completed successfully, your hostmaster/system administrator must approve the SSL certificate. You will receive an email from AWS asking you to approve the certificate.&#x20;

![](/files/-MYvIL9QzEdp4NbHviG-)

This email will be sent to the following email addresses:

* administrator\@your\_domain\_name
* hostmaster\@your\_domain\_name
* postmaster\@your\_domain\_name
* webmaster\@your\_domain\_name
* admin\@your\_domain\_name

{% hint style="warning" %}
You must have access to one of these email addresses. The deployment will eventually fail if you are unable to log in or if you direct someone else to log in to approve the certificate request.&#x20;
{% endhint %}

To approve the certificate request:&#x20;

1. Choose the **Amazon Certificate Approvals** link in the email.&#x20;
2. Click **I Approve** on the page you get directed to.

{% hint style="info" %}
For more information and examples, see Use Email to Validate Domain Ownership in the [ACM documentation](https://docs.aws.amazon.com/acm/latest/userguide/email-validation.html).
{% endhint %}

## Deployment Completion

When the deployment is finished, the state of the CloudFormation stack will turn into `CREATE_COMPLETE` .

![](/files/-MYvIQ0grjNJEJ9zEYMy)
