EKS App Runner AWS Batch
LearningTree Β· AWS Β· Compute

Other Compute Services β€”
EKS Β· App Runner Β· Batch

High-level architectural understanding of three additional AWS compute services. Not deep-dives β€” just enough to know when and why to reach for each one.

⚑ Where These Fit

  • Amazon EKS β€” Managed Kubernetes. Use when you need the Kubernetes ecosystem or multi-cloud portability.
  • AWS App Runner β€” Simplest container deployment. Zero infrastructure. Deploy from source code or image.
  • AWS Batch β€” Job-based compute for batch processing. Queues, scheduling, and automatic resource provisioning.
The AWS Compute Spectrum Introductory
ServiceAbstractionYou ManageBest For
EC2IaaS β€” raw VMsEverything (OS, runtime, scaling)Full control, custom setups
ECSManaged containersTask definitions, scaling rulesAWS-native container workloads
FargateServerless containersTask definitions only (no nodes)Containers without server management
EKSManaged KubernetesK8s manifests, node groupsK8s ecosystem, multi-cloud teams
BeanstalkPaaSCode + config onlyStandard web apps, quick deploy
App RunnerFully managedCode or image onlySimple APIs, no-ops teams
LambdaServerless functionsFunction code onlyEvent-driven, short tasks
BatchJob schedulerJob definitions, queuesETL, HPC, batch processing
☸️
Service One

Amazon EKS β€” Elastic Kubernetes Service

What is EKS Introductory

Amazon EKS is a managed Kubernetes service. AWS runs the Kubernetes control plane (API server, etcd, scheduler) β€” you focus on deploying your applications as Kubernetes workloads. EKS is the standard Kubernetes API, which means anything that works on Kubernetes works on EKS.

☸️

What is Kubernetes?

Open-source container orchestrator originally built by Google. The industry standard for running containers at scale across many machines. Huge ecosystem of tools, plugins, and community support.

🧠

Mental Model

Think of ECS as an AWS-custom kitchen β€” AWS-designed workflows, deeply integrated. EKS is a franchise kitchen β€” standard equipment (Kubernetes) that works the same in any cloud. Same recipes everywhere.

πŸ’°

Pricing

Control plane: $0.10/hour (~$72/month) per cluster. Plus the cost of worker nodes (EC2 or Fargate). ECS control plane is free β€” this cost differential matters.

πŸ‘‰ EKS cost reality: The $72/month is per cluster. If you need separate clusters for dev/staging/prod, that's ~$216/month before any worker nodes. EKS on Fargate removes node management entirely β€” each pod runs in its own microVM. No EC2 costs, but higher per-pod price. Great for bursty workloads, not ideal for high-volume steady-state.

Core Concepts β€” How EKS Works Core
🧠

Control Plane (AWS Managed)

  • API Server β€” accepts kubectl commands
  • etcd β€” key-value store for cluster state
  • Scheduler β€” places pods on nodes
  • Controller Manager β€” watches desired vs actual state
  • Runs across 3 AZs automatically
  • You never SSH into or manage these components
πŸ–₯️

Data Plane (You Manage)

  • Worker Nodes β€” EC2 instances that run your pods
  • Managed Node Groups β€” AWS provisions and manages EC2 for you
  • Fargate Profiles β€” serverless pods, no nodes to manage
  • Pods β€” smallest deployable unit (1+ containers)
  • Services β€” stable networking for pods (load balancing)
  • Deployments β€” declarative updates for pods
Where EKS Fits β€” When to Use Core
βœ…

Use EKS When

  • Your team already knows Kubernetes
  • You need multi-cloud portability (same K8s manifests on GCP/Azure)
  • You require the Kubernetes ecosystem (Helm, Istio, ArgoCD, Prometheus)
  • Complex microservices with service mesh needs
  • You're migrating existing K8s workloads to AWS
❌

Don't Use EKS When

  • Your team doesn't know Kubernetes β€” steep learning curve
  • Simple container workloads β€” use ECS (free control plane, simpler)
  • Single web app β€” use App Runner or Beanstalk
  • Event-driven / short tasks β€” use Lambda
  • Cost-sensitive small projects β€” $72/month control plane overhead
