Deploy Docker Containers on Amazon ECS
HOW-TO GUIDE
Overview
AWS experience
Beginner
Time to complete
10 minutes
Cost to complete
Cost will vary by region, and will be around $0.004 / hour of running the container
Requires
- AWS account
- Recommended browser: The latest version of Chrome or Firefox
[**]Accounts created within the past 24 hours might not yet have access to the services required for this guide.
Services used
Last updated
Aug 11, 2022
Step 1: Set up your first run with Amazon ECS
a. To launch the Amazon ECS first-run wizard, choose the Get started button. (If your layout looks different, disable the New ECS Experience toggle button at the top left of the console).
Step 2: Create container and task definition
A task definition is like a blueprint for your application. In this step, you will specify a task definition so Amazon ECS knows which Docker image to use for containers, how many containers to use in the task, and the resource allocation for each container.
a. In the Container definition field, select sample-app.
b. The task definition comes preloaded with default configuration values.
Review the default values and choose Next.
If you prefer to modify the configurations or would like to learn more, see Task definition parameters.
Step 3: Define your service
Now that you have created a task definition, you will configure the Amazon ECS service. A service launches and maintains copies of the task definition in your cluster. For example, by running an application as a service, Amazon ECS will auto-recover any stopped tasks and maintain the number of copies you specify.
a. Service options come preloaded with default configuration values.
- Service name: The default sample-app-service is a web-based "Hello World" application provided by AWS. It is meant to run indefinitely; because it is running as a service, it will restart if the task becomes unhealthy or unexpectedly stops.
- Number of desired tasks: Leave the default value of 1. This will create one copy of your task.
b. Load balancing: You have the option to use a load balancer with your service. Amazon ECS can create an Elastic Load Balancing (ELB) load balancer to distribute the traffic across the container instances your task is launched on.
Select the Application Load Balancer option.
The default values for Load balancer listener port and Load balancer listener protocol are set up for the sample application. For more information on load balancing configuration, see Service load balancing.
Review your settings and choose Next.
Step 4: Configure your cluster
Your Amazon ECS tasks run on a cluster, which uses AWS Fargate to provide the compute engine so that you do not need to manage servers. In this step, you will configure the cluster.
a. In the Cluster name field, enter sample-cluster and choose Next.
Step 5: Launch and view your resources
In the previous steps, you configured your task definition (which is like an application blueprint), the Amazon ECS service (which launches and maintains copies of your task definitions), and your cluster. In this step, you will review, launch, and view the resources you create.
a. You have a final chance to review your task definition, task configuration, and cluster configuration before launching. Choose Create.
b. You are on a Launch Status page that shows the status of your launch and describes each step of the process. After the launch is complete, choose View service.
Step 6: Open the sample application
In this step, you will verify that the sample application is up and running by pointing your browser to the load balancer DNS name.
a. On the sample-app-service page, select the Details tab and select the entry under Target Group Name.
b. On the Target groups page, select the target group name.
c. In the Details section, choose the Load balancer link.
d. In the Description tab, select the two page icon next to the load balancer DNS to copy the DNS name to your clipboard.
e. Paste it into a new browser window, and press enter to view the sample application (in this case, a static webpage).
Step 7: Clean up
Throughout this guide, you've launched three resources: an Amazon ECS cluster, AWS Fargate to run your container, and a load balancer. In this step, you will clean up all your resources to avoid unwanted charges.
a. Navigate back to the Amazon ECS console page and select the cluster name (sample-cluster).
b. Choose Delete Cluster to delete the cluster.
c. Enter delete me in the dialog box and choose Delete.
d. You will now see the progress as all the resources created are deleted.
e. Once everything has been deleted, you will see the Deleted cluster sample-cluster successfully message in green. You have now completed this guide.
Congratulations
Congratulations! You have learned how to configure and deploy your Docker-enabled application to Amazon ECS, and how to delete resources that are no longer needed. Amazon ECS is a highly scalable, high performance container management service that supports Docker containers and allows you to easily run applications on a managed cluster of Amazon EC2 instances.