Architecture of Amazon ECS
The core architecture of Amazon ECS is the cluster manager, a backend service which handles the task of cluster coordination and state management. On top of the cluster manager sits the scheduler manager. They are decoupled from each other, allowing customers to build their own scheduler. The pool of resources includes CPU, memory, and the networking resources of Amazon EC2 instances partitioned by containers. Amazon ECS coordinates the cluster through the open source Amazon ECS container agent running on each EC2 instance, and does the job of starting, stopping, and monitoring containers as requested by the scheduler. In order to manage a single source of truth: EC2 instances, task running on them and containers and resources utilized. We need the state to be stored somewhere, which is done in the cluster manager key/value store. To be robust and scalable, this key/value store needs to be durable, available, and protect against network partitions and hardware...