Skip to main content
  1. 🔰Posts/
  2. 🗂️My Trainings/
  3. AWS Trainings and Certifications/
  4. 🏅AWS Certified Cloud Practitioner/

Other Compute Services

📚 Part 13 of 25: "AWS Cloud Practitioner" series.

·733 words·4 mins

Docker #

Docker is a software development platform to deploy apps.

Apps are packaged in containers that can be run on any OS.

  • Applications function in the same way, no matter where they’re run
    • Any machine
    • No compatibility issues
    • Predictable behavior
    • Less work
    • Easier to maintain and deploy
  • Scale containers up and down quickly (seconds)

Docker images are stored in Docker Repositories.

ECS (Elastic Container Service) #

Amazon ECS = Elastic Container Service.

ECS allows launching Docker containers on AWS. It is an orchestrator.

  • You must provision and maintain the infrastructure (EC2 instances)
  • AWS takes care of starting / stopping containers
  • Has integrations with the Application Load Balancer

Fargate #

  • Launch Docker containers on AWS
  • Serverless. No need to provision the infrastructure (no EC2 instances to manage)
  • AWS runs the containers based on CPU / RAM needed

ECR #

  • Elastic Container Registry
  • Private Docker Registry on AWS

Amazon EKS #

Amazon EKS = Elastic Kubernetes Service.

Allows launching and managing Kubernetes clusters on AWS.

Kubernetes is an open-source system for management, deployment and scaling of containerized apps (Docker, Containerd).

Containers can be hosted on:

  • EC2 instances
  • Fargate

Lambda #

  • Virtual functions - no servers to manage
  • Limited by time - short executions
  • Run on-demand
  • Scaling is automated

Benefits of Lambda #

  • Easy pricing:
    • Pay per request and compute time
  • Integrated with the whole AWS suite of services
  • Event-Driven: functions get invoked by AWS when needed
  • Integrated with many programming languages
    • Node.js (JavaScript)
    • Python
    • Java
    • C# (.NET Core) / PowerShell
    • Ruby
    • Custom Runtime API (community supported, example Rust or Golang)
  • Easy monitoring through AWS CloudWatch
  • Easy to get more resources per functions (up to 10 GB of RAM)
  • Increasing RAM will also improve CPU and Network

Lambda Container Image - although ECS / Fargate is preferred for running Docker images.

Lambda pricing is based on calls and duration.

Amazon API Gateway #

  • 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
Creating Serverless API = API Gateway + Lambda. Expose Lambda functions as HTTP API. #

AWS Batch #

  • Fully managed batch processing at any scale
  • Efficiently run 100,000s of computing batch jobs on AWS
  • A “batch” job is a job with start and and 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

Batch vs Lambda #

  • 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 (no programming language dependency)
    • Rely on EBS / Instance Store for disk space
    • Relies on EC2 (can be managed by AWS)

Lightsail #

  • Virtual servers, storage, databases and networking
  • Low & predictable pricing
  • Simpler alternative to using EC2, RDS, ELB, EBS, Route53
  • Great for people with little cloud experience
  • Can setup notifications and monitoring of your Lightsail resources
  • Use cases:
    • Simple web applications
    • Websites
    • Dev / Test environment
  • Has High Availability but no auto scaling, limited AWS integrations

Summary #

  • Docker: container technology to run applications
  • ECS: run Docker container on EC2 instances
  • Fargate:
    • Run Docker containers without provisioning the infrastructure
    • Serverless offering (no EC2 instances)
  • ECR: Private Docker Images Repository
  • EKS: Allows launching and managing Kubernetes clusters on AWS (hosted on: EC2 instances OR Fargate)
  • Batch: run batch jobs on AWS across managed EC2 instances
  • Lightsail: predictable & low pricing for simple application & DB stacks
  • Lambda:
    • Serverless, Function as a Service, seamless scaling, reactive
    • Lambda Billing:
      • By the time run x by the RAM provisioned
      • By the number of invocations
    • Language support: many programming languages except (arbitrary) Docker
    • Invocation time: up to 15 minutes
  • API Gateway: expose Lambda functions as HTTP API

» Sources « #

» References « #

» Disclaimer « #

This series draws heavily from Stephane Maarek’s Ultimate AWS Certified Cloud Practitioner course on Udemy.

His content was instrumental in helping me pass the certification.

About the instructor
🌐 Website📺 YouTube
💼 LinkedIn𝕏 x.com

ℹ️Shared for educational purposes only, no rights reserved.