Skip to main content

Command Palette

Search for a command to run...

Day 85: Deploying a Web App on AWS ECS with ECR (Feb 19, 2024)

Published
2 min read
Day 85: Deploying a Web App on AWS ECS with ECR (Feb 19, 2024)
M

Hey there! I'm currently working as an Associate DevOps Engineer, and I'm diving into popular DevOps tools like Azure Devops,Linux, Docker, Kubernetes,Terraform and Ansible. I'm also on the learning track with AWS certifications to amp up my cloud game. If you're into tech collaborations and exploring new horizons, let's connect!

Introduction

In the world of cloud computing, deploying applications has become more efficient and scalable. Amazon Web Services (AWS) provides a range of services that enable developers to easily deploy and manage their applications. In this step-by-step guide, we'll walk through the process of deploying a Todo app on AWS ECS (Elastic Container Service) using ECR (Elastic Container Registry). This tutorial assumes you have a basic understanding of AWS services and have an AWS account.

Step 1: Set Up an EC2 Instance

  1. Launch an EC2 instance with Amazon Linux or any other suitable Amazon Machine Image (AMI).

  2. SSH into the instance.

ssh -i your-key.pem ec2-user@your-instance-ip

Step 2: Clone the Todo App Repository

Clone the Todo app repository from your version control system (e.g., GitHub).

git clone https://github.com/your-username/todo-app.git
cd todo-app

Step 3: Set Up ECR Repository

  1. Navigate to the AWS Management Console and open the Elastic Container Registry (ECR).

  2. Create a new repository named node-app.

Step 4: Install Docker and AWS CLI on EC2 Instance

Install Docker and the AWS CLI on your EC2 instance.

sudo apt update -y
sudo apt install docker.io
sudo usermod -a -G docker ubuntu
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install

Step 5: Authenticate Docker with ECR

Run the following command to retrieve an authentication token and authenticate your Docker client with your ECR registry.

aws ecr-public get-login-password --region us-east-1 | docker login --username AWS --password-stdin public.ecr.aws/u1o8l9k6

Step 6: Build and Push Docker Image to ECR

Build your Docker image and push it to the ECR repository.

docker build -t node-app .
docker tag node-app:latest public.ecr.aws/u1o8l9k6/node-app:latest
docker push public.ecr.aws/u1o8l9k6/node-app:latest

Step 7: Create ECS Cluster

  1. Navigate to ECS in the AWS Management Console.

  2. Create a new cluster named node-todo-cluster.

  3. Choose Fargate as the launch type.

Step 8: Create Task Definition and Deploy

  1. Create a new task definition named node-todo-app-task-definition.

  2. Select the task definition and click on "Deploy," then "Run Task."

Step 9: Check the App

  1. Once the task is running, note the public IP of your Fargate instance.

  2. Open a web browser and navigate to <public-ip>:8000 to check if the Todo app is running.

More from this blog

DevOps Journey with M Hassan

174 posts

I am writing these blogs because I recently completed a comprehensive DevOps course where I gained in-depth knowledge of the topics mentioned. As I progressed through the course, I realized the importance of having a concise and accessible resource to revise and reinforce my understanding of each topic. Therefore, I decided to create cheat sheets in the form of blog posts. These cheat sheets will not only serve as a handy reference for myself but also benefit others who are also interested in mastering DevOps concepts. By documenting each topic and providing concise explanations, I aim to create a valuable resource that simplifies complex concepts and facilitates hands-on practice. This way, I can solidify my own understanding while helping others on their DevOps journey.