🚀 TỔNG QUAN SERVERLESS – AWS LAMBDA – API GATEWAY – DYNAMODB
Serverless không phải là “không có server”. Thực tế, server vẫn tồn tại, nhưng bạn hoàn toàn không phải quản lý, bảo trì, nâng cấp hay cấu hình chúng. Nhà cung cấp dịch vụ (như AWS) làm hết.
Nhiệm vụ của bạn chỉ là đưa code lên chạy, và code đó sẽ tự động được kích hoạt khi có sự kiện xảy ra.
Ban đầu, serverless gắn liền với khái niệm FaaS – Function as a Service, nổi tiếng nhất là AWS Lambda. Nhưng hiện nay, serverless bao gồm rất nhiều dịch vụ được quản lý hoàn toàn như: S3, DynamoDB, API Gateway, Cognito, SNS/SQS, Kinesis, Aurora Serverless, Fargate, Step Functions…
🌟 1. Serverless là gì? Tại sao ngày càng phổ biến?
Serverless là mô hình điện toán nơi:
Serverless giúp bạn:
🌟 2. AWS Lambda – Trái tim của Serverless trên AWS
✔ Lambda khác gì EC2?
EC2:
🌟 3. Lợi ích của AWS Lambda
Cực rẻ: miễn phí 1.000.000 request/tháng + 400.000 GB–seconds/tháng.
🌟 4. Lambda tích hợp với những dịch vụ nào?
Lambda có thể được kích hoạt bởi hầu hết dịch vụ AWS:
🌟 5. Ví dụ ứng dụng Serverless thực tế
✔ 1. Tạo thumbnail tự động khi tải ảnh lên S3
Quy trình:
🌟 6. Giá của AWS Lambda (hiểu cực dễ)
Chi phí gồm: 1. Chi phí request
🌟 7. Giới hạn quan trọng của Lambda (cần biết trước khi thiết kế)
🌟 8. CloudFront Functions & Lambda@Edge – Xử lý logic ngay tại biên (edge)
Nhiều ứng dụng cần thực thi logic ngay tại Edge để giảm độ trễ cho người dùng toàn cầu. AWS cung cấp: ✔ CloudFront Functions
🌟 9. Lambda trong VPC – Khi nào cần?
Theo mặc định, Lambda chạy ngoài VPC → không truy cập được RDS hoặc tài nguyên private.
Nếu muốn Lambda truy cập RDS/ElastiCache…
→ Bạn phải cấu hình:
🌟 10. RDS Proxy – Giải pháp chống quá tải connection
Nếu Lambda gọi trực tiếp RDS và lưu lượng tăng mạnh → mở quá nhiều connection → DB quá tải.
RDS Proxy giải quyết bằng cách:
🌟 11. DynamoDB – Database Serverless mạnh nhất AWS
DynamoDB là NoSQL fully-managed, khả năng:
🌟 12. Read/Write Capacity Mode
Provisioned Mode
🌟 13. DynamoDB Accelerator – DAX
DAX giúp cache dữ liệu DynamoDB trong bộ nhớ:
🌟 14. DynamoDB Streams
Streams lưu lại mọi thay đổi (create/update/delete) của bảng.
Dùng trong:
🌟 15. DynamoDB Global Tables
🌟 16. TTL – Tự động xóa dữ liệu hết hạn
Dùng để:
🌟 17. Backup & Restore
DynamoDB hỗ trợ:
🌟 18. Tích hợp DynamoDB với S3
🌟 19. Xây dựng Serverless API
Kiến trúc cơ bản:
🌟 20. API Gateway – Cổng vào của API Serverless
Các chức năng chính:
🌟 21. Step Functions – Orchestration cho Serverless
Step Functions giúp:
🎯 KẾT LUẬN
Tài liệu này giúp bạn hiểu tổng quan Serverless, AWS Lambda, DynamoDB và API Gateway – những thành phần cốt lõi để xây dựng ứng dụng hiện đại, tự động scale, chi phí thấp và dễ triển khai.
Serverless không phải là “không có server”. Thực tế, server vẫn tồn tại, nhưng bạn hoàn toàn không phải quản lý, bảo trì, nâng cấp hay cấu hình chúng. Nhà cung cấp dịch vụ (như AWS) làm hết.
Nhiệm vụ của bạn chỉ là đưa code lên chạy, và code đó sẽ tự động được kích hoạt khi có sự kiện xảy ra.
Ban đầu, serverless gắn liền với khái niệm FaaS – Function as a Service, nổi tiếng nhất là AWS Lambda. Nhưng hiện nay, serverless bao gồm rất nhiều dịch vụ được quản lý hoàn toàn như: S3, DynamoDB, API Gateway, Cognito, SNS/SQS, Kinesis, Aurora Serverless, Fargate, Step Functions…
🌟 1. Serverless là gì? Tại sao ngày càng phổ biến?
Serverless là mô hình điện toán nơi:
- Bạn không quản lý server (OS, patch, scaling…).
- Bạn chỉ deploy function hoặc code.
- Hệ thống tự chạy khi có sự kiện, tự scale và tự tính chi phí theo số lần chạy.
Serverless giúp bạn:
- Tập trung vào logic nghiệp vụ thay vì hạ tầng.
- Trả tiền đúng mức sử dụng, không lãng phí.
- Tự động scale lên hàng ngàn request/giây khi cần.
- Giảm mạnh chi phí vận hành DevOps.
🌟 2. AWS Lambda – Trái tim của Serverless trên AWS
✔ Lambda khác gì EC2?
EC2:
- Là server ảo truyền thống.
- Luôn chạy liên tục.
- Muốn scale phải can thiệp thủ công.
- Tính tiền theo giờ chạy.
- Là hàm chạy theo sự kiện.
- Không chạy thường xuyên, chỉ chạy khi cần.
- Tự động scale.
- Tính tiền theo từng lần gọi + thời gian chạy (tính theo mili–giây).
- Giới hạn thời gian chạy mỗi lần: tối đa 15 phút.
🌟 3. Lợi ích của AWS Lambda
Cực rẻ: miễn phí 1.000.000 request/tháng + 400.000 GB–seconds/tháng.
- Hỗ trợ nhiều ngôn ngữ: Node.js, Python, Java, C#, Go, Powershell, Ruby…
- Dễ giám sát qua CloudWatch.
- Tăng RAM đồng nghĩa tăng CPU + tăng tốc độ mạng.
- Có thể chạy bằng container (image) nếu cần.
🌟 4. Lambda tích hợp với những dịch vụ nào?
Lambda có thể được kích hoạt bởi hầu hết dịch vụ AWS:
- S3
- DynamoDB Streams
- API Gateway
- SQS
- SNS
- Kinesis
- CloudWatch Events / EventBridge
- CloudFront (Lambda@Edge)
- Cognito
🌟 5. Ví dụ ứng dụng Serverless thực tế
✔ 1. Tạo thumbnail tự động khi tải ảnh lên S3
Quy trình:
- Người dùng upload ảnh vào S3.
- S3 kích hoạt Lambda.
- Lambda xử lý ảnh, tạo thumbnail.
- Lưu thumbnail vào S3.
- Ghi metadata vào DynamoDB.
- Dùng CloudWatch Events / EventBridge để kích hoạt Lambda mỗi giờ, mỗi ngày…
- Không cần server chạy nền.
🌟 6. Giá của AWS Lambda (hiểu cực dễ)
Chi phí gồm: 1. Chi phí request
- 1.000.000 request đầu tiên: miễn phí.
- Sau đó: $0.20 cho mỗi 1 triệu request.
- 400.000 GB-seconds miễn phí mỗi tháng.
- Chỉ tính tiền dựa trên RAM x thời gian chạy.
🌟 7. Giới hạn quan trọng của Lambda (cần biết trước khi thiết kế)
- RAM: 128MB – 10GB.
- Thời gian chạy tối đa: 15 phút.
- /tmp: 512MB – 10GB.
- Concurrency mặc định: 1000.
- Kích thước deployment:
- ZIP: tối đa 50MB (compressed)
- 250MB (uncompressed)
🌟 8. CloudFront Functions & Lambda@Edge – Xử lý logic ngay tại biên (edge)
Nhiều ứng dụng cần thực thi logic ngay tại Edge để giảm độ trễ cho người dùng toàn cầu. AWS cung cấp: ✔ CloudFront Functions
- Viết bằng JavaScript.
- Thời gian chạy < 1ms.
- Xử lý hàng triệu request/giây.
- Dùng cho tác vụ nhẹ: chỉnh header, rewrite URL, xác thực đơn giản.
- Hỗ trợ Node.js & Python.
- Thời gian chạy dài hơn (vài giây).
- Có quyền truy cập mạng, file, body request.
- Dùng cho tác vụ nặng hơn: truy cập database, gọi API ngoài…
🌟 9. Lambda trong VPC – Khi nào cần?
Theo mặc định, Lambda chạy ngoài VPC → không truy cập được RDS hoặc tài nguyên private.
Nếu muốn Lambda truy cập RDS/ElastiCache…
→ Bạn phải cấu hình:
- VPC
- Private Subnet
- Security Group
- Lambda sẽ tự tạo ENI gắn vào VPC để truy cập.
🌟 10. RDS Proxy – Giải pháp chống quá tải connection
Nếu Lambda gọi trực tiếp RDS và lưu lượng tăng mạnh → mở quá nhiều connection → DB quá tải.
RDS Proxy giải quyết bằng cách:
- Gom connection – chia sẻ connection.
- Giảm thời gian failover 66%.
- Tăng bảo mật (dùng IAM + Secrets Manager).
🌟 11. DynamoDB – Database Serverless mạnh nhất AWS
DynamoDB là NoSQL fully-managed, khả năng:
- Xử lý hàng triệu request/giây
- Hàng nghìn tỷ row
- Độ trễ mili–giây
- Tự động scale
- Không phải bảo trì
- Dữ liệu lưu trong Table
- Mỗi Table phải có Primary Key
- Mỗi Item có thể có vô số thuộc tính
- Kích thước tối đa mỗi Item: 400KB
- Hỗ trợ các kiểu Scalar, Document, Set
🌟 12. Read/Write Capacity Mode
Provisioned Mode
- Bạn phải cấu hình số RCU/WCU trước.
- Có thể bật Auto Scaling.
- Rẻ cho workload ổn định.
- Không cần dự đoán tải.
- Trả tiền theo request thực tế.
- Đắt hơn nhưng phù hợp workload bất thường.
🌟 13. DynamoDB Accelerator – DAX
DAX giúp cache dữ liệu DynamoDB trong bộ nhớ:
- Tăng tốc độ đọc lên mức micro–giây.
- Không cần sửa logic ứng dụng.
- TTL cache mặc định 5 phút.
🌟 14. DynamoDB Streams
Streams lưu lại mọi thay đổi (create/update/delete) của bảng.
Dùng trong:
- Gửi email chào mừng khi user mới đăng ký
- Phân tích thời gian thực
- Sao chép dữ liệu sang bảng khác
- Cross-region replication
- Trigger Lambda
- Ghi log vào S3, Redshift
🌟 15. DynamoDB Global Tables
- Cho phép đọc/ghi đa vùng (multi-region).
- Replica theo hướng active–active.
- Giảm độ trễ cho người dùng toàn cầu.
🌟 16. TTL – Tự động xóa dữ liệu hết hạn
Dùng để:
- Quản lý session
- Giảm chi phí lưu trữ
- Xóa bản ghi không còn hợp lệ
🌟 17. Backup & Restore
DynamoDB hỗ trợ:
- Point-in-time recovery 35 ngày
- On-demand backup
- Tạo bảng mới khi phục hồi
- Không ảnh hưởng hiệu năng
🌟 18. Tích hợp DynamoDB với S3
- Xuất dữ liệu từ DynamoDB sang S3
- Nhập dữ liệu từ S3 vào DynamoDB
- Xuất/nhập ở các định dạng: CSV, JSON, ION
- Không tiêu tốn Read/Write capacity
🌟 19. Xây dựng Serverless API
Kiến trúc cơ bản:
- API Gateway nhận request
- Lambda xử lý logic
- DynamoDB lưu trữ dữ liệu
🌟 20. API Gateway – Cổng vào của API Serverless
Các chức năng chính:
- Không cần quản lý hạ tầng
- Hỗ trợ WebSocket
- Quản lý API version
- Tách môi trường (dev/test/prod)
- Xác thực IAM / Cognito / Custom Authorizer
- Tạo API Key
- Throttling
- Import OpenAPI/Swagger
- Cache response
- Tích hợp AWS Services, HTTP backend, hoặc Lambda
🌟 21. Step Functions – Orchestration cho Serverless
Step Functions giúp:
- Xây dựng workflow có thứ tự, song song, rẽ nhánh
- Gọi Lambda, EC2, ECS, SQS…
- Quản lý timeout, retry, error handling
- Tạo workflow có sự phê duyệt của con người
- Dùng cho data processing, order processing, web app…
🎯 KẾT LUẬN
Tài liệu này giúp bạn hiểu tổng quan Serverless, AWS Lambda, DynamoDB và API Gateway – những thành phần cốt lõi để xây dựng ứng dụng hiện đại, tự động scale, chi phí thấp và dễ triển khai.