P
Cloud Blog ProAWS Blog · Cộng đồng VN
Lambda, ECS Fargate, EKS và EC2: So sánh toàn diện để chọn đúng Compute Service trên AWS

Lambda, ECS Fargate, EKS và EC2: So sánh toàn diện để chọn đúng Compute Service trên AWS

Phong NguyễnPhong Nguyễn··21 phút đọc·2 lượt xem

Chọn nhanh trong 60 giây

Trước khi đi sâu, nếu bạn đang bận và cần câu trả lời ngay:

  • Traffic bursty (không đều, tăng đột biến) / event-driven, task ngắn < 15 phút → Lambda
  • Web app / API đơn giản, deploy nhanh → App Runner
  • Long-running containerized services, production-grade → ECS Fargate
  • Cần Kubernetes native, multi-cloud, service mesh → EKS
  • Full OS control, GPU, stateful / legacy app → EC2
  • Batch job dài, không cần server thường trực → AWS Batch

Bài viết này sẽ giải thích tại sao đằng sau từng lựa chọn đó.


Bức tranh tổng quan – 6 Compute Options của AWS

AWS cho bạn 6 compute options chính. Nguyên tắc cốt lõi chỉ có một: càng nhiều control thì càng nhiều operational overhead.

ServiceModelBạn quản lýAWS quản lýPhù hợp nhất
EC2Virtual MachineOS, runtime, app, scaling, patchingPhysical hardware, hypervisorLegacy apps, GPU, stateful workloads
ECS FargateManaged ContainersContainer image, task definition, appOS, container runtime, clusterLong-running microservices, production APIs
EKSKubernetes ContainersK8s manifests, app, node groupsControl plane, OS (Fargate nodes)Multi-cloud, Helm, service mesh, enterprise
App RunnerFully Managed ContainersContainer image hoặc source codeEverything except the appSimple web apps & APIs, lowest overhead
LambdaServerless FunctionsFunction code onlyEverything except the codeEvent-driven, bursty, short-lived tasks
AWS BatchManaged Batch JobsContainer image, job logicEC2/Fargate provisioning, schedulingML training, ETL, media encoding

Analogy dễ nhớ

Một cách khác để hiểu sự khác biệt:

  • EC2 = Nhân viên full-time: luôn on-clock và ăn lương đủ tháng, dù hôm nay idle không có việc gì làm
  • ECS Fargate = Nhân viên hợp đồng có desk sẵn: always ready to work, nhưng toà nhà và infrastructure do AWS lo hết
  • Lambda = Freelancer: gọi đến mới bắt đầu tính tiền, done việc tự disappear, không có request thì zero cost
  • EKS = Quản lý chuỗi franchise: cực kỳ powerful và flexible, nhưng cần cả experienced ops team mới vận hành smooth được
  • AWS Batch = Đội thợ chuyên cho big job: spin up khi có project lớn, xong việc tự terminate, không giữ lại tốn cost

AWS Lambda – Khi nào dùng và khi nào không

Example events

Lambda phù hợp khi

Lambda là lựa chọn tự nhiên cho những bài toán sau:

Event-driven workloads là điểm mạnh cốt lõi. Lambda được thiết kế để respond với S3 upload, SQS message, API Gateway request, DynamoDB stream, EventBridge schedule. Mọi trigger đều native.

Traffic bursty hoặc unpredictable. Lambda scale từ 0 đến hàng nghìn concurrent executions tự động. Bạn không trả tiền khi không có request nào.

Zero operational overhead. Không có instances để patch, không có capacity planning, không có health check ngoài IAM và function code của bạn.

Tasks short-lived và stateless. Mỗi invocation hoàn toàn độc lập. Lambda không share memory giữa các invocations.

Lambda KHÔNG phù hợp khi

Đây là những trường hợp Lambda thường bị dùng sai:

Task chạy > 15 phút. Hard limit. Không thể extend. Phải dùng ECS task hoặc AWS Batch.

APIs với strict p99 latency < 100ms. Cold start của Lambda dao động 100ms đến vài giây tùy runtime. Với Java hoặc .NET, con số này còn cao hơn. Provisioned Concurrency giải quyết được nhưng adds fixed cost và erodes Lambda's pricing advantage.

Duy trì cao mức độ đồng thời. Default 1,000 concurrent executions per account/region. Có thể raise, nhưng Lambda per-request billing trở nên đắt hơn containers khi concurrency cao liên tục.

