AWS Lambda là gì?

AWS Lambda là một dịch vụ tính toán, giúp bạn chạy các đoạn code bằng việc sử dụng các tài nguyên của AWS mà không cần cung cấp hoặc quản lý máy chủ. Nói một cách đơn giản, AWS Lambda là một dịch vụ tính toán hướng sự kiện trong, thực thi các đoạn code khi có sự kiện xảy ra trong môi trường AWS.

Không cần lo lắng về quản lý máy chủ, bạn chỉ cần viết code và tải lên Lambda dưới dạng file ZIP hoặc hình ảnh container. AWS Lambda tự động mở rộng ứng dụng của bạn, giúp đảm bảo khả năng xử lý tải lưu lượng biến đổi.

Với phí được tính theo mili giây, bạn có thể tối ưu hóa chi phí bằng cách viết code hiệu quả. Phí tính dựa trên thời gian thực thi code và số lần code được kích hoạt. Điều này giúp bạn kiểm soát và quản lý ngân sách dự án một cách hiệu quả.

Giới hạn số lượng thực thi đồng thời của Lambda

AWS Lambda có một số giới hạn liên quan đến số lượng thực thi đồng thời và tài nguyên tính toán. Mặc dù số lượng thực thi đồng thời mặc định được giới hạn, bạn có thể yêu cầu AWS tăng giới hạn theo nhu cầu cụ thể của bạn. Tuy nhiên, cần lưu ý rằng việc yêu cầu nới lỏng giới hạn không phải lúc nào cũng được chấp nhận, và nên xem xét kiến trúc và tối ưu code của bạn trước.

Công thức tính số thực thi đồng thời của Lambda

Thực thi đồng thời = (Số lần gọi mỗi giây) x (Thời gian thực thi trung bình (giây))

Ví dụ, nếu một hàm Lambda mất trung bình 10 giây và phát hành 100 sự kiện mỗi giây, hàm Lambda sẽ phải thực hiện 1000 thực thi đồng thời và trở nên tiệm cận giới hạn.

Trong trường hợp có tải cao như nhận 1000 yêu cầu mỗi phút và mất 100 giây để hoàn thành một yêu cầu thì có khả năng cao là vượt quá 1000 thực thi đồng thời.

Khi số lượng thực thi đồng thời đạt giới hạn, các lệnh gọi tiếp theo sẽ bị giới hạn dịch vụ (throttling) và không thực hiện. Cách xử lý yêu cầu bị throttling phụ thuộc vào nguồn sự kiện của bạn.

Làm thế nào để tránh bị throttling?

Đầu tiên, kiểm tra xem lỗi throttling có phát sinh từ hàm Lambda hay không, nó có thể xảy ra khi gọi API trong quá trình gọi hàm. Sử dụng Amazon CloudWatch Logs để xác định lỗi throttling và xem liệu có dữ liệu tương ứng với Lambda Throttles Metrics hay không.

Tiếp theo, kiểm tra metrics về số lượng thực thi đồng thời của hàm và thực hiện xử lý “thử lại”. Trong trường hợp xử lý đồng bộ, khi xảy ra throttling, hàm Lambda sẽ trả về lỗi 429 “TooManyRequestsException”. Khi bạn gặp lỗi này, hãy thử lại xử lý tại nguồn gọi hàm. Trong trường hợp xử lý không đồng bộ, hệ thống sẽ tự động thử lại với khoảng thời gian tối đa là 6 giờ.

Tìm hiểu về số lượng thực thi đồng thời của Lambda

  1. Có thể xác nhận từ giá trị cài đặt của hàm Lambda.

Chọn “Function” từ Lambda và nhấp vào tab “Configuration”. Trong trường hợp cài đặt mặc định, có thể xác nhận số lượng giới hạn tối đa của các tài khoản không được đặt trước là “1.000”.

Function của Lambda
Function của Lambda

(2) Có thể xác nhận từ Service Quotas.

Mở “Service Quotas” và nhấp vào “AWS Lambda”.

Lựa chọn AWS Lambda từ Dashboard
Lựa chọn AWS Lambda từ Dashboard

Xác nhận “Concurrent executions” là “1.000”.

Tab AWS Lambda
Tab AWS Lambda

Cách đăng kí nới lỏng giới hạn trên

Từ “Service Quotas”, nhấp vào “AWS Lambda” và chọn “Concurrent executions”. Cuối cùng nhấp vào “Request Quota Increase”.

Tab AWS Lambda
Tab AWS Lambda

Nhập vào giá trị mong muốn trong mục “Change quota value” và nhấp vào “Request”.

※Có vẻ như giá trị giới hạn tối đa có thể được tăng lên hàng trăm nghìn

Bảng Request quota increase: Concurrent executions
Bảng Request quota increase: Concurrent executions

Những giới hạn khác của Lambda

Hôm nay Sunny Cloud đã giới thiệu về số lượng thực thi đồng thời của Lambda và những hạn chế không thể thay đổi. Trước khi triển khai hàm Lambda, bạn hãy kiểm tra những hạn chế cụ thể của nó.

Tổng kết

Tổng kết lại, việc hiểu và quản lý số thực thi đồng thời của Lambda là một phần quan trọng trong việc phát triển ứng dụng serverless trên AWS. Hạn chế về số lượng thực thi đồng thời có thể ảnh hưởng đến hiệu suất ứng dụng của bạn, và việc tối ưu hóa code và quản lý các sự kiện là cách để đối phó với giới hạn này. Hãy luôn kiểm tra và hiểu rõ giới hạn của Lambda trước khi triển khai ứng dụng của bạn để đảm bảo sự ổn định và hiệu quả trong việc sử dụng dịch vụ này.

Sử dụng AWS có lợi hơn nhiều so với việc kí hợp đồng trực tiếp.
Được giảm giá 3% cho chi phí sử dụng AWS và có thể thanh toán bằng hóa đơn VND.

Tham khảo: 【アップデート】AWS Lambdaで新しい「ランタイム管理設定」がGAになりました