Table of contents
- Project Description
- Deploying a Web App on AWS ECS with ECR
- Step 1: Set Up an EC2 Instance
- Step 2: Clone the Todo App Repository
- Step 3: Set Up ECR Repository
- Step 4: Install Docker and AWS CLI on EC2 Instance
- Step 5: Authenticate Docker with ECR
- Step 6: Build and Push Docker Image to ECR
- Step 7: Create ECS Cluster
- Step 8: Create Task Definition and Deploy
- Step 9: Check the App
- Conclusion
Project Description
- The project involves deploying a Node JS app on AWS ECS Fargate and AWS ECR. Read More about the tech stack here
Deploying a Web App on AWS ECS with ECR
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>:8000
to 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.
Happy Learning
Thanks For Reading! :)
-SriParthu๐๐ฅ