Cần GPU. Lambda không expose GPU instances. Phải dùng EC2 hoặc AWS Batch với EC2 mode.

Cold Start – Hiểu để xử lý đúng

perf optimize figure 1

Cold start xảy ra khi function chưa được invoke gần đây. Lambda phải khởi động execution environment từ đầu:

  1. Download function code
  2. Initialize runtime (JVM với Java, Node.js runtime, v.v.)
  3. Load dependencies
  4. Execute your code Các cách giảm cold start:
  • Minimize package size – ít dependencies = khởi động nhanh hơn
  • Tăng memory allocation – CPU scale theo memory trong Lambda, init nhanh hơn
  • Lambda SnapStart – dành cho Java, Python và .NET functions, reduce startup time đáng kể
  • Provisioned Concurrency – pre-warm N instances, loại bỏ cold start nhưng có fixed hourly cost
  • Lambda Managed Instances (ra mắt re:Invent 2025) – keeps instances warm cho steady workloads, kết hợp với Compute Savings Plans (1-year: ~17% off)

Note về Lambda Managed Instances: Đây là update lớn nhất của Lambda trong nhiều năm. Với 3-year Savings Plans, cost của Lambda Managed Instances giờ competitive với ECS Fargate – thay đổi hoàn toàn equation cho steady-state workloads.


ECS Fargate – Production Containers Không Cần Kubernetes

Figure 1: Architecture of the infrastructure (for Amazon ECS)

ECS Fargate là sweet spot giữa Lambda (quá hạn chế) và EKS (quá phức tạp). Bạn define container image và task definition, Fargate provisions và manages underlying infrastructure. Không cần manage EC2 instances.

Fargate phù hợp khi

Long-running services. Không bị limit 15 phút. Container chạy bao lâu cũng được – hours, days.

APIs với lưu lượng truy cập cao liên tục. Khi traffic đủ lớn (thường > 50–100M req/month), mức phí cố định của Fargate tốt hơn Lambda per-request billing.

Cần stateful in-memory data. Container có thể maintain session, cache data trong memory suốt thời gian nó chạy – không cần external storage cho mọi thứ.

Custom runtime hoặc dependencies. Bất kỳ language hoặc library nào chạy trong Docker container đều chạy được trên Fargate. Lambda chỉ support một số runtime nhất định.

Production microservices cần custom networking, VPC placement, task-level IAM, blue/green deployment.

Thông số kỹ thuật quan trọng

  • CPU: 0.25 – 16 vCPU (independent với memory)
  • Memory: 0.5 – 120 GiB (independent với CPU)
  • Cold start: Cold start: 5 giây đến 2 phút tùy image size (image nhỏ < 200MB thường 5–15s, image lớn có thể 1–2 phút) – giảm bằng Seekable OCI/SOCI (kỹ thuật giúp Fargate không cần download toàn bộ container image trước khi chạy)
  • Scaling: ECS scheduler launch up to 500 tasks/minute per service
  • Pricing: Per vCPU-second và GB-second, bill ngay khi container running kể cả idle

Fargate vs Lambda – So sánh Performance

MetricAWS FargateAWS Lambda
Cold Start5s – 2 phút100ms – 10s
Max Execution TimeKhông giới hạn15 phút
Max Memory120 GiB10 GiB
Max CPU16 vCPU6 vCPU (proportional)
StateStateful possible (in-memory)Stateless by design
Scaling Time1–2 phút cho new containersInstant (cold start aside)
Concurrency LimitKhông giới hạn (cluster capacity)1,000 default (raiseable)
Cold Start MitigationSOCI lazy loadingProvisioned Concurrency, SnapStart

EKS – Kubernetes Trên AWS: Mạnh Nhưng Đừng Chọn Quá Sớm

A Kubernetes cluster in action.

EKS là managed Kubernetes control plane. Bạn define workloads bằng K8s manifests và EKS schedules chúng trên nodes. EKS mang lại cluster-level features mà ECS không có – nhưng với độ phức tạp vận hành đáng kể.

Chọn EKS khi – và chỉ khi thực sự cần

Team có Kubernetes expertise thực sự. Không phải "đã đọc về K8s", mà là có người đã vận hành production K8s cluster, hiểu Helm, networking plugins, RBAC.

Multi-cloud portability là hard requirement. K8s manifests portable giữa AWS, GCP, Azure. ECS task definitions thì không.

Cần K8s-native features: Helm charts, custom admission controllers, DaemonSets, StatefulSets, Istio/Linkerd service mesh, GitOps với ArgoCD/FluxCD.

