# First deploy on AWS

A step of the [Cloud application](https://gradus.kazet.blog/tree/cloud-application) tree on Gradus, in the Environment setup area: First commit to first deploy.

Page: https://gradus.kazet.blog/tree/cloud-application/step/deploy-aws

Deploy the image to ECS Express Mode from CI on every merge to main, authenticated with an OIDC role rather than access keys, behind a public HTTPS URL.

One option of Cloud provider: AWS. The others: Google Cloud.

Usually comes after: [Choose where to run](https://gradus.kazet.blog/tree/cloud-application/step/choose-cloud).

## Prompt for your AI assistant

```
Deploy this project's container image to Amazon ECS Express Mode from the CI workflow on every merge to the main branch: push the image to an ECR repository, create the IAM roles the service needs and an OIDC identity provider and a deploy role so the workflow authenticates with a short-lived token and no access keys, pass configuration through environment variables and expose a public HTTPS URL. Cap the service at a small maximum number of tasks, so a spike or a loop cannot run up the bill. Add the account id and the service URL to the cloud provider decision record.
```

Every step of the tree: https://gradus.kazet.blog/tree/cloud-application/llms.txt
