DEV Community

Rajesh Kumar
Rajesh Kumar

Posted on

Deploy dockerized app in aws ecs with fresh new vpc.

After struggling for few days to deploy a dockerrized applicatin in ECS, found the solution & simplified into script, so that anyone can deploy easily simply replacing app folder.

This example is for deployment of App with fresh new VPC. Vpc will be created during ecs/fargate deployment.

git location

Requirement an application to deploy in Aws ECS

  1. Project must dockerized. In my repo, its demo-app folder which is nestjs based simple application.You can have java/nodejs/python any kind of project as long as it is dockerized.
  2. aws cli & terraform cli must be installed in your command line.

    aws --version
    terraform --version

  3. aws details must be avaialble
    export AWS_REGION=ap-southeast-1
    export AWS_PROFILE=dev // dev profile must match in terraform/providers.ts file

  4. It will create fresh new VPC for ecs/fargate deployment.

  5. After successfully deployment, terraform will print the alb path as

demoapp_alb_hostname =

Steps to deploy

Clone the project into your local.

a. Validate aws profile

export AWS_PROFILE=dev

this dev profile name must match with deploy/terraform/

# Specify the provider and access details
provider "aws" {
  shared_credentials_file = "$HOME/.aws/credentials"
  profile                 = "dev"
  region                  = var.aws_region
Enter fullscreen mode Exit fullscreen mode
b. Update shell script file

Two shell script files exist inside deploy folder.

  1. : Update aws profile details in this file. This file will create aws ecr repository for project. And print a link after successulry created. Eg -

This is ECR_REPO_PATH for your project.

  1. push_image_to_ecr_& : Update aws profile details & ECR_REPO_PATH. This file will follows below step.
    • create docker container,
    • container will tagged for ecr repo,
    • push into ecr repository
    • application deploy into aws ecs from ecr.
c. Execution

Now in final steps, after updating above details, go to deploy folder in command line.

  1. Run file for creating repo.
  2. Run push_image_to_ecr_& to deploy application
d. Destroy in Aws

Cleaning or deleteing all resources from aws, use below steps-

  1. Go to deploy/terraform folder location in command line & run below command
terraform destroy 
Enter fullscreen mode Exit fullscreen mode

How to deploy your own application

  1. Replace your application inside demo-app content & make sure your application working dockerized. Please do not change demo-app
  2. Create health check api - api/index. This is configured inside terraform/ file in terraform folder

variable "demoapp_health_check_path" {
default = "/api/index"

  1. Optional step- to create your all configuration with a new name, do a find all for "demoapp" text inside terraform folder and replace with ur own text. For example- replace "demoapp" text with "customerapp". Then do terraform plan, and check all things are working or not. if any place, please rename according to your text.

Play with terraform, ecr & ecs to explore more.

Discussion (0)