Multiple Ways to Run Containers on AWS

Anoop Prasad | 25 Jan 2019 | Newsletter, Enabling DevOps

The case for containers has been established and gaining ground as mature customers look at increasing efficiencies in deployments. Containers allow to abstract the application runtime environment—dependencies, libraries, binaries, configuration details—enabling easy portability across environments, while running them without the overheads of spinning an entire OS.

The lightweight containers with significantly reduced start-up time are ideal for modular architectures and form an essential building block for Cloud architectures.

Notwithstanding the emergence of Dockers and Kubernetes, the challenges associated with deploying and managing containers persist. Depending on the requirements of specific use case AWS offers an array of options each with varying degrees of efficiency, manageability and flexibility. A closer look at all options.

AWS ECS: This is Amazon’s container management service that allows you to focus on building the service eliminating hassles of managing containers including workload distribution, scheduling, scaling, patching, and recovery, etc. It has auto healing capabilities and supports Docker Compose through CLI so you can launch hundreds of containers. ECS is natively integrated with ECR; ELB; IAM; CloudWatch and Cloud Trail, so you can take advantage of many AWS services.

HOW AWS ECS WORKS

 

EC2 Launch on ECS: You can select and spin your own EC2 instances to run containers on ECS. This gives granular control over infrastructure that runs container applications but you are responsible for provisioning, patching, and scaling clusters of servers. You have flexibility to choose type of server, which applications and how many containers to run in a cluster to optimize utilization, and when to add or remove servers from a cluster. ECS will manage server cluster, schedule placement of containers and keep track of CPU, memory and other resources in the cluster including finding best server to run container based on specified resource requirements.

AWS Fargate: Fargate is container-as-a-service where you don’t waste time in selecting, provisioning, configuring, scaling and optimizing clusters of machine to run containers. You only define CPU, memory, networking and IAM policies to run the application and Fargate takes care of the rest. Fargate is ideally suited for horizontal scaling but downside is that it restricts customization.

HOW AWS FARGATE WORKS

AWS EKS: This is managed Kubernetes with all ECS features such as IAM, ELB, CloudWatch and CloudTrail and runs across availability zones to eliminate single point of failure. Additionally EKS supports VPC for pod networking and isolation at the cluster level, so developers can leverage pods to design more sophisticated stacks. You can containerize and migrate existing applications to EKS without refactoring code or tooling.

HOW AWS EKS WORKS

Containerization is fast coming of age with many customers adopting to reap extraordinary business benefits. For example, Umbrella helped a large India-based global enterprise software provider to expand its target market by delivering its product as a service using containers on AWS ECS and ECR. Containers helped onboard customers quickly and isolated individual customers, providing necessary privacy to individual customers.

If you have any queries regarding containers or exploring containers for deployment, do reach out to us at info@umbrellainfocare.com or call us at 987 389 2249.

Popular Blogs