Dan Gerdesmeier is a Software Engineer at AWS for the EC2 container service and at Janaury’s Docker Meetup in Seattle gave a synopsis of some of the key concepts inside the service (go to 11:45) running Docker as the base run time meaning that everything run in EC2 is a Docker image. Gerdesmeier explains the key concepts which AWS have defined for the EC2 container service followed by a demonstration of how it is used.
Clusters.
“Clusters are regional concepts so you’ll create one or more clusters per EC2 region and this is your resource pool, so you’ll launch your container instances into your cluster and you now have memory CPU ports and other schedulable resources available within your cluster. You’ll take these container instances you can start as an empty cluster you can launch new instances that will grow and you can also terminate these instances in order to shrink your clusters capacity as necessary.”
Container Instances
“A container instance is an EC2 instance with two special things on it, it runs a Docker daemon and it also runs the Amazon ECS agent. Right now there are two AMIs available, there is an Amazon Linux based AMI that you can use which already has these two things installed and also a CoreOS AMI as well. The Amazon ECS container agent is open source on GitHub under Apache 2.0 so if you want to check out the source or if you want to take the agent and install it onto your own AMI that you prefer to use you can do that too.”
Tasks
“Tasks are a level above containers so it’s a relationship of one or more containers that run on a single container instance. A really good example of this is something with a database and something maybe serving content on top of the database. The two containers are linked together (they may not be but in general you’ll want them to be linked together) and this will provide you with kind of an application. Tasks are defined with task definitions (example of link task definition go to 14:23)