- Create an IAM user with Administrator access here
- Create Access key for the above user for CLI access. You will find the option under Security Credentials tab on the IAM user console.
- Install aws cli on your machine. Steps here.
- Run
aws configure --profile asmigar
. It will prompt for the Access Key and Secret Access Key you created in Step 2.
$ aws configure --profile asmigar
AWS Access Key ID [None]: [Enter your access key id here. And then press enter]
AWS Secret Access Key [None]: [Enter your corresponding secret access key here. And then press enter]
Default region name [None]: [You can keep it blank. So just press Enter]
Default output format [None]: [You can keep it blank. So just press Enter]
- Verify your aws creds are configured by running
aws iam list-users --profile asmigar
. You should at least see the admin user you created in step 1.
$ aws iam list-users --profile asmigar
{
"Users": [
{
"Path": "/",
"UserName": "SagarM",
"UserId": "AIDA5FTY6HTRVAX2LBERT",
"Arn": "arn:aws:iam::905417997539:user/SagarM",
"CreateDate": "2024-03-26T11:11:14+00:00",
"PasswordLastUsed": "2024-04-01T04:59:30+00:00"
}
]
}
- Apply the
remote_state
terraform project. This will create s3 bucket and lock table for keeping remote state for other tf projects.
cd infra/accounts/dev/remote_state; terraform init; terraform apply
- Apply the
ecs
terraform project.
cd infra/accounts/dev/hello-world; terragrunt init; terragrunt apply
This will output
- URL to access the web server.
- ECR repo url where docker images should be pushed.
- Make desired code changes to
src
directory. - Run docker build
cd src; docker build -t <docker_ecr_repo_url>:<version> .
- Docker login into the ECR repo
aws ecr get-login-password --region us-east-1 --profile asmigar | docker login --username AWS --password-stdin <ecr_repo_url>
- Publish docker image
docker push <docker_ecr_repo_url>:<version>
- Apply the
ecs
terraform project with the version provided in above step
cd infra/accounts/dev/hello-world; terragrunt apply -var="release_version=<release_version>"
- Create Github Action workflow for Prod env