Compute Services in AWS

Cloud Computing

 We will explore some of the compute options in AWS such as  Elastic Compute Cloud(EC2), Container Orchestration Service (ECS, EKS) and Serverless Compute (Lamda).  



Elastic Cloud Compute

This service offers virtual machines on the AWS cloud rather than the physical server. In EC2, AWS manages underlying hardware, hypervisor, networking and security while the user is responsible for patching the OS; configuration of storage, networking and security. EC2 offers a wide range of instances (VM) based on the operating system (Linux, Windows); compute, storage and networking to suit different kinds of workloads.

Auto scaling features in EC2 scales instances up or down to meet the application load. EC2 instances can be purchased by various pricing options such on on-demand, spot, reserved, dedicated etc. based on your usage criteria.
EC2 is useful for a wide variety of use cases such as deploying test environments for applications, hosting databases and websites, big data analytics etc.


Container Orchestration (ECS and EKS)

Microservices architecture is a software development approach to break down monolithic applications into smaller and independent services. Elastic Container Server (ECS) and Elastic Kubernetes Service(EKS) are the container orchestration services offered by AWS that support the microservices architecture. ECS is Amazon’s proprietary fully managed container orchestration service while EKS is a managed service which runs an open source Kubernetes container orchestration platform on AWS.

ECS allows you to deploy, manage and scale containerized applications on AWS. ECS capacity (infrastructure for running containers) is available 3 different options i.e. EC2, Fargate (serverless compute) and on-premise virtual servers. When ECS is deployed with EC2, AWS manages the control plane and the user is responsible for managing the EC2 cluster(instances, patching, scaling). When ECS is deployed with Fargate, AWS is responsible for managing the control plane and EC2 cluster, and the user is responsible for monitoring and patching of containers. There is no additional cost for using ECS so you only pay for the EC2 instances.

EKS is compliant with open source Kubernetes container orchestration platform, so your existing Kubernetes application can be easily migrated to AWS. In EKS, AWS manages the control plane similar to ECS and the user is responsible for managing the EC2 cluster. Similar to ECS, you can deploy worker nodes using either EC2, Fargate and on-premise virtual servers. There is an additional charge for using EKS service apart from EC2 cluster cost. EKS requires deployment of Kubernetes control plane pods which requires a higher level of expertise compared to ECS.


Lambda

Lambda is an event triggered serverless computer service offered by AWS. In Lambda, AWS manages the underlying hardware, OS, its patching, capacity and its scaling; and the user is only responsible for application code development.

Lamda is useful for the use cases when you want to scale up or down resources rapidly to execute tasks when a certain event is triggered. Also, once the execution of Lambda function is triggered, it can be run for a maximum of 15 minutes duration. This makes Lamda useful when you need infrequent access to resources for use cases such as batch processing, data transformation and data analysis etc. In Lambda service, users are billed only for the compute time of the resources consumed.


Comments