EKS vs ECS β€” Quick Comparison Core
FeatureECSEKS
OrchestratorAWS-proprietaryKubernetes (open-source standard)
Control plane costFree~$72/month per cluster
Learning curveMedium (AWS concepts)High (K8s concepts + AWS)
PortabilityAWS onlyMulti-cloud (K8s standard)
EcosystemAWS integrationsVast K8s ecosystem (Helm, Istio, etc.)
Best forAWS-native teamsK8s-experienced / multi-cloud teams
Concept Diagram β€” Kubernetes Architecture Introductory
Kubernetes Basics β€” Control Plane + Worker Nodes
CONTROL PLANE (AWS manages this) API Server etcd Scheduler Controllers Multi-AZ Β· Highly Available kubectl DATA PLANE (Worker Nodes) (You manage or use Fargate) Node 1 (EC2) Pod A Pod B Pod C Node 2 (EC2) Pod D Pod E Fargate Serverless Pod F πŸ‘¨β€πŸ’» Developer (kubectl) Control Plane (AWS managed) Worker Nodes (EC2 or Fargate) Pods (your containers)
AWS Diagram β€” EKS on AWS Core
Amazon EKS β€” AWS Services Involved
EKS
EKS
Control Plane
β†’
EC2
EC2 Nodes
or Fargate
β†’
ELB
ALB / NLB
Ingress
β†’
ECR
ECR
Container Images
CloudWatch
CloudWatch
Monitoring
IAM
IAM
RBAC + IRSA

EKS control plane β†’ EC2/Fargate worker nodes β†’ ALB Ingress for traffic Β· ECR for images Β· CloudWatch for observability Β· IAM for auth

Architecture Diagram β€” Production EKS Deep
EKS Production β€” Multi-AZ Kubernetes Cluster
🌐 Users ALB Ingress Controller EKS Control Plane VPC AZ-a Node Pod Pod Node Pod Pod AZ-b Node Pod Pod Node Pod AZ-c (Fargate) Pod (serverless) Pod (serverless) RDS Database ElastiCache CloudWatch EKS control plane (managed) + EC2 nodes + Fargate pods across 3 AZs · ALB Ingress routes traffic · Standard K8s API
☸️ EKS β€” Key Takeaways

Managed Kubernetes β€” portable, powerful, but complex.

  • What: AWS runs the Kubernetes control plane. You run pods on EC2 nodes or Fargate.
  • When: You need Kubernetes ecosystem, multi-cloud portability, or have existing K8s expertise.
  • When NOT: Simple container apps (use ECS), simple web apps (use App Runner), event-driven (use Lambda).
  • Cost: ~$72/month control plane + node costs. ECS control plane is free.
  • Exam tip: Know EKS = managed K8s, supports EC2 + Fargate launch types, $0.10/hr cluster fee.
πŸš€
Service Two

AWS App Runner

What is App Runner Introductory

AWS App Runner is the simplest way to deploy a containerized web app or API on AWS. No VPC configuration, no load balancer setup, no auto scaling rules β€” you point App Runner at your source code (GitHub) or container image (ECR), and it handles literally everything else.

πŸš€

What It Does

Takes your code or container image, builds it, deploys it, load-balances it, auto-scales it, and gives you an HTTPS URL. From code to production in minutes.

🧠

Mental Model

Think of App Runner as Heroku on AWS. Push code β†’ get a URL. You don't know (or care) about the underlying servers. It's the closest AWS gets to a "magic deploy button."

πŸ’°

Pricing

Pay for vCPU + memory while your app is actively processing requests. Idle instances cost much less (only memory charged). No ELB cost, no EC2 cost. Simple, predictable.

Core Concepts β€” How App Runner Works Core
πŸ“¦

Source Options

  • Source Code β€” Connect a GitHub repo. App Runner builds with Buildpacks (Node.js, Python, Java).
  • Container Image β€” Point to an ECR image. More control over the runtime.
  • Auto Deploy β€” Push to main β†’ automatic redeploy. CI/CD built in.
βš™οΈ

What App Runner Manages

  • Build β€” Compiles code, creates container
  • Deploy β€” Rolls out new version
  • TLS/HTTPS β€” Free certificate, auto-renewed
  • Load Balancing β€” Built-in, no config needed
  • Auto Scaling β€” 1 β†’ N instances based on requests
  • Health Checks β€” Auto-replaces unhealthy instances
Where App Runner Fits β€” When to Use Core
βœ…

