AWS Compute Services Technologies for Cloud and DevOps Engineers
Learning path for the AWS Cloud Practitioner exam
Table of contents
📝Introduction
In this post, we will cover the main Technologies from AWS Compute Services.
📝AWS Compute Services
EC2 (Elastic Compute Cloud)-> It is a web service that provides secure, resizable compute capacity in the cloud.
Elastic compute power.
Virtual servers in the cloud.
Servers are the physical compute hardware running in a data centre.
EC2 instances are the virtual servers running on these physical servers. Instances are not considered serverless.
Allows you to rent and manage virtual servers in the cloud.
You're able to provision an EC2 instance at the click of a button.
You can use a preconfigured template called an Amazon Machine Image (AMI) to launch your instance.
You can deploy your applications directly to EC2 instances.
You receive 750 compute hours per month on the Free Tier plan.
Access reliable, scalable infrastructure on demand. Scale capacity within minutes with an SLA commitment of 99.99% availability.
Provide secure compute for your applications.
Optimize performance and cost with flexible options like AWS Graviton-based instances, Amazon EC2 Spot instances, and AWS Savings Plans.
EC2 in the Real World Scenarios:
Deploy a Database -> Deploying a database to EC2 gives you full control over the database.
Deploy a Web Application -> Deploy to multiple AZs to make the web application highly available.
Methods to Access an EC2 Instance:
AWS Management Console
Secure Shell (SSH)
EC2 Instance Connect (EIC)
AWS Systems Manager
Types of EC2 Instances:
EC2 Pricing Options:
On-Demand
Spot
Dedicated Hosts
Reserved Instances(RIs)
Saving Plans
- EC2 instances offer load balancing and Auto Scaling:
Elastic Load Balancing automatically distributes your incoming application traffic across multiple EC2 instances (i.e. Classic Load Balancers / Application Load Balancers / Gateway Load Balancers / Network Load Balancers).
EC2 Auto Scaling adds or replaces EC2 instances automatically across AZs, based on need and changing demand. Remember Auto Scaling improves the availability of your applications, and do not confuse it with load balancing.
Note - Do not confuse horizontal scaling with vertical scaling (or scaling up), which upgrades an EC2 instance by adding more power (CPU, RAM) to an existing server.
Lambda -> It is a serverless compute service that lets you run code without managing servers.
You author application code, called functions, using many popular languages.
Serverless means you do not worry about managing servers like with EC2. It simply means AWS manages the servers for you and you cannot access them. You can pretend they do not exist.
Scales automatically.
Allows developers to focus on core business logic for the apps they are developing instead of worrying about managing servers.
Lambda functions have a 15-minute timeout.
Supports popular programming languages like Java, Go, PowerShell, Node.js, C#, Python, and Ruby.
Lambda can execute your code in response to events.
You are only responsible for your application code. AWS manages servers, coding environment, and language support.
Lambda in the Real World Scenarios:
Real-time file processing
Sending email notifications
Backend business logic
Lambda Pricing Model:
Compute Time -> Pay only for compute time used — there is no charge if your code is not running.
Request count -> A request is counted each time it starts execution. Test invokes in the console count as well.
Always free -> The free usage tier includes 1 million free requests each month.
- Fargate -> It is a serverless compute engine for containers.
Allows you to manage containers, like Docker.
Scales automatically.
Serverless means you do not worry about provisioning, configuring, or scaling servers.
- Lightsail -> It allows you to quickly launch all the resources you need for small projects
Deploy pre-configured applications, like WordPress websites, at the click of a button
Simple screens for people with no cloud experience
Includes a virtual machine, SSD-based storage, data transfer, DNS management, and a static IP
Provides a low, predictable monthly fee, as low as $3.50
Similar to AWS QuickStarts
- AWS Outposts -> It allows you to run cloud services in your internal data centre.
Supports workloads that need to remain on-premises due to latency or data sovereignty needs
Used for a hybrid experience
AWS delivers and installs servers in your internal data centre.
Have access to the cloud
- AWS Batch -> It allows you to process large workloads in smaller chunks (or batches).
Runs hundreds and thousands of smaller batch processing jobs
Dynamically provisions instances based on volume
- AWS EKS (Elastic Kubernetes Service) -> It is a managed Kubernetes service.
EKS runs the Kubernetes management infrastructure for you across three AWS availability zones to eliminate a single point of failure.
It lets you deploy Kubernetes clusters on AWS without having to manually install Kubernetes on EC2 compute instances.
Applications running on any standard Kubernetes environment are fully compatible and can be easily migrated to AWS EKS.
AWS manages and secures the Kubernetes control plane (components like etcd and API Server), while your organization is responsible for managing Kubernetes worker nodes.
EKS is certified by Kubernetes, which means that your existing clusters and tools from the Kubernetes ecosystem should migrate and work smoothly.
In EKS, the user is required to configure and deploy Pods via Kubernetes. This requires more expertise from DevOps engineers.
With EKS, the user has the option to assign a dedicated network interface to a Pod. This means that all containers inside that pod will share the same internal network and public IP. On top of that, with EKS it’s also possible to share an ENI between several pods, thus enabling the user to place many more Pods per instance.
- AWS ECS (Elastic Container Service) -> It is a highly scalable, fast, container management service that makes it easy to run, stop, and manage Docker containers on a cluster.
It lets you run and manage large numbers of containers. Importantly, it is not based on Kubernetes.
It can access many AWS features such as IAM roles, security groups, load balancers, AWS CloudWatch Events, AWS CloudFormation templates, and AWS CloudTrail logs.
It runs clusters of compute instances on Amazon EC2, managing and scaling your containers on your machines.
ECS provides scheduling, placement, task management/health checks, and management control plane updates.
- EKS vs ECS differences:
- AWS ECR (Elastic Container Registry) -> It is a fully managed Docker container registry that makes it easy for developers to store, manage, and deploy Docker container images.
This Docker container registry is integrated with ECS and the Docker CLI to provide a secure, highly available and simplified workflow.
It uses Amazon S3 to store images which eliminate the need to operate and scale the infrastructure required to power your container registry.
AWS ECR currently only supports private images, you may not use ECR if you only use public images.
Thank you for reading. I hope you were able to understand and learn something helpful from my blog.
Please follow me on Hashnode and on LinkedIn franciscojblsouza