Containers are the new sensation! Before we get into the details of what the Amazon EC2 Container Service is all about, it is essential to understand what a container is exactly.
And why they are gaining so much importance in the cloud environments of today.
What are containers?
The simplest definition of a container is that it is a logical entity that consists of an entire runtime environment. Which is to say that they are a method of operating system virtualization that allow you to run an app and its dependencies in a resource isolated process. This environment can contain not just the code of an application, but also all of its libraries and configuration files that are needed to run it, all packed into one small package — a small and independent package.
These easy to use building blocks allow developers to quickly and efficiently create their cloud infrastructures, providing an impressive amount of granular control over resources, with a notably improved efficiency of the cloud environment.
Difference between containers and virtual machines
Containers may seem like virtualization, but they are nothing like that. If anything, they are poised to replace virtualization very soon — the whole industry is moving towards this concept. And that is because a virtual machine running today is basically made up of an entire operating system, with the application hosted on top of it. Having one or more such VMs running on top of a virtualization layer in the form of hypervisor brings its own set of challenges, primarily high memory and CPU requirements.
In contrast to this, a server running five containers can run on top of a single operating system, with each container sharing the OS kernel with other containers. This means that containers are not only much leaner and lightweight, but also require far fewer resources than virtual machines.
No wonder their use is picking up exponentially these days!
The Amazon EC2 Container Service
Amazon made ECS generally available for use in the middle of 2015. Since then, the EC2 Container Service has seen rapid adoption, buoyed not just by the industry acceptance, but the overall improvements and enhancements AWS has made to it.
Just like pretty much every cloud service available on the platform, ECS is a highly scalable and high-performance container management service. Amazon Web Services currently supports Docker containers, and allows users to easily run their workloads and cloud applications on a managed cluster of Amazon EC2 instances.
Developers can run, stop, and effortlessly manage their ECS from a variety of different ways, either using the AWS Management Console or the various AWS command line tools. Even the various SDKs that Amazon Web Services provides allow access to Amazon ECS from several different programming languages.
We’ll be taking a detailed look at the Amazon EC2 Container Service, its components, features and pricing models in future articles.