Use App Runner When

  • You want the fastest path from code to URL
  • Small to medium APIs and web apps
  • Your team has zero DevOps capacity
  • Prototypes, MVPs, internal tools
  • You don't want to manage VPCs, ELBs, or ASGs
  • Predictable, simple pricing is important
❌

Don't Use App Runner When

  • You need fine-grained network control (custom VPC rules, private subnets)
  • Complex multi-service architectures β€” use ECS or EKS
  • GPU workloads or specialized instance types
  • Long-running background tasks β€” no worker environments
  • You need WebSockets or gRPC (limited support)
  • High-volume, cost-optimized production β€” ECS is cheaper at scale
App Runner vs Others β€” Quick Comparison Core
FeatureApp RunnerECS FargateElastic BeanstalkLambda
Deploy fromCode or ImageTask Definition + ImageZIP/WAR/DockerFunction code
InfrastructureZero configVPC, ALB, IAM, SGAutomated but visibleNone
ScalingAutomatic (request-based)You configure ASG rulesBuilt-in ASGPer-request
NetworkingPublic HTTPS (VPC optional)Full VPC controlFull VPC controlVPC optional
FlexibilityLow (opinionated)HighMediumMedium
Best forSimple APIs, no-ops teamsProduction containersStandard web appsEvent-driven
Concept Diagram β€” App Runner Simplicity Introductory
App Runner β€” From Code to HTTPS URL in One Step
πŸ‘¨β€πŸ’» DEVELOPER git push push AWS APP RUNNER (everything below is automated) Build Deploy TLS/HTTPS LB Auto Scale Health Check Logging DNS 🌐 HTTPS URL myapp.awsapprunner.com Push code β†’ App Runner handles build, deploy, TLS, load balancing, scaling, DNS β†’ You get a URL. That's it.
AWS Diagram β€” App Runner Components Core
AWS App Runner β€” What's Involved
πŸ“‚
GitHub
Source Code
or
ECR
ECR
Container Image
β†’
App Runner
App Runner
Build + Deploy + Scale
β†’
🌐
HTTPS
Auto TLS + DNS
CloudWatch
CloudWatch
Logs + Metrics
IAM
IAM
Instance Role
VPC
VPC Connector
Optional private access

Source (GitHub/ECR) β†’ App Runner builds + deploys + scales β†’ HTTPS URL. Optional: VPC Connector for private resource access (RDS, ElastiCache).

Architecture Diagram β€” App Runner in Production Deep
App Runner API + Private VPC Resources
🌐 Users β†’ HTTPS AWS App Runner Auto-scaled instances Β· HTTPS Β· Health checks VPC Connector PRIVATE VPC RDS PostgreSQL Private subnet ElastiCache Redis Private subnet Internal APIs Other services Private subnet App Runner is public by default. Use VPC Connector to access private resources (RDS, ElastiCache, internal APIs) without exposing them to the internet.
πŸš€ App Runner β€” Key Takeaways

The simplest container deployment on AWS β€” from code to URL in minutes.

  • What: Fully managed service β€” deploy from GitHub or ECR. No VPC, ELB, or ASG to configure.
  • When: Simple APIs, MVPs, internal tools, teams with zero DevOps capacity.
  • When NOT: Complex microservices (use ECS/EKS), GPU workloads, background workers, fine-grained networking.
  • Cost model: Pay per vCPU-second + memory while actively processing. Idle instances charge memory only (no vCPU). Cannot scale to zero β€” minimum 1 instance always running.
  • VPC access: Use a VPC Connector to reach private databases (RDS, ElastiCache). Note: ~1 min to provision, has ENI limits, cannot cross regions/accounts.
  • Exam tip: Know App Runner = simplest container deploy, auto-scales, HTTPS included, optional VPC Connector.
βš™οΈ
Service Three

AWS Batch

What is AWS Batch Introductory

AWS Batch is a fully managed job processing service. You submit jobs (containerized workloads), Batch queues them, provisions the right amount of compute (EC2 or Fargate), runs the jobs, and shuts down when done. You never worry about cluster management, job scheduling, or resource provisioning.

βš™οΈ

What It Does

Runs batch processing workloads at any scale. You define jobs (Docker containers), submit them to queues, and Batch handles scheduling and compute provisioning automatically.

