Introduction
In this new series, we will see together the AWS top used services. We will discuss about storage, compute, analytics, messaging and so much more !
Let’s begin with top used compute servies on AWS. 🙂
Here are in my opinion the 4 most used compute products :
We will see in details all of them, however, Lambda will be explained in the following article. As you can see, Amazon EC2 and ECS (or EKS) are IaaS products, Fargate PaaS and Lambda SaaS.
Amazon Elastic Compute Cloud (EC2)
This service allows you to launch a virtual machine in Amazon Cloud. You can use a variety of operating systems, load them with your custom application environment, manage your network’s access permissions, and run your image using as many or few systems as you desire.
To use Amazon EC2, you simply:
- Select a pre-configured, templated Amazon Machine Image (AMI) to get up and running immediately. Or create an AMI containing your applications, libraries, data, and associated configuration settings.
- Configure security and network access on your Amazon EC2 instance.
- Choose which instance type(s) you want, then start, terminate, and monitor as many instances of your AMI as needed, using the web service APIs or the variety of management tools provided.
- Determine whether you want to run in multiple locations, utilize static IP endpoints, or attach persistent block storage to your instances.
- Pay only for the resources that you actually consume, like instance-hours or data transfer.
Amazon EC2 provides a wide selection of instance types optimized to fit different use cases. Instance types comprise varying combinations of CPU, memory, storage, and networking capacity and give you the flexibility to choose the appropriate mix of resources for your applications. Each instance type includes one or more instance sizes, allowing you to scale your resources to the requirements of your target workload.
Moreover AWS EC2 host in multiple locations worldwide. These locations are composed of different regions and availability zones.
You can attach storage like EBS or Instance store (which will be seen in the storage article.)
Finally, you can use Amazon Machine Image (AMI) which is basically a template that contains a software configuration such as an operating system, servers, and applications.
With EC2 :
AWS manages : physical hardware, software networking and facilities.
Customer manages : scaling, network config, security, updates, data source integrations, application code, management tasks, provisionning etc.
Use case : LAMP server.
Amazon EC2 Container / Kubernetes Service
Amazon Elastic Container Service (Amazon ECS) is a fully managed container orchestration service and Amazon Elastic Kubernetes Service (Amazon EKS) is a fully managed Kubernetes service.
ECS (or EKS) is a great choice to run containers because AWS will manage the Container orchestration control plane. You can simply define your application by selecting container images and resrouces needed for your application, then by launching containers on Fargate or EC2.
Amazon ECS scales your application and manages your containers for availability.
With EC2 Container Service :
AWS manages : Container orchestration control plane, physical hardware, software networking and facilities.
Customer manages : application code, data source integrations, work clusters, security and firewall config.
Use case: Several appliations sharing the same OS.
Amazon Fargate
If you want to deploy containers withouth managing orchestration, you can use Fargate !
AWS Fargate is a serverless compute engine for containers that works with both Amazon Elastic Container Service (ECS) and Amazon Elastic Kubernetes Service (EKS).
As described in this picture, you can see that all EC2 instances used by the orchestrator is “virtually” removed for you.
So you only need to be focused on building your applications. Fargate removes the need to provision and manage servers, lets you specify and pay for resources per application, and improves security through application isolation by design.
Fargate allocates the right amount of compute, eliminating the need to choose instances and scale cluster capacity. You only pay for the resources required to run your containers, so there is no over-provisioning and paying for additional servers. Fargate runs each task or pod in its own kernel providing the tasks and pods their own isolated compute environment. This enables your application to have workload isolation and improved security by design.
With Fargate :
AWS manages : Container orchestration, provisionning, cluster scaling, physical hardware, host OS, networking and facilities.
Customer manages : application code, data source integrations, security config, network config and management tasks.
Use case: Several appliations sharing the same OS.
Source: aws.amazon.com