Amazons EC2 (ECS) Container Service Supporting Docker (Part 1)

If you would like to read the next part in this article series please go to Amazons EC2 (ECS) Container Service Supporting Docker (Part 2).

Amazons container service EC2 (ECS) is a relatively new service offered by Amazon to support Docker-enabled applications and was first announced in November last year. Docker continues to steadily gain user momentum and many large organisations, including Google and Microsoft, are ensuring that they offer services compatible with and that function to support and reduce the complexities of managing Docker. Amazon too aims to ensure that they are ready with the provision of the AWS EC2, a comprehensive container service.

This two-part article aims to provide an overview of the AWS EC2 container service (ECS) and what this means for users of Docker as we move away from utilising virtual machines toward a container centric approach.

Introduction

Application Ship Container technology (the way Docker does it) is a new area of innovation in computing. The way in which we compute continues to evolve and virtualisation and cloud have enabled us to take advantage of an abundance of resources and services to significantly improve efficiency of day-to-day business tasks. The abundance of cloud utilisation also means that software can now traverse large numbers of computers and environments and thus applications need to be compatible with the variety of execution possibilities.

Open source containerisation, like Docker, has been shown great user interest and the simplicity of use and the benefit afforded to users (developers) continues to encourage the spread, but this has not come free of its challengers.

The benefits of utilising Docker are substantial however the container technology on its own is not conducive to better efficiency of running workloads across network environments without the proper management. The design alone is not one that offers a comprehensive computing approach, compatibility and the ability to maintain and manage resources across environments, to ensure efficient working and delivery of value to the business/user as well as the ability to scale is necessary.

To achieve the much needed scalability and improved performance, focus needs to be directed on how the service is controlled rather than the individual container and its infrastructure alone.

Container technology

Container technology is often compared with a virtual machine (VM) approach but the two are significantly different. Where container technology the approach is a lot simpler and does not lock to the environment apposed to the VM that utilises the entire OS. It’s more like sandboxing the applications so that they can run independently of the OS and outside of the host environment so that they can be more portable.

Virtual machines require an entire OS to run an application in the cloud and the resources consumed to do this ever mounting. Container technology solves this problem with a lightweight software spin on hardware VM.

Although containers offer a simpler structure, quicker and easier to deploy and are greatly portable compared with VMs, the security challengers are greater when utilising containers separate of VMs compared with VM utilisation.

Below is a comparative analysis of container technology and virtual machines.

Container

Virtual Machine

Allows for Simple deployment that is not affected by deployment location More challenging to deploy and environment specific
Ability to leverage micro-services, compute resources can be easily and effectively subdivided as required  
Improved availability, fast ‘boot’ capability Availability is less rapid
Simplifies developments and speed of development through the ability to run multiple containers on a machine Not as fast an approach or as simple
More cost effective More costly to run and maintain
Less secure when utilised on its own More secure
Easier to scale across environments More difficult to scale
Ability to separate the application from the infrastructure
Real-time cloud-native applications More challenging and time consuming using a virtual machine

Docker container technology can:

  • Allows multiple applications to run on the same hardware
  • Simplifies the developing process by enabling rapid creation of ready-to-run application in a container
  • Simplifies deployment

Docker and Amazon

Jointly Amazon and Docker provide an enhanced coordinated service for users/developers. Containers, like Docker, have facilitated developers in the deployment of applications in a way that was more convoluted to achieve previous to the technology and cloud vendors are corroborating the technology, clearly seen through the increased initiative to support it and encourage its use (not only Amazon but Google and Microsoft as well).

Docker is a platform that enables developers to create and transport applications in a way that supports many formats and environments and enables developers to direct majority of their focus toward application functionality and design. Unlike other containers, it is a standardised open source solution that any user can employ (large or small entity), extremely portable, allowing transport of the application across environments and into the cloud with little modification required, reducing chance of failing apps when implemented in environments that differ from the test environment (this is a great advantage for developers). This standardised approach to containerisation offers ease of use and thus widely utilised and now supported and encouraged by large entities.

Docker has succeeded to effectively ‘wrap applications’ and offer a container service that simplifies application portability between environments using a standard format and thereby minimises the deployment risk but the management of the container implementation has other complexities. The provisioning, launching, resource balancing, maintenance, and management across networks/servers, access management, security complexities, monitoring and logs to name a few, these are some of the challenges that require some supplementary thought and effort.

This is where Amazons EC2 container (ECS) service comes to play. Amazons container management provides the help where it is needed, scheduling is made easier, assignment of resources to containers managed effectively and when utilising the features of the Amazon container services, finally rolling back is less challenging too.

Amazon AWS EC2 container service (ECS) aims to support and enhance the amenity through achieving increased productivity, scalability and availability. ECS effectively manages, supports and orchestrates Docker containers and transforms them into another layer of the AWS platform equivalent to EC2 and S3.

Conclusion

Containers have successfully separated the application from the operating system and the Host operating system and Docker has accomplished taking containerisation to the next level with its open source standardised approach so that applications are no longer tied to specific environments, highly suitable in the era of cloud computing. Furthermore users can now benefit from varied services and resources in a multiple of environments and formats.

Docker’s containerisation is enabling everyone, no matter the size, to move away from virtual machine application deployment and large significant entities are supporting this move, proven through the number of supporting technologies embracing this market space.

Containers are a viable type of virtualization that will continue to grow and will surely influence the direction of cloud computing. With this anticipated growth comes the need for support and management across multiple platforms and services.

In part two of this series we will look at the Amazon EC2 Container Service for managing Docker-enabled applications in further detail. Lookout for the next article in this series that will cover some additional components around clustering of applications and task management.

If you would like to read the next part in this article series please go to Amazons EC2 (ECS) Container Service Supporting Docker (Part 2).

Leave a Comment

Your email address will not be published.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Scroll to Top