🧠

Mental Model

Think of Batch as a laundromat. You drop off bags of laundry (jobs). The laundromat has washing machines of different sizes (compute). It loads machines efficiently, runs everything, and notifies you when done.

πŸ’°

Pricing

No charge for Batch itself. You pay only for the underlying compute (EC2 instances or Fargate tasks) used to run your jobs. Supports Spot Instances for up to 90% savings.

πŸ‘‰ Key distinction: AWS Batch is for batch processing β€” finite jobs that start, run, and finish. It is NOT for long-running services, real-time APIs, or web servers. Those belong to ECS, EKS, or App Runner.

Core Concepts β€” How Batch Works Core
πŸ“‹

Job Definition

  • Docker image to run (from ECR or Docker Hub)
  • vCPU + memory requirements
  • Environment variables and mount points
  • Retry strategy β€” how many times to retry on failure
  • Like a "recipe" β€” what to run and how
πŸ“¬

Job Queue

  • Where you submit jobs β€” they wait here until compute is available
  • Multiple queues with priority (urgent vs background)
  • Jobs are scheduled FIFO within priority
  • Connected to one or more compute environments
πŸ–₯️

Compute Environment

  • The pool of compute that runs your jobs
  • Managed β€” Batch provisions/terminates EC2 instances for you
  • Unmanaged β€” You provide your own EC2 instances
  • Supports Spot Instances for massive cost savings
  • Supports Fargate for serverless job execution
  • Auto-scales between minvCpus and maxvCpus
πŸ”„

Job Lifecycle

  • SUBMITTED β†’ job enters the queue
  • PENDING β†’ waiting for compute capacity
  • RUNNABLE β†’ ready, waiting for a slot
  • STARTING β†’ container launching
  • RUNNING β†’ executing your workload
  • SUCCEEDED / FAILED β†’ done
Where Batch Fits β€” When to Use Core
βœ…

Use Batch When

  • ETL pipelines β€” transform large data sets
  • Scientific computing / HPC β€” simulations, modeling
  • Media processing β€” video transcoding, rendering
  • Machine learning β€” training jobs, batch inference
  • Financial modeling β€” risk calculations, backtests
  • Any job that starts, runs, and completes
❌

Don't Use Batch When

  • Real-time APIs β€” use ECS, EKS, or App Runner
  • Event-driven triggers with sub-second latency β€” use Lambda
  • Long-running services β€” Batch jobs eventually end
  • Simple cron jobs β€” use Lambda + EventBridge (cheaper, simpler)
  • Jobs under 15 minutes with simple dependencies β€” Lambda is sufficient
Batch vs Lambda vs Step Functions Core
FeatureAWS BatchLambdaStep Functions
Best forLong-running jobs (hours)Short tasks (<15 min)Orchestrating multiple steps
Max durationUnlimited15 minutes1 year (state machine)
ComputeEC2 / Fargate (any size)Lambda (10GB RAM max)Invokes other services
GPU supportβœ… Yes❌ NoVia Batch/SageMaker
Spot supportβœ… Yes (huge savings)N/AN/A
Cost at idle$0 (scales to zero)$0$0
Job dependenciesβœ… Built-in (job DAGs)Manual or via Step Functionsβœ… Built-in (orchestration)
πŸ”—

Job Dependencies (DAGs)

Batch supports dependency chains β€” jobs wait for predecessors to finish before starting:

Job A (extract) β†’ Job B (transform) β†’ Job C (load)

Each job only starts after its parent completes successfully. Failed parents = dependent jobs cancelled.

πŸ“Š

Array Jobs (Parallel Processing)

Run the same container across many inputs in parallel β€” massive parallelization without managing separate submissions:

  • --array-properties size=100 β†’ 100 parallel jobs
  • Each job gets AWS_BATCH_JOB_ARRAY_INDEX (0–99)
  • Process 1M records in 100 parallel chunks
