Deploying a Todo App on AWS ECS with ECR

I am a software engineer with a foundation in software development and expertise in a suite of powerful tools including Docker, Kubernetes, Terraform, Ansible, Helm, Grafana, Prometheus, and Python.
Being AWS Certified further solidifies my proficiency in AWS services and cloud architecture. I am on a mission to master the principles of DevOps. My experience in crafting efficient and robust software solutions, combined with AWS certification, equips me with the skills to optimize processes and enhance system performance.
Let's build a better future through innovation and continuous improvement!
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
Launch an EC2 instance with Amazon Linux or any other suitable Amazon Machine Image (AMI).
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
Navigate to the AWS Management Console and open the Elastic Container Registry (ECR).
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
Navigate to ECS in the AWS Management Console.
Create a new cluster named
node-todo-cluster.Choose Fargate as the launch type.

Step 8: Create Task Definition and Deploy
Create a new task definition named
node-todo-app-task-definition.Select the task definition and click on "Deploy," then "Run Task."


Step 9: Check the App
Once the task is running, note the public IP of your Fargate instance.
Open a web browser and navigate to
<public-ip>:8000to check if the Todo app is running.


Conclusion
Congratulations! You have successfully deployed a Todo app on AWS ECS using ECR. This step-by-step guide covered setting up an EC2 instance, cloning the Todo app repository, configuring ECR, installing Docker and AWS CLI, building and pushing a Docker image, creating an ECS cluster, defining tasks, and finally deploying and checking the app. This workflow provides a scalable and efficient way to deploy containerized applications on AWS.
Follow me on LinkedIn.
Checkout my GitHub profile.




