メインコンテンツまでスキップ

AWS Lambda Deep Dive

1. Architecture: Firecracker MicroVMs

Lambda không chạy trên container Docker thông thường. Nó chạy trên Firecracker MicroVMs.

  • Isolation: Mỗi Function instance chạy trong một MicroVM riêng biệt, đảm bảo bảo mật tuyệt đối như máy ảo.
  • Speed: Thời gian khởi động MicroVM chỉ tính bằng mili-giây.

2. Concurrency & Scaling

  • Reserved Concurrency: Đảm bảo function luôn có sẵn X instances. Đồng thời giới hạn (Limit) không cho function scale quá mức gây tốn tiền.
  • Provisioned Concurrency: Khởi tạo sẵn môi trường (Init code xong xuôi) để loại bỏ Cold Start.
Provisioned Concurrency

Dùng cho các API quan trọng cần độ trễ thấp và ổn định (VD: Checkout flow). Bạn trả tiền cho việc "giữ chỗ" này.

3. Lambda in VPC

Mặc định Lambda chạy trong VPC quản lý bởi AWS (có Internet access). Khi bạn gán Lambda vào VPC của bạn (để truy cập RDS Private):

  • Lambda tạo Elastic Network Interface (ENI) trong subnet của bạn.
  • Lưu ý: Lambda trong VPC KHÔNG có Internet access mặc định. Muốn ra Internet (để gọi 3rd party API), subnet đó phải có NAT Gateway.
VPC Cold Start (Legacy)

Trước đây (trước 2019), Lambda trong VPC bị Cold Start rất lâu (do phải tạo ENI). Hiện tại AWS đã khắc phục vấn đề này (Hyperplane ENI), nên hiệu năng gần như tương đương Lambda thường.

4. Layers

Tách biệt code và dependencies.

  • Tạo một Layer chứa node_modules hoặc pip packages.
  • Nhiều Function có thể dùng chung 1 Layer. Giúp giảm kích thước gói deploy của Function.