Concept Diagram β€” Batch Processing Flow Introductory
AWS Batch β€” Submit β†’ Queue β†’ Compute β†’ Done
SUBMIT API / CLI / EventBridge JOB QUEUE Priority ordering FIFO scheduling SCHEDULER Place jobs on available compute COMPUTE ENV EC2 EC2 Spot Fargate βœ… DONE Submit jobs β†’ Queue (priority) β†’ Scheduler places on compute β†’ EC2/Spot/Fargate runs container β†’ Job completes β†’ Compute scales to zero
AWS Diagram β€” Batch Components Core
AWS Batch β€” Service Architecture
EventBridge
EventBridge
Trigger Jobs
β†’
Batch
AWS Batch
Queue + Schedule
β†’
EC2
EC2 / Spot
Run Jobs
or
Fargate
Fargate
Serverless Jobs
ECR
ECR
Job Images
S3
S3
Input / Output
CloudWatch
CloudWatch
Logs + Metrics
IAM
IAM
Job Roles

EventBridge triggers β†’ Batch queues + schedules β†’ EC2/Spot/Fargate runs containers β†’ S3 for data Β· CloudWatch for logs Β· IAM for permissions

Architecture Diagram β€” ETL Pipeline with Batch Deep
Batch ETL Pipeline β€” S3 β†’ Batch β†’ Data Warehouse
S3 Bucket Raw data files (CSV, JSON, Parquet) trigger EventBridge S3 event β†’ Batch AWS Batch Job 1: Extract Job 2: Transform Job 3: Validate Job 4: Load Spot Instances (90% savings) Redshift / Athena Data Warehouse Clean, queryable data SNS β†’ Notify team on completion New data in S3 β†’ EventBridge triggers β†’ Batch runs 4 jobs sequentially (on Spot) β†’ Clean data in warehouse β†’ SNS notification
βš™οΈ AWS Batch β€” Key Takeaways

Managed job processing β€” submit, schedule, and run batch workloads at any scale.

  • What: Job queue + scheduler + auto-provisioned compute (EC2/Spot/Fargate). Free service β€” pay for compute only.
  • When: ETL pipelines, scientific computing, media processing, ML training, financial modeling.
  • When NOT: Real-time APIs (use ECS), short event handlers (use Lambda), long-running services (use ECS/EKS).
  • Spot support: Use Spot Instances for up to 90% cost savings on fault-tolerant batch jobs.
  • Job dependencies: Built-in DAG support β€” Job B waits for Job A to finish before starting.
  • Exam tip: Know Batch = managed job scheduling, supports Spot, scales to zero, NOT for real-time workloads.
πŸ“Š
Decision Guide

Quick Selection Guide

If you need β†’ Use this Core
If you need...Use...Why
Full OS control, custom AMIsEC2Maximum flexibility, any workload
AWS-native container orchestrationECSSimple, free control plane, deep AWS integration
Serverless containers (no nodes)FargateContainers without any server management
Kubernetes ecosystem, multi-cloudEKSStandard K8s API, Helm/Istio/ArgoCD
Simplest deploy (code β†’ URL)App RunnerZero infra config, auto HTTPS + scaling
PaaS with access to resourcesElastic BeanstalkDeploy ZIP/WAR, retain access to EC2/ELB/ASG
Event-driven, short tasks (<15 min)LambdaPay per request, zero servers, massive concurrency
Batch/ETL, long-running jobs, HPCAWS BatchJob queues, Spot Instances, scales to zero
Decision Flowchart Introductory
Which Compute Service Should I Use?
What type of workload? Batch job (finite) AWS Batch ETL, HPC, Spot Event-driven (<15min) Lambda Pay per request Long-running service Need containers? No (code only) Elastic Beanstalk PaaS, deploy ZIP Yes Complexity? Simple API App Runner Zero config Medium Need Kubernetes? No ECS (+ Fargate) AWS-native, free CP Yes EKS K8s ecosystem Need full control? Yes EC2 Raw VMs, full access Start with your workload type β†’ follow the branches β†’ land on the right service. Most web apps end up at ECS or App Runner.
🏁 Other Compute Services β€” Final Summary

Three services, three different problems β€” know when to reach for each.

  • EKS = Kubernetes on AWS. Portable, powerful, complex. Use when K8s ecosystem matters. $72/mo per cluster.
  • App Runner = Heroku on AWS. Code β†’ URL in minutes. Use for simple APIs, MVPs, no-ops teams. Min 1 instance always running.
  • Batch = Job laundromat. Submit jobs, Batch handles everything. Use for ETL, HPC, ML training. Supports Spot for 90% savings.
  • Rule of thumb: Start with the simplest option that meets your needs. You can always graduate to more complex services later.