
Deploying containers on AWS Elastic Container Service has never been easier. Elastic Container Service (ECS) is a highly scalable, high performance container management service that supports Docker containers and allows us to easily run applications on a managed cluster of Amazon EC2 instances. Here are some of the key ECS components.
1. Container instances:
- 1. EC2 instances
- 2. Docker daemon
- 3. ECS agents
2. Cluster is a logical grouping of container instances that we can place tasks on:
- Collection of resources – resource pool (primarily containers and insances running those insances)
- Scalable
- Grouping of container instances
3. Task definition is a description of an application that contains one or more container definitions:
- Container definitions (cpu, memory, links to set up channels between containers, ports)
- Volume definitions to persist data between containers
- Task definitions are tracked by names and versions
Task is an instantiation of a task definition that is running on a container instance:
- Unit of work
- We can run as many containers as we our app needs
- Runs on container instances
5. Service is a scheduler that ensures that the specified number of tasks are constantly running and rescheduled on failure, and optionally registered against an Elastic Load Balancing load balancer:
- We just refer task definition and number of tasks we want to run
- ECS handles the deployment and integration with ELB