Types of AWS Services
AWS has around 100+ services to offer. To make it easy to understand, we will be covering only the important services in AWS, which you would be using day in day out as an AWS Engineer. With the intent of making learning simplified, in this AWS tutorial, we have divided the AWS services into the following domains:
AWS Compute
The compute services in AWS are all about high-end servers that can be used to host a website, process backend data, etc. Let's look at some of the important services in the compute domain.
AWS EC2
AWS Elastic Compute Cloud (EC2) is an Infrastructure as a Service by AWS, which gives you a server with the desired OS, processor, and RAM. You can do anything on this OS, from installing software to hosting a website. Here, you have full control over the OS.
Become a master of AWS to going through this AWS online training course!
Elastic Beanstalk
Elastic Beanstalk is a PaaS offering from AWS that helps you in hosting a website. Since this is a Platform as a Service, you do not get access to the full OS. What you get is a dashboard and from this dashboard, you can upload your website. Technically, it's an EC2 service with no access to the operating system and the required software pre-installed.
AWS Lambda
AWS Lambda is yet another Platform as a Service from AWS. This service also does not give you access to the full OS and cannot host a website. It can only be used for backend processing. This service gives you a dashboard, where you can upload your backend code. Its only tasks are to receive the request, process it according to the code uploaded, and send the results back.
Auto-scaling
Auto-scaling is a feature that can only be used in conjunction with a load balancer. This feature helps you scale the number of compute servers up or down based on parameters, such as CPU usage, memory usage, network throughput, etc.
AWS Load Balancer
AWS Load Balancer, as the name suggests, balances the load among multiple servers deployed at a particular instance. For example, let's say, you have multiple servers running the same application for high availability. A user would not know which server he has to go to, right? The user will just know the URL of your application, and this URL will redirect to the load balancer, which will route the user's request to one of the servers. Now, there are multiple ways a load balancer can decide to which server a request should be sent. These ways are basically different techniques that a load balancer can use. This leads to three types of load balancers:
Classic Load Balancer: Balances the traffic randomly among healthy servers
Application Load Balancer: Balances the traffic based on the URL / path of the application
Network Load Balancer: Balances the traffic based on the web protocol being used to interact with the servers, for example, HTTP, FTP, etc.
AWS ECR
AWS Elastic Container Repository is a fully-managed Docker container repository. It helps you store your Docker containers in a highly available and scalable architecture.
AWS ECS
AWS Elastic Container Service is a highly available container orchestration service. It enables you to control your Docker applications using simple API calls.