Other Compute Services: ECS, Lambda, Batch, Lightsail
common use case for lambda?
1. Serverless CRON Job CloudWatch Events EventBridge Triggers every 1 hour telling Lambda function to perform a task
advantages of docker
1. any machine no compatibility issues predictable behavior less work easier to maintain/deploy works with any language, OS, or technology scale containers up and down in seconds
use cases for lambda
1. create thumbnails for images uploaded to S3 2. run serverless cron job
Benefits of Lambda
1. easy pricing: pay per request and compute time 2. integrated with AWS suite of services 3. event-driven: functions get invoked by AWs when needed (REACTIVE SERVICE) 4. integrated with many programming languages 5. ez to get more resources per function (up to 3 GBPs per function)
sample workflow for aws batch
1. image added to S3 bucket 2. triggers AWS batch 3. Batch provisions an ECS cluster containing EC2 instances or spot instances 4. These instances run your docker images that perform your job, maybe inserting the image into another S3 bucket
differences between Batch and Lambda?
1. lambda has time limit, limited runtimes, and limited temporary disk space 2. batch has no time limit and allows any runtime as long as its packaged as a docker image. Batch relies on EBS/instance store for disk space 3. Lambda is serverless, but Batch is not
What are examples of serverless storage in AWS?
Amazon S3 DynamoDB Fargate Lambda
where are docker images stored?
Docker Repositories
what does Lambda NOT do?
Docker is NOT for AWS Lambda. It's for ECS/Fargate
where must docker images be stored so they can be run by ECS or Fargate?
ECR
keyword for docker containers in AWS?
ECS
What is Amazon ECR
Elastic Container Registry - private docker registry on AWS for docker images
What is ECS?
Elastic Container Service used to launch docker containers on aws has integrations with application load balancer
does serverless mean there are no servers?
NO - just means that as an end user you don't manage, provision, or see them
Formula for Lambda billing
Time run x RAM provisioned Number of invocations
What is Fargate
Used to launch docker containers on AWS BUT YOU DONT NEED TO PROVISION INFRASTRUCTURE (NO EC2 INSTANCES) Serverless offering - simpler! AWS runs containers for you based on the CPU / RAM you need
How are Batch jobs defined in AWS?
docker images and run on ECS
difference between ecs and fargate?
fargate does not need underlying infrastructure (ec2 instancs)
What is the free tier of lambda?
free tier = 1,000,000 aws lambda requests and 400,000 GBs of compute time
What is AWS Batch?
fully managed batch processing at any scale efficiently run 100,000s of computing batch jobs in aws Will dynamically launch ec2 instances or spot instances and provision right amount of compute/memory You submit or schedule batch jobs and Batch does the rest
Why is lambda so popular?
it is very cheap and easy to run
what is a batch job
job with a start and an end (opposed to continuous)
traditional architecture for EC2 instances
layer1: infrastructure layer2: host OS layer3: hypervisor layer4: Guest OS (VMs/EC2 instances) layer5: apps
AWS architecture for EC2 instances + docker
layer1: infrastructure layer2: host OS (EC2 instance) layer3: docker daemon layer4: many lightweight containers can run on the docker daemon. easily scalable
keyword for lightsail on exam?
little to no cloud experience
What is serverless?
new paradigm where developers don't have to manage servers. They just deploy code / function! initially FaaS (function as a service) Pioneered by Lambda but now includes anything that's managed: databases, messages, storage, etc
aws lambda pricing strategy
pay per calls, first 1,000,000 are free $0.20 per 1 mil requests thereafter pay per duration (in increments of 100ms) 400,000 GB-seconds of compute time per month are free After that, $1.00 for 600,000 GB-seconds
who is Lightsail for?
ppl with little cloud experience who need to get up and running good for dev/test environment in aws
What is Amazon Lightsail?
provides virtual servers, storage, databases and networking low and predictable pricing simpler alternative to ec2, rds, elb, ebs, route53 monitoring and notifications has high availability, but no auto-scaling and limited AWS integrations
Docker Hub
public docker repo containing images for many technologies or OS
Docker vs. VMs
resources are shared with host - many containers on one server
What is docker?
software dev platform to deploy apps apps are packaged in containers that can be run on any OS once in a container an app will run the same, regardless of where run
what does AWS handle with ECS?
starting/stopping containers
What is Lambda?
virtual functions - no servers to manage! Limited by time - recommended for short executions run on-demand scaling is automated
what are you responsible for with ECS?
you must provision / maintain the infrastructrure (EC2 instances) yourself