- Tác giả

- Name
- Nguyễn Đức Xinh
- Ngày xuất bản
- Ngày xuất bản
Tổng Hợp Các Dịch Vụ AWS Serverless
Giới Thiệu Về Serverless
Serverless (Kiến trúc không máy chủ) không có nghĩa là không có máy chủ. Thực tế, vẫn có máy chủ chạy bên dưới, nhưng AWS sẽ thay bạn quản lý toàn bộ việc bảo trì, cấu hình, và mở rộng hạ tầng. Bạn chỉ cần tập trung vào việc viết code và trả phí cho những gì bạn thực sự sử dụng.
Kiến trúc Serverless giúp doanh nghiệp:
- Không quản lý server: Không cần patch, không cần cài đặt OS.
- Tự động mở rộng (Continuous Scaling): Hệ thống tự động scale theo nhu cầu từ 1 đến hàng ngàn request.
- Trả phí theo thực tế sử dụng (Pay for value): Không trả tiền cho thời gian server chờ.
1. Dịch Vụ Tính Toán Không Máy Chủ (Serverless Compute)
Đây là "trái tim" của mọi ứng dụng Serverless, nơi code của bạn được thực thi.
1.1 AWS Lambda
- Khái niệm: Dịch vụ cho phép chạy code dựa trên sự kiện (event-driven) mà không cần quản lý máy chủ.
- Cơ chế hoạt động: Code chỉ chạy khi được kích hoạt bởi một sự kiện (ví dụ: file được upload lên S3, một API call từ API Gateway, hay một tin nhắn trong SQS).
- Ưu điểm:
- Scale cực nhanh.
- Hỗ trợ nhiều ngôn ngữ (Node.js, Python, Java, Go, .Net...).
- Miễn phí 1 triệu request đầu tiên mỗi tháng (Free Tier).
- Hạn chế: Giới hạn thời gian chạy (tối đa 15 phút), Cold start (độ trễ khi khởi động lần đầu).
1.2 AWS Fargate
- Khái niệm: Công cụ tính toán Serverless dành cho Container (hoạt động với cả Amazon ECS và EKS).
- Tại sao dùng Fargate?: Nếu bạn muốn chạy các Container (Docker) mà không muốn quản lý các cụm máy chủ EC2 bên dưới, Fargate là lựa chọn hoàn hảo.
- Khác biệt với Lambda: Fargate phù hợp cho các tác vụ chạy lâu hơn, ổn định hơn và cần môi trường container hoàn chỉnh.
2. Lưu Trữ Không Máy Chủ (Serverless Storage)
Để ứng dụng Serverless hoạt động hoàn chỉnh, bạn cũng cần các dịch vụ lưu trữ không yêu cầu quản lý server.
2.1 Amazon S3 (Simple Storage Service)
- Khái niệm: Dịch vụ lưu trữ đối tượng (Object Storage) cực kỳ bền bỉ và dễ mở rộng.
- Tại sao là Serverless?: Bạn không cần định nghĩa dung lượng ổ đĩa. Bạn cứ đẩy dữ liệu lên, S3 tự động mở rộng và bạn chỉ trả tiền cho dung lượng đã dùng.
- Use case: Lưu trữ ảnh, video, log file, host website tĩnh.
2.2 Amazon DynamoDB (Database)
- Khái niệm: Cơ sở dữ liệu NoSQL Key-value nhanh và linh hoạt.
- Tính năng: Khả năng phản hồi mili giây ở bất kỳ quy mô nào. Ở chế độ On-demand, bạn không cần quan tâm đến việc quản lý throughput.
3. Lợi Ích Của Việc Chuyển Sang Serverless
- Rút ngắn thời gian ra mắt (Time to Market): Developer tập trung 100% vào Business Logic thay vì hạ tầng.
- Tiết kiệm chi phí: Loại bỏ lãng phí từ việc dư thừa tài nguyên server.
- Độ tin cậy cao: Tự động tích hợp khả năng chịu lỗi (High Availability) tại nhiều Availability Zones.
Khi Nào Nên Sử Dụng Lambda vs Fargate?
| Đặc điểm | AWS Lambda | AWS Fargate |
|---|---|---|
| Đóng gói | Code (Functions) | Container (Docker) |
| Thời gian chạy | Ngắn (tối đa 15 phút) | Không giới hạn |
| Khởi động | Gần như tức thì (trừ Cold Start) | Vài phút (để load Container) |
| Kiểm soát | Hạn chế cấu hình OS | Kiểm soát tốt hơn môi trường Container |
| Chi phí | Rất rẻ cho các tác vụ không liên tục | Hiệu quả hơn cho traffic ổn định và liên tục |
Bắt Đầu Với Serverless
Hành trình Serverless thường bắt đầu bằng việc:
- Viết một hàm xử lý đơn giản trên AWS Lambda.
- Thiết lập trigger từ Amazon S3 hoặc API Gateway.
- Lưu trữ kết quả vào DynamoDB.
Đây chính là bộ 3 (Trinity) hoàn hảo để xây dựng bất kỳ ứng dụng web hiện đại nào trên AWS mà không cần lo lắng về việc quản lý server.
Kết Luận
Serverless không chỉ là một công nghệ, đó là một tư duy tối ưu hóa. Bằng cách tận dụng AWS Lambda, Fargate và S3, bạn đang xây dựng một hệ thống có khả năng tự vận hành, tự mở rộng và tối ưu chi phí ở mức tối đa.
Dù bạn đang xây dựng một startup nhỏ hay một hệ thống lớn cho doanh nghiệp, Serverless luôn là một lựa chọn đáng cân nhắc để tiến tới tương lai của điện toán đám mây.
