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 Container | Virtual Machine | |
|---|---|---|
| Khởi động | Vài giây | Vài phút |
| Tài nguyên | Dùng chung OS kernel, nhẹ hơn | Cần OS riêng, nặng hơn |
| Phù hợp | Microservices, app hiện đại | Chạ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:
| EC2 | Lambda | |
|---|---|---|
| Quản lý | Bạn tự quản lý | AWS lo hoàn toàn |
| Chạy | Liên tục 24/7 | Chỉ khi có event |
| Scale | Cần can thiệp thủ công | Tự động |
| Giới hạn | RAM/CPU | Thờ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 Batch | AWS Lambda | |
|---|---|---|
| Loại workload | Batch processing lớn | Event-driven, ngắn |
| Thời gian chạy | Phút đến giờ | Tối đa 15 phút |
| Infrastructure | EC2/Fargate tùy chỉnh | Serverless hoàn toàn |
| Storage | EBS / instance store | Disk 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ì |
|---|---|
| Docker | Container, chạy mọi nơi |
| ECS | Chạy Docker trên AWS, cần EC2 hoặc Fargate |
| Fargate | Serverless container, không quản lý EC2 |
| ECR | Kho lưu Docker image private |
| Lambda | Serverless function, tối đa 15 phút, event-driven |
| API Gateway | Tạo API kết hợp Lambda |
| Batch | Job dài, quy mô lớn, dùng Docker trên ECS |
| Lightsail | Đơn giản, giá rẻ, ít tích hợp |