Other Compute


Docker là gì?

Docker là nền tảng giúp đóng gói ứng dụng vào container – chạy được trên mọi hệ điều hành, mọi môi trường mà không lo xung đột phụ thuộc (dependency). Lợi ích cốt lõi: viết một lần, chạy mọi nơi.

Docker images được lưu ở đâu?

  • Public: Docker Hub
  • Private trên AWS: Amazon ECR (Elastic Container Registry)

Docker vs Virtual Machine (VM)

Docker ContainerVirtual Machine
Khởi độngVài giâyVài phút
Tài nguyênDùng chung OS kernel, nhẹ hơnCần OS riêng, nặng hơn
Phù hợpMicroservices, app hiện đạiChạy nhiều OS khác nhau

ECS – Elastic Container Service

Dịch vụ orchestration (điều phối) container được AWS quản lý hoàn toàn. Bạn chỉ cần đẩy Docker image lên, AWS lo việc start/stop container.

2 launch mode:

  • EC2 mode: bạn tự quản lý EC2 instance bên dưới
  • Fargate mode: serverless, không cần quan tâm đến server

Fargate

Chạy container mà không cần provision hay quản lý EC2. AWS tự phân bổ CPU/RAM theo nhu cầu. Thanh toán theo tài nguyên thực tế dùng.

Fargate = ECS/EKS nhưng serverless


ECR – Elastic Container Registry

Kho lưu trữ Docker image private trên AWS. Tích hợp chặt với ECS, EKS, Fargate. Đây là nơi bạn push image lên trước khi ECS/Fargate pull về chạy.


Serverless là gì?

Bạn chỉ deploy code/function, không cần quan tâm đến server phía sau. AWS tự lo provision, scale, bảo trì.

Serverless không có nghĩa là không có server – mà là bạn không nhìn thấy và không quản lý chúng.

Khởi đầu từ FaaS (Function as a Service), nay mở rộng ra cả database, messaging, storage serverless.


AWS Lambda

Chạy code theo event-driven – có sự kiện thì Lambda mới chạy, không có thì không tốn tiền.

So sánh EC2 vs Lambda:

EC2Lambda
Quản lýBạn tự quản lýAWS lo hoàn toàn
ChạyLiên tục 24/7Chỉ khi có event
ScaleCần can thiệp thủ côngTự động
Giới hạnRAM/CPUThời gian chạy tối đa 15 phút

Ngôn ngữ hỗ trợ: Node.js, Python, Ruby, Java, Go, .NET Core, custom runtime (ví dụ Rust)

Pricing:

  • 1 triệu request/tháng đầu miễn phí
  • Sau đó $0.20/triệu request
  • 400,000 GB-seconds compute/tháng miễn phí

Use case điển hình:

  • Tạo thumbnail khi upload ảnh lên S3
  • Serverless cron job
  • Backend API kết hợp với API Gateway

Amazon API Gateway

Dịch vụ tạo và quản lý REST / HTTP / WebSocket API serverless. Thường đi kèm Lambda để tạo backend hoàn toàn serverless. Có sẵn: throttling, caching, auth, API key, monitoring.


AWS Batch

Xử lý batch job (công việc có điểm đầu – điểm cuối) quy mô lớn. AWS tự động provision EC2 hoặc Spot Instance phù hợp. Batch job được định nghĩa dưới dạng Docker image chạy trên ECS.

Batch vs Lambda:

AWS BatchAWS Lambda
Loại workloadBatch processing lớnEvent-driven, ngắn
Thời gian chạyPhút đến giờTối đa 15 phút
InfrastructureEC2/Fargate tùy chỉnhServerless hoàn toàn
StorageEBS / instance storeDisk tạm thời giới hạn

Amazon Lightsail

Giải pháp all-in-one đơn giản: server, storage, database, networking – giá thấp và dễ đoán. Dành cho người ít kinh nghiệm cloud hoặc app nhỏ.

Use case: WordPress, LAMP stack, môi trường dev/test.

Lưu ý: Không có auto-scaling, tích hợp AWS hạn chế – không phù hợp hệ thống lớn.


Tóm tắt nhanh để thi

Dịch vụNhớ điều gì
DockerContainer, chạy mọi nơi
ECSChạy Docker trên AWS, cần EC2 hoặc Fargate
FargateServerless container, không quản lý EC2
ECRKho lưu Docker image private
LambdaServerless function, tối đa 15 phút, event-driven
API GatewayTạo API kết hợp Lambda
BatchJob dài, quy mô lớn, dùng Docker trên ECS
LightsailĐơn giản, giá rẻ, ít tích hợp