Lambda timeout toàn bộ vì… gọi vào VPC mà không có NAT. Ai biết NAT là gì đâu mà cấu hình!
Cold start đã là nỗi ám ảnh, nhưng Lambda timeout hàng loạt vì cấu hình mạng sai còn kinh khủng hơn. Team gán Lambda vào VPC để gọi database, nhưng quên NAT Gateway, thế là cả hệ thống “chết đứng”.
![]() |
Lambda trong VPC mà không có NAT Gateway |
Thực trạng: Lambda trong VPC không cấu hình đúng
Thực trạng:
- Lambda được gán vào VPC để truy cập RDS, nhưng không có NAT Gateway hoặc route table.
- Lambda gọi API external (như payment gateway) bị timeout vì không ra được Internet.
- Không monitor timeout, team chỉ biết khi khách hàng kêu ca.
Hệ quả:
- Timeout hàng loạt: Request thất bại, user nhận lỗi 500.
- Khó debug: Log chỉ báo timeout, không rõ nguyên nhân mạng.
- Tốn chi phí: Lambda retry liên tục, làm tăng bill AWS.
Giải pháp: Cấu hình mạng đúng
Để Lambda chạy mượt:
- Tránh VPC nếu không cần: Nếu Lambda chỉ gọi public API, không cần VPC.
- Cấu hình NAT Gateway: Đảm bảo subnet có NAT Gateway và route table để ra Internet.
- Monitor timeout: Dùng CloudWatch để báo timeout, cấu hình retry hợp lý.
Ví dụ: Trong SAM template, cấu hình Lambda ngoài VPC nếu không cần:
Resources: MyFunction: Type: AWS::Serverless::Function Properties: CodeUri: . Handler: index.handler Runtime: nodejs18.x VpcConfig: {} # Bỏ nếu không cần VPC
🎯 Tóm lại: Timeout do mạng sai là “cơn ác mộng” của serverless. Tránh VPC không cần thiết, cấu hình NAT đúng, và monitor chặt để hệ thống không “chết đứng”.
Đăng nhận xét