Lambda SnapStart

1 phút đọcSeries: NoteBook: AWS Certified Solutions Architect Associate SAA-C031 lượt xem

Tổng quan

  • Cải thiện hiệu năng cho Lambda function lên đến 10 lần mà không tốn thêm chi phí, áp dụng cho Java 11 trở lên.
  • Khi được bật, hàm Lambda sẽ được gọi từ trạng thái đã khởi tạo sẵn (pre-initialized) → không cần khởi tạo từ đầu (cold start).
  • Khi bạn publish một phiên bản mới, quá trình như sau:
    • Lambda khởi tạo hàm.
    • Chụp snapshot của trạng thái bộ nhớ và đĩa sau khi hàm được khởi tạo.
    • Snapshot này sẽ được cache lại để có thể gọi lại sau với độ trễ thấp.

Mục đích

Giảm cold start time – vấn đề lớn với Lambda, đặc biệt là với Java (Java có thời gian init lâu hơn Python, Node.js).

Cơ chế hoạt động

  • Khi SnapStart được enabled, quy trình gọi Lambda sẽ bỏ qua bước Init, vì AWS đã:
    • Chạy sẵn Lambda function khi bạn publish version mới.
    • Chụp snapshot trạng thái (bao gồm memory, disk).
    • Khi invoke lần sau → dùng snapshot này để tạo container → bắt đầu chạy ngay (bỏ qua Init phase).

So sánh có / không có SnapStart

SnapStart EnabledSnapStart Disabled
Function pre-initializedFunction cần Init thủ công
Gọi Lambda → Invoke → ShutdownGọi Lambda → Init → Invoke → Shutdown
Giảm cold start đáng kểCold start lâu, đặc biệt với Java

Use case

  • Lambda viết bằng Java (11+) – vốn bị cold start delay cao.
  • Các ứng dụng yêu cầu phản hồi nhanh (low latency) sau deploy.
  • Không có side effects trong Init phase (vì snapshot chỉ được chụp 1 lần khi publish).
Bạn thấy bài này thế nào?