Deploy a New Version of the Application (v2)

작성자

카테고리:

← 피드로
DEV Community · Aisalkyn Aidarova · 2026-07-20 개발(SW)

Aisalkyn Aidarova

you deployed version 1 of the application.

Today, Jules (the developer) sends you a message:

“I fixed several bugs and added a new feature. Please deploy Version 2.”

As a DevOps Engineer, you do not change the code. You receive the updated code and deploy the new version safely.

Learning Objectives

By the end of this lab, you will:

  • Pull the latest code from GitHub
  • Build a new Docker image
  • Tag the image as v2
  • Push the new image to Amazon ECR
  • Update the ECS Task Definition
  • Deploy the new version to ECS
  • Verify that the new version is running
  • Understand rolling deployments

Architecture

Developer
      │
      ▼
Updated Source Code
      │
      ▼
Docker Image v2
      │
      ▼
Amazon ECR
      │
      ▼
New ECS Task Definition
      │
      ▼
ECS Service Update
      │
      ▼
Application Load Balancer
      │
      ▼
Users See Version 2

Enter fullscreen mode Exit fullscreen mode

Step 1 – Receive the Updated Code

The developer pushes new code to GitHub.

Open the updated project.

Why?

Developers continuously improve applications by fixing bugs and adding features.

Step 2 – Build a New Docker Image

docker build -t restaurant-app:v2 .

Enter fullscreen mode Exit fullscreen mode

Verify:

docker images

Enter fullscreen mode Exit fullscreen mode

You should now see:

restaurant-app:v1

restaurant-app:v2

Enter fullscreen mode Exit fullscreen mode

Why?

Every application change requires a new Docker image.

Never overwrite an existing image with the same version tag.

Step 3 – Test Version 2

docker run -p 3000:3000 restaurant-app:v2

Enter fullscreen mode Exit fullscreen mode

Verify the application works.

Why?

Always test before deploying.

Step 4 – Tag the Image

docker tag restaurant-app:v2 ACCOUNT_ID.dkr.ecr.us-east-1.amazonaws.com/restaurant-app:v2

Enter fullscreen mode Exit fullscreen mode

Step 5 – Push Version 2 to Amazon ECR

docker push ACCOUNT_ID.dkr.ecr.us-east-1.amazonaws.com/restaurant-app:v2

Enter fullscreen mode Exit fullscreen mode

Open Amazon ECR.

Verify that both images exist:

v1

v2

Enter fullscreen mode Exit fullscreen mode

Why?

Keeping multiple image versions allows you to roll back if something goes wrong.

Step 6 – Create a New ECS Task Definition Revision

Open Amazon ECS.

Select the existing Task Definition.

Click Create New Revision.

Change only the image URI from:

restaurant-app:v1

Enter fullscreen mode Exit fullscreen mode

to

restaurant-app:v2

Enter fullscreen mode Exit fullscreen mode

Save the new revision.

Why?

Task Definitions are versioned.

Instead of editing the old one, AWS creates a new revision for each deployment.

Step 7 – Update the ECS Service

Select your ECS Service.

Click Update Service.

Choose the latest Task Definition revision.

Deploy.

Why?

The ECS Service replaces old containers with new ones using the updated image.

Step 8 – Watch the Rolling Deployment

Open the ECS Service.

Observe:

  • New task starts.
  • Health checks pass.
  • Old task stops.
  • New task becomes active.

Why?

This is called a rolling deployment. It helps reduce downtime because the new container starts before the old one is removed.

Step 9 – Test the Application

Open the ALB DNS name.

Verify that Version 2 is displayed or that the new feature is available.

Lab Complete

You have successfully:

  • Deployed Version 2
  • Created a new Docker image
  • Pushed it to ECR
  • Created a new Task Definition revision
  • Updated the ECS Service
  • Completed a rolling deployment

Questions

  1. Why did we create a new image instead of modifying v1?
  2. Why is a new Task Definition revision required?
  3. What is a rolling deployment?
  4. How does ECS reduce downtime during deployments?
  5. Why is it useful to keep old image versions in ECR?
  6. What would you do if Version 2 failed after deployment?

원문에서 계속 ↗

코멘트

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다