To deploy the new version of a Docker container image and launch new tasks with the new version
Build and push the new Docker image
- Build the new Docker container image
- Push the new image to ECR (Elastic Container Registry)
Create a new revision of the ECS Task Definition
Open the ECS section of the AWS Console
On the Amazon ECS page click Clusters and select the cluster

On the Services tab click the Task Definition

On the Task Definition page click the Create new revision button

Scroll down to the Container Definitions section select the container definition

In the Image field update the Docker image version

Click the Update button at the bottom of the Container page

Click the Create button at the bottom of the Task Definition page

A new task definition revision has been created

Update the Service to use the new Task Definition revision
Go back to the Cluster

On the Services tab select the service

In the upper right corner click the Update button

In the Revision dropdown select the new Task Definition revision

At the bottom of the Configure service page click the Next step button. If you click the “Skip to review” button, the task definition revision is not updated in the service!!!

Select the CodeDeploy deployment

At the bottom of the Review page click the Update Service button

Click the service name to return to the service

Deregister the old Task Definition revision
If we don’t use the blue-green deployment with CodeDeploy, we need to manually deregister the old revision of the task definition to force the service to direct all traffic to the new task definition.
To tell the service to use only the new revision of the Task Definition deregister the old revision otherwise both versions will run side-by-side in the service
Return to the Task Definition

Select the old revision of the Task Definition and select Deregister in the drop-down

Click the Deregister button

Check the running tasks
On the Tasks tab of the cluster, only the new revision of the Task Definition should run. If there are open connections to the old revision, it stays in running state with the INACTIVE status until those connections are closed.

Update the Scheduled Tasks
If you have configured a scheduled task based on the task definition you need to update the task definition reference to specify the latest revision.
Select the cluster

Select the Scheduled Tasks tab

Select the scheduled task

Click the arrow next to the Target name and check the Task definition revision

To edit the Task definition revision click the Edit button in the upper right corner

In the Schedule targets section click the arrow next to the Target name. The revision will be auto-populated with the latest value.

Click the Update button at the bottom of the page to save the new value.

Click the View scheduled task button to check the revision

Click the arrow next to the Target name and check the revision.
