Other Compute Services Flashcards

Docker, ECS, Fargate, ECR, Batch, Lightsail

1
Q

Docker

A
  • Docker is a software development platform to deploy apps
  • Apps are packaged in containers that can be run on any OS
  • Apps run the same, regardless of where they’re run
    Any machine
    No compatibility issues
    Predictable behavior
    Less work
    Easier to maintain and deploy
    Works with any language, any OS, any technology
  • Scale containers up and down very quickly (seconds)
  • Docker images are stored in Docker Repositories
    Public: Docker Hub https://hub.docker.com/
    Private: Amazon ECR (Elastic Container Registry)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

ECS (Elastic Container Service)

A
  • ECS = Elastic Container Service
  • Launch Docker containers on AWS
  • You must provision & maintain the infrastructure (the EC2 instances)
  • AWS takes care of starting / stopping containers
  • Has integrations with the Application Load Balancer
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Fargate

A
  • Launch Docker containers on AWS
  • You do not provision the infrastructure (no EC2 instances to manage) – simpler!
  • Serverless offering
  • AWS just runs containers for you based on the CPU / RAM you need
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

ECR (Elastic Container Registry)

A
  • Private Docker Registry on AWS
  • This is where you store your Docker images so they can be run by ECS or Fargate
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Lambda

A
  • Virtual functions – no servers to manage!
  • Limited by time - short executions
  • Run on-demand
  • Scaling is automated!
  • Easy Pricing: Pay per request and compute time (calls and duration)
  • Invocation time: up to 15 minutes
  • Integrated with the whole AWS suite of services
  • Event-Driven: functions get invoked by AWS when needed
  • Integrated with many programming languages
  • Easy monitoring through AWS CloudWatch
  • Easy to get more resources per functions (up to 10GB of RAM!)
  • Increasing RAM will also improve CPU and network!
  • Lambda Container Image
    The container image must implement the Lambda Runtime API
    ECS / Fargate is preferred for running arbitrary Docker images

Lambda Billing:
* By the time run x by the RAM provisioned
* By the number of invocations

Use cases:
* Create Thumbnails for images uploaded onto S3
* Run a Serverless cron job

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

AWS Batch

A
  • Fully managed batch processing at any scale
  • Efficiently run 100,000s of computing batch jobs on AWS
  • A “batch” job is a job with a start and an end (opposed to continuous)
  • Batch will dynamically launch EC2 instances or Spot Instances
  • AWS Batch provisions the right amount of compute / memory
  • You submit or schedule batch jobs and AWS Batch does the rest!
  • Batch jobs are defined as Docker images and run on ECS
  • Helpful for cost optimizations and focusing less on the infrastructure
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Batch vs Lambda

A

* Lambda:
* Time limit
* Limited runtimes
* Limited temporary disk space
* Serverless

* Batch:
* No time limit
* Any runtime as long as it’s packaged as a Docker image
* Rely on EBS / instance store for disk space
* Relies on EC2 (can be managed by AWS)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Amazon API Gateway

A
  • Example: building a serverless API
  • Fully managed service for developers to easily create, publish, maintain, monitor, and secure APIs
  • Serverless and scalable
  • Supports RESTful APIs and WebSocket APIs
  • Support for security, user authentication, API throttling, API keys, monitoring…
  • API Gateway: expose Lambda functions as HTTP API
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Amazon Lightsail

A
  • Virtual servers, storage, databases, and networking
  • Low & predictable pricing
  • Simpler alternative to using EC2, RDS, ELB, EBS, Route 53…
  • Great for people with little cloud experience!
  • Can setup notifications and monitoring of your Lightsail resources
  • Use cases:
    Simple web applications (has templates for LAMP, Nginx, MEAN, Node.js…)
    Websites (templates for WordPress, Magento, Plesk, Joomla)
    Dev / Test environment
  • Has high availability but no auto-scaling, limited AWS integrations
How well did you know this?
1
Not at all
2
3
4
5
Perfectly