Large enterprise với nhiều teams, cần shared platform với RBAC phức tạp.

Tại sao không nên chọn EKS quá sớm

  • Fixed cost $72/tháng cho control plane – expensive cho small workloads
  • Setup mất hàng tuần: control plane, node groups, networking plugins, RBAC, security policies
  • 5 services không cần EKS. ECS Fargate xử lý được hầu hết container workloads với fraction of complexity
  • Kubernetes expertise khan hiếm và expensive – phải tính vào TCO

Nguyên tắc: Migrate lên EKS khi bạn có lý do cụ thể, không phải vì nó "sounds more production-ready" hoặc "more scalable".


EC2 – Full Control Cho Những Trường Hợp Đặc Biệt

EC2 là virtual machine đầy đủ. Bạn control mọi thứ từ OS đến kernel modules. Instance chạy liên tục và bạn trả tiền theo giờ, dù idle hay không.

EC2 là lựa chọn đúng khi

Cần GPU. Lambda và Fargate không expose GPU instances. ML training/inference với GPU (p4d, g5, p5 instances) phải dùng EC2 hoặc AWS Batch với EC2 mode.

Persistent long-lived connections. WebSocket servers, game servers, real-time communication apps giữ connection open hàng giờ. Lambda không thể hold connection giữa các invocations.

Legacy software. Ứng dụng chạy như một process liên tục, đọc/ghi file trực tiếp trên server, hoặc có cấu hình network phức tạp mà container không thể mô phỏng được.

Sustained high-throughput workloads. EC2 Reserved Instances hoặc Savings Plans rẻ hơn 30–60% so với on-demand. Với việc duy trì mức độ đồng thời cao, EC2 tốt hơn Lambda per-request billing rõ ràng.

Full OS-level control. Custom kernel modules, privileged processes, hardware features không available trong containers.

Trade-off phải chấp nhận

EC2 có highest operational overhead trong tất cả options: OS patching, security group configuration, scaling via Auto Scaling Groups, capacity planning. Bạn pay per hour dù traffic thấp hay không.


AWS Batch – Giải Pháp Đúng Cho Batch Workloads

Figure 1: High level structure of AWS Batch resources and interactions. The diagram depicts a user submitting jobs based on a job definition template to a job queue, which then communicates to a compute environment that resources are needed. The compute environment resource scales compute resources on Amazon EC2 or AWS Fargate and registers them with a container orchestration service, either Amazon ECS or Amazon Elastic Kubernetes Service (Amazon EKS). In this post we only cover Amazon ECS clusters with EC2 instances.

AWS Batch được thiết kế riêng cho công việc tính toán riêng lẻ: jobs run to completion, cần nguồn lực tính toán đáng kể, và không cần persistent server giữa các runs.

Điểm khác biệt so với Lambda và EC2:

  • Không có time limit – không có giới hạn như Lambda's 15-minute
  • Automatic provisioning – Batch manages EC2 hoặc Fargate fleet, không pay khi không có jobs
  • Job queuing và scheduling – các ưu tiên và sự phụ thuộc công việc được tích hợp sẵn
  • Variable compute per job – mỗi job request CPU/memory khác nhau, Batch chọn đúng instance type

Use cases điển hình: ML training runs, large-scale ETL, media transcoding, scientific simulations, genomics processing.

Lambda-to-Batch migration: Nếu bạn đang dùng Lambda cho jobs mà keep hitting 15-minute timeout, migration lên Batch thường đơn giản vì Batch dùng cùng container image format.


Decision Matrix – Workload Nào Dùng Service Nào

Đây là bảng mapping workload thực tế sang service phù hợp nhất:

