TurboTechLab Logo

AWS Compute Services in a Nutshell

Amazon Web Services (AWS) compute services provide a variety of ways to run applications and workloads in the cloud, including virtual machines, containers, and serverless computing.

These compute services provide a scalable, flexible, and cost-effective way to deploy and manage compute resources without the need to buy and maintain the physical hardwares.

AWS in Nutshell - Compute Services Cheatsheet

1. What queries do these services address for you ?

In line with the objective of the nutshell module, our focus would be on highlighting the big picture. We will look at...

Virtual Machines:(Provisioned Server)

  • EC2 instances & Optimized Instances
    • Where can I deploy my long running workloads(web-applications, web-services, databases) ?

  • Vertical scaling with wide range of optimized EC2 instances and
    Additional persitent storage with mounted Elastic Block Storage or Elastic File System
    • Some of my image processing applications need high in-memory processing capacity, some of my analytics server needs higher CPU and storage capacity. How do I support these variety of memory, CPU and storage needs ?
    • How do I support large persistent storage needs for my databases and big data applications I am planning to run using EC2 instances?

Auto Scaling or Horizontal Scaling:

  • Auto-scaling features
    • How do I scale workloads up\down to adjust my changing load or traffic ?
    • We run a popular online gaming application which gets consistent traffic throughout but, spikes heavily during the evening hours and certain periods in the weekend. We are getting client complains at the begining of these peak hours.
      • How can I schedule my scaling prior to those peak hours ?

Serverless Workloads:

  • AWS Lambda
    • We do have a backend for processing and persisting orders for our e-commerce application. How can we modernize and optimize the running cost of the system using serverless technology ?

  • AWS Lambda(Has a Max Time Limit of 15 min/task) OR AWS Batch(Heavier Workloads)
    • How do I implement my scheduled jobs which only run on-demand or at certain fixed times of the day ? I do not want to provision a EC2 instance for these intermittent tasks.

Managed Deployment:

  • AWS LightSail
    • We are a small sized e-commerce company. We want to deploy a couple of our blogging website, an e-commerce module backed by a simple database. We want a simple pre-configured deployment feature that manages our network, security and application monitoring settings. What is the simplest , low cost deployment service available in AWS ?

  • AWS Beanstalk or AWS App Runner
    • We need a simpler deployment service but, would also like to have good flexiblity to customize our scaling needs, loadbalancing needs and monitoring needs etc. Which manged AWS service provides simpler but, flexible deployment options ?

Special Purpose Workloads:

  • AWS Outposts
    • We do have sensitive data that we can not move to cloud. How can we use the simplicity of AWS features such as EC2 instances, storage services etc on-premise?
    • We need very low latency interaction with AWS cloud services on our on-premise datacenter? How can we have AWS infrastructure on-premise ?

  • AWS LocalZones
    • Do I have options to use AWS datacenters close to my users for applications with stringent latency needs?

  • AWS Simspace Weaver
    • We do have a requirement to run very high intensive simulation on weather forcasting data. We need to run them on a cluster of high performing EC2 instances. Which AWS service can support our requirement?

  • AWS Snowball Edge - Compute Optimized
    • We are working on precision firming on a very large scale in a remote area. We need to collect the IOT data every 2 weeks from there but, we also need local computing power to process and clean up our data before we move it to AWS cloud storage data lake.
      • What AWS compute service can help me here ? It needs to be portable, with 10s of TB of storage space and should have local computing power to run few lambda services.


2. Brief Descriptions, Features & Usages of the Compute Services

ServiceDescriptionUsage scenarios
Virtual Machines
Amazon Elastic Compute Cloud (EC2)Scalable, pay-as-you-go compute service that provides virtual machines for running your applications.

Supports a wide variety of choice through General purpose, compute optimized, memory optimized, storage optimized, and accelerated computing instances addressing optimal compute, memory, storage, and networking balance for your workloads.
A wide range of choices in EC2, allows us to run a variety of applications, such as web servers, databases, and big data applications with varying cpu, momory or storage needs.
Auto Scaling
AWS EC2 AutoscalingOptimizes the EC2 instnaces with auto-scale IN and OUT

Key feature for manging workloads.

Automatic Scaling: Based on your configured policies it can scale in(remove) or scale out(add) instances.nt of capacity at all times.
Auto Replacement : It keeps monitoring the health of the instances and automatically replaces the unhealthy ones.
Instance Protection: Allows you to prevent specific instances from being terminated during scale-in actions.
Lifecycle Hooks: Lifecycle hooks enable you to perform custom actions as instances launch or terminate.
Integrates with Load Balancers: Integrates seamlessly with Elastic Load Balancing (ELB), enabling even distribution of traffic across instances.
Metrics Based Scaling: Enables scaling policies based on various metrics such as CPU utilization, network traffic, or custom CloudWatch alarms.
Predictive Scaling: Supports predictive scalling based on historical loads.
Scheduled Scaling: Supports date and time based scheduled scaling actions.
Warm Pools: Enables you to minimize scale-out latency by maintaining a pool.
Managed Deployment
Amazon LightsailLightsail provides an user-friendly way to launch your project quickly – with virtual machines, containers, databases, security, load balancers, DNS management etc, configurable at one place

– for a low, predictable monthly price.
Running small and medium-sized applications without much auto-scaling needs.

For example, blogs&static websites, small e-commerce websites, CMS applications like WordPress, Joomla, Drupal, etc.
AWS Elastic BeanstalkAWS Elastic Beanstalk supports Java, .NET, PHP, Node.js, Python, Ruby, Go, and Docker web applications.

It's similar to Lightsail with advanced configurable capabilities. It automatically handles the deployment details of capacity provisioning, load balancing, auto-scaling, networking and application monitoring.
It's more suitable for deploying scalable web applications and services.
AWS App RunnerThe App Runner makes it easy to deploy your code or container image without the need for you to understand, provision, scale, or manage any AWS compute, networking, and routing resources.

If you are choosing between App Runner and Beanstalk, it is recommended to go with the App Runner. In case you find the need for a more fine grained control over your infrastructure, you can switch over to the Beanstalk.
It's a relatively new and similar to AWS Elastic Beanstalk, suitable for running scalable containerized web applications and microservices.
AWS Serverless
AWS LambdaServerless compute service that allows you to run code without provisioning or managing servers.

AWS Lambda natively supports Java, Go, PowerShell, Node.js, C#, Python, and Ruby code, and allows you to use any other programming language for your functions.
Mainly suitable for batch jobs , event-driven tasks or applications, such as web crawlers and data processing pipelines.

Pay only for the compute time you consume.
Amazon BatchBatch computing service that allows you to run large-scale, parallel, and distributed computing jobs.

AWS Batch plans, schedules, and executes your batch using computing resources like Amazon ECS, Amazon EKS, and AWS Fargate.
Running batch jobs, such as data processing and machine learning jobs.
Serverless Application RepositoryA collection of pre-built serverless applications that you can deploy with AWS Lambda.Store serverless applications for faster deployment.
AWS Hybrid Cloud
AWS OutpostsBrings AWS infrastructure and services to your on-premises environment.

Allows to build containerized hybrid infrastructure.
Enables AWS compute, networking, security, and other services to run on-premises for low latency, local data processing, and data residency needs.
AWS Local Zones
AWS Local ZonesRun applications that require single-digit millisecond latency or local data processing by bringing AWS infrastructure closer to your end users and business centers.Enable real-time gaming, live streaming, augmented and virtual reality (AR/VR), virtual workstations, and more.
AWS Large-scale Compute
AWS SimSpace WeaverIt is a fully managed compute service that helps you deploy large-scale spatial simulations in the cloud.This can be used to simulate large crowds of people, such as simulating traffic patterns, emergency response, or crowd behavior in sports arenas.
Edge Computing
AWS SnowballLow-Cost, High Volume Data Transfer & Edge Computing

AWS Snowball service provides an edge computing and data transfer device known as AWS Snowball Edge.

AWS Snowball is available in two device types :
- Snowball Edge Compute Optimized and
- Snowball Edge Storage Optimized.
Supports cost effective high volume(80TB or 210TB) data transfer in and out of AWS.

Support local data processing and collection in disconnected environments such as ships, windmills, and remote factories.