Workload / Use CaseService Phù HợpLý do chính
Webhook handler (S3, GitHub, Stripe)LambdaShort-lived, event-driven, zero idle cost
REST API – traffic thấp/unpredictableLambda hoặc App RunnerScale to zero; App Runner cho always-on simplicity
REST API – sustained high trafficECS Fargate hoặc EC2Lambda per-request cost đắt ở scale lớn
REST API – p99 latency < 100msECS Fargate / App RunnerLambda cold start tạo độ trễ không ổn định
Scheduled job < 15 phútLambda + EventBridgeZero idle cost, scale to zero giữa các runs
Scheduled job > 15 phútAWS Batch hoặc ECS taskLambda timeout exceeded
Queue consumer (SQS/Kinesis)Lambda hoặc ECSLambda cho short tasks; ECS cho long-running consumers
WebSocket / real-time connectionECS Fargate hoặc EC2Lambda không hold connection giữa invocations
Image processing khi uploadLambda + S3 triggerS3 event → Lambda resizes → lưu về S3
Video transcoding (> 15 phút)AWS Batch hoặc ECS taskLambda timeout quá ngắn
ML model training (GPU)EC2 (GPU) hoặc AWS BatchLambda/Fargate không expose GPU
ML inference real-timeEC2 (GPU) hoặc ECSPersistent server, consistent latency
Microservices platform (5–20 services)ECS FargateProduction-grade không cần K8s overhead
Microservices platform (large, multi-cloud)EKSK8s-native tooling, portable manifests
Batch data processing / ETLAWS BatchNo time limit, automatic provisioning
Legacy monolith migrationEC2Long-running process, local filesystem, specific OS
Containerize monolith (first step)ECS FargateNhỏ hơn nhiều so với refactor sang serverless
IoT event ingestionLambdaAuto-scale với event volume, pay-per-event
Daily report / cron jobLambda + EventBridgeZero idle cost, no infra to maintain
Startup MVP / dự án mớiApp Runner hoặc LambdaLowest setup, migrate lên ECS khi cần

So Sánh Chi Phí Thực Tế

Breakdown 100M requests/month

Giả định: ~38 req/sec average, 200ms duration, 1GB memory:

Compute OptionOn-DemandVới Savings Plans/SpotPhù hợp nhất
Lambda Standard~$390–430N/ATraffic thấp/sporadic
Lambda Managed Instances~$220–290~$180–240 (3-yr SP)Steady-state, latency-sensitive
ECS Fargate~$200–240~$140–180 (Spot + SP)Long-running, predictable load
EKS (Graviton)~$215–255~$135–175 (Spot + SP)Large-scale, ops expertise
EC2 Reserved~$120–160~$100–140Sustained high-throughput

Lưu ý: Kể từ tháng 8/2025, AWS tính thêm phí INIT phase (cold start). Dùng ARM64/Graviton2 để tiết kiệm thêm 20%.

Rule of thumb về cost

Lambda wins khi traffic thấp hoặc sporadic. Scale to zero = zero cost khi không dùng. Free tier 1M requests + 400K GB-seconds/tháng.

Containers/EC2 wins khi traffic cao liên tục. Khi lượng request cao và đều đặn suốt ngày, chi phí cố định của container sẽ rẻ hơn Lambda trả theo từng lượt gọi. Ngưỡng này thường rơi vào 50–100M request/tháng tùy workload.

Hidden costs phải tính vào TCO

Nhiều team chỉ nhìn compute cost mà bỏ qua:

  • Engineer time: EKS cần dedicated DevOps engineer – tính giá engineer time vào TCO
  • Lambda Provisioned Concurrency: loại bỏ cold start nhưng adds fixed hourly cost
  • ALB: ~$25–35/tháng cho ECS/EKS (base + LCU charges)
  • ECR storage + CloudWatch logs: nhỏ nhưng cộng lại đáng kể
  • EKS control plane: fixed $72/tháng dù workload nhỏ
  • Data transfer: outbound traffic tính fee với tất cả services

ECS vs EKS vs Lambda – Góc nhìn DevOps

FeatureECS FargateEKSLambda
Deployment ComplexityThấp – AWS fully managedCao – K8s expertise requiredRất thấp – upload code và run
ScalabilityCao (ECS scheduler)Cao (K8s HPA auto-scaling)Automatic, event-driven
Cost ModelPay per resource (có thể optimize)Pay per cluster/node + $72/moPay per execution (ms-level)
Management OverheadMinimalModerate to HighNone
Cold Start RiskKhôngKhôngCó (mitigable)
PortabilityAWS-onlyMulti-cloud & on-prem (K8s)Tied to AWS ecosystem
CustomizationMediumRất cao (native Kubernetes)Thấp – limited runtime config
CI/CD IntegrationCodePipeline, Docker-nativeHelm, GitOps, ArgoCDSAM, Serverless Framework
Ideal Team SizeSmall to MediumMedium to LargeAny

Framework Ra Quyết Định

6 câu hỏi để chọn đúng service

Trả lời 6 câu hỏi này theo thứ tự, dừng lại ở câu đầu tiên cho ra câu trả lời rõ ràng:

Câu hỏi 1: Workload có event-driven và hoàn thành trong < 15 phút không?

  • YES → Lambda (Standard hoặc Managed Instances tùy traffic pattern)
  • NO → tiếp tục câu 2

Câu hỏi 2: Traffic pattern như thế nào?

  • Thỉnh thoảng / Có lúc tăng đột ngột (10x+ swings) → Lambda Standard
  • Ổn định / Có thể dự đoán → Lambda Managed, ECS Fargate, hoặc EKS

Câu hỏi 3: Cần GPU, full OS, hoặc persistent local storage không?

  • YES → EC2 (hoặc AWS Batch với EC2 mode cho batch GPU jobs)
  • NO → tiếp tục câu 4

Câu hỏi 4: Cần Kubernetes-native tooling hoặc multi-cloud portability?

  • YES → EKS
  • NO → ECS Fargate (đơn giản hơn, chi phí thấp hơn)

Câu hỏi 5: Workload chạy > 15 phút và cần scheduling các job rời rạc?

  • YES → AWS Batch
  • NO → Lambda hoặc ECS task

Câu hỏi 6: Team có K8s expertise không? Có < 10 services không?

  • < 10 services, no K8s expertise → ECS Fargate
  • Large scale + K8s expertise → EKS

5 sai lầm phổ biến nhất

Sai lầm 1: Dùng Lambda cho mọi thứ bất kể fit hay không

Lambda là excellent default cho event-driven/short-lived, nhưng nhiều team apply nó cho APIs với strict p99 latency requirements, jobs > 15 phút, hoặc services với lượng request cao và duy trì liên tục. Kiểm tra hard limits và cost model trước khi commit.

Sai lầm 2: Default về EC2 vì quen thuộc

Teams từ traditional infrastructure thường reach for EC2 ngay cả khi Lambda hoặc App Runner đơn giản hơn, rẻ hơn, và lower-maintenance. EC2 chỉ là đúng choice cho specific reasons: full OS control, GPU hardware, persistent connections, legacy workloads.

Sai lầm 3: Chọn EKS quá sớm

EKS powerful nhưng introduces significant operational complexity. 5 services không cần Kubernetes. App Runner hoặc ECS Fargate xử lý được hầu hết container workloads. Migrate lên EKS khi có nhu cầu cụ thể và rõ ràng, không phải vì nó nghe có vẻ "production-ready" hơn.

Sai lầm 4: Ignore cold starts cho latency-sensitive APIs

Lambda cold starts: 100ms đến vài giây tùy runtime. Synchronous APIs với p99 < 100ms cần Provisioned Concurrency (adds cost) hoặc ECS/App Runner. Với Lambda Managed Instances, cold start được giải quyết cho steady workloads.

Sai lầm 5: Tự build job scheduler thay vì dùng AWS Batch

Teams thường try Lambda → hit 15-minute timeout → fallback về persistent EC2 → tự build job scheduler. AWS Batch giải quyết trực tiếp: job queuing, automatic provisioning, job dependencies – không có extra service cost ngoài underlying compute.


Hybrid Architectures – Kết Hợp Services

Phần lớn production systems dùng nhiều compute models. Thuần serverless hoặc thuần containers là hiếm. Câu hỏi đúng không phải "serverless hay containers?" mà là "compute model nào fit workload này?"

Pattern 1: API Gateway + Lambda + ECS Fargate

Pattern phổ biến nhất cho web applications:

  • Lambda Managed Instances → High-traffic user-facing APIs (consistent latency, no cold start)
  • Lambda Standard → Event handlers và async jobs (cost efficiency, scale to zero)
  • ECS Fargate → Long-running processes và background workers

💡 Pattern này phù hợp với team đủ lớn (5+ engineers). Team nhỏ hơn nên chọn một platform chính – hoặc thuần Lambda hoặc thuần ECS – để giảm complexity vận hành.

Pattern 2: E-commerce / SaaS Platform

  • Lambda → User authentication webhooks, order events, payment callbacks (short-lived, event-driven)
  • ECS Fargate → Product catalog API, user sessions, core web app (always-on, consistent latency)
  • ECS Fargate → Analytics API, recommendation service (long-running, containerized)
  • AWS Batch + EC2 GPU → ML model training, batch recommendation generation (GPU, no idle cost)
  • Lambda + S3 trigger → Image resizing khi upload

Pattern 3: Data Pipeline

  • Lambda → Ingest events từ IoT/Kinesis (auto-scale với event volume)
  • Lambda → Simple transformations, filtering
  • AWS Batch → Heavy ETL, large dataset processing (no time limit, GPU EC2 khi cần)
  • ECS Fargate → Serve processed data via API

Pattern 4: ML Platform

  • AWS Batch + EC2 GPU → Model training (p4d, g5 instances – no idle GPU cost between runs)
  • AWS Batch → Data preprocessing (large memory, no time limit)
  • EC2 GPU hoặc ECS → Real-time inference (persistent, low latency, no cold start)
  • Lambda hoặc AWS Batch → Batch inference tùy workload size

Real-world Case Study

Một e-learning startup cần handle millions of video interactions, real-time analytics, và scheduled notifications với cost efficiency:

ComponentServiceLý do
Course completion emails, image uploadsLambdaFunctions chạy vài giây per event, scale to zero
User sessions, authentication microservicesECS FargateControl over dependencies, no EC2 management
Analytics engine, ML componentsAWS Batch + EC2 GPUGPU thuộc EC2 node (p4d, g5), no idle cost giữa các runs
Real-time analytics APIECS FargateAlways-on, low latency serving

Security & Compliance

Lambda

  • IAM execution role per function – least privilege cho từng function
  • Có thể attach vào customer-managed VPC (via AWS Hyperplane) để access VPC resources
  • Stateless design: reduced attack surface
  • Watch out: ENI limit (250/region soft) khi Lambda kết nối VPC; monitor nếu scale lớn

ECS Fargate

  • Task-level IAM roles – fine-grained permissions per container
  • Full VPC integration – security groups, NACLs, VPC peering
  • Container-level isolation – tốt cho high-compliance applications
  • Lý tưởng cho fintech, healthcare, government: granular network và container-level isolation

EKS

  • Kubernetes RBAC – fine-grained access control at cluster, namespace, resource level
  • Network policies – pod-to-pod communication control
  • Pod security standards, admission controllers, OPA/Gatekeeper
  • Full audit logging, compliance tooling integration
  • Most complex security model nhưng most control

Optimization Tips Theo Từng Service

Lambda

  • Minimize package size và dependencies – ít hơn = khởi động nhanh hơn
  • Set memory phù hợp – memory tăng → CPU tăng proportionally; đôi khi tăng memory giảm total cost vì execution time giảm
  • Provisioned Concurrency chỉ cho latency-critical paths – có fixed cost
  • Lambda SnapStart (Java 11+, Python 3.12+, .NET 8+) – giảm startup time đáng kể
  • Steady workloads: Lambda Managed Instances + Savings Plans = cost competitive với containers

ECS Fargate

  • Right-size task definitions – review actual CPU/memory utilization trong CloudWatch; đừng over-provision
  • Fargate Spot cho fault-tolerant workloads (batch processing, async jobs) – tiết kiệm đến 70%
  • Seekable OCI (SOCI) – speed up container image loading, reduces cold start
  • Compute Savings Plans apply to Fargate – commit based on baseline usage

EKS

  • Graviton2/3 instances (t4g, m7g, c7g) – ~20% better price/performance vs x86
  • EC2 Spot instances cho node groups với fault-tolerant workloads
  • Karpenter cho intelligent node provisioning
  • Cluster autoscaling – avoid over-provisioning nodes

Kết Luận

Không có một service nào là "tốt nhất" cho mọi trường hợp. Quyết định đúng luôn phụ thuộc vào workload characteristics, chuyên môn của team, traffic patterns, và long-term cost model.

Tóm tắt cuối:

  • Lambda → Event-driven, < 15 min, stateless, bursty. Với Managed Instances: steady workloads không cold start.
  • ECS Fargate → Long-running containers, production-grade, sweet spot giữa Lambda và EKS.
  • EKS → Chỉ khi genuinely cần K8s: multi-cloud, Helm, service mesh, large enterprise.
  • App Runner → Simplest container deployment cho web apps/APIs, starting point tốt.
  • EC2 → Full control, GPU, persistent connections, legacy. Cheapest ở sustained scale lớn.
  • AWS Batch → Discrete compute jobs, no time limit. Go-to khi Lambda timeout là barrier.

Và quan trọng nhất: hầu hết production systems dùng hybrid. Đừng ép mọi workload vào một service. Dùng đúng tool cho đúng việc.


Tài liệu tham khảo chính: AWS Documentation – Choosing an AWS Compute Service | AWS Fargate vs Lambda

Cập nhật tháng 5/2026 – Bao gồm Lambda Managed Instances (AWS re:Invent 2025)

Quay lại trang chủ

Bình luận