Servisphere
Biểu tượng AWS Lambda (AWS Architecture Icons)

AWS Lambda

Chạy code theo sự kiện

Chạy hàm code khi có sự kiện (request API, file mới, message…) mà không cần quản lý máy chủ; trả tiền theo số lần chạy và thời gian chạy.

  • Chi phí$ Rẻ
  • Độ khó●●●●●
  • Để không có tốn tiền?Không
  • Serverless
  • Có trong đềCLF · SAA · DVA · SOA

Phạm vi: Regional

Mở Lambda trên bản đồ →
Hình dungNhư gọi taxi: chỉ trả tiền cho quãng đường đi, không phải nuôi xe.

Lambda đứng ở đâu trong hệ thống?

Xem toàn bộ trên bản đồ →

Một ví dụ thật, từng bước

  1. Người dùng tải ảnh đại diện lên bucket S3 của ứng dụng.
  2. S3 phát sự kiện “có file mới” và gọi hàm Lambda — không có máy chủ nào ngồi chờ sẵn.
  3. Lambda khởi động, đọc ảnh, thu nhỏ còn 200×200 rồi lưu vào thư mục thumbnails/ trên S3.
  4. Hàm chạy khoảng 300 ms rồi dừng. Bạn chỉ trả tiền cho đúng 300 ms đó; cả ngày không ai tải ảnh thì gần như không tốn đồng nào.
  5. Hôm có 10.000 người tải ảnh cùng lúc, Lambda tự chạy nhiều bản song song (tới giới hạn concurrency của tài khoản), bạn không phải thêm máy.

▶ Xem kịch bản “Web serverless” chạy trên bản đồ

Khi nào nên dùng

✓ Nên dùng khi

Xử lý ngắn (≤ 15 phút), tải lúc có lúc không, kiến trúc hướng sự kiện.

✗ Không nên dùng khi

Tác vụ chạy dài hoặc chạy liên tục với tải đều → ECS/Fargate hoặc EC2.

Ví dụ hay gặp

  • Backend cho API cùng API Gateway
  • Xử lý file ngay khi được tải lên S3 (thumbnail, quét virus)
  • Tiêu thụ message từ SQS, Kinesis, DynamoDB Streams
  • Tác vụ định kỳ (cron) qua EventBridge

Lambda, Fargate hay EC2?

LambdaFargateEC2
Chạy thế nàoHàm chạy khi có sự kiệnContainer chạy liên tục hoặc theo taskMáy chủ ảo chạy liên tục
Thời gian chạy tối đa15 phút mỗi lầnKhông giới hạnKhông giới hạn
Quản lý máy chủKhôngKhôngTự lo hệ điều hành, vá lỗi, co giãn
Tính tiềnTheo số request + thời gian chạyTheo vCPU + RAM mỗi giây khi task chạyTheo thời gian instance bật, kể cả lúc rảnh
Hợp nhất vớiAPI, xử lý sự kiện, tác vụ ngắnWeb service, worker chạy lâuỨng dụng truyền thống, cần toàn quyền máy

Tốn bao nhiêu tiền?

Ví dụ3 triệu request/tháng, 512 MB, 200 ms = 300.000 GB-giây → nằm trong phần miễn phí; chỉ trả ~$0,40 cho 2 triệu request vượt mức.
  • Cách tính: Theo số request (~$0,20/1 triệu) + thời gian chạy tính theo GB-giây (~$0,0000166667/GB-giây với x86; ARM/Graviton rẻ hơn ~20%).
  • Miễn phí: Always Free: 1 triệu request + 400.000 GB-giây mỗi tháng.
⚠️ Bẫy chi phí

Gắn Lambda vào VPC mà cần Internet thì phải có NAT Gateway (đắt); ghi log quá nhiều vào CloudWatch Logs; vòng lặp đệ quy S3 → Lambda → S3; Provisioned Concurrency tính tiền cả khi rảnh.

Giá tham khảo tại us-east-1, cập nhật ngày 14/10/2026, có thể đã thay đổi. Luôn kiểm tra lại trên bảng giá của AWS. Bảng giá chính thức của AWS ↗

💡 Mẹo thi

Đề có “dưới 15 phút”, “theo sự kiện”, “không muốn quản lý server” thì nghĩ ngay tới Lambda; thấy “chạy hàng giờ” hay “chạy liên tục” thì loại Lambda. Lambda cần quyền gọi dịch vụ khác → dùng execution role, không để access key trong code.

Thử sức với câu hỏi thi thật

Đề thi chứng chỉ AWS bằng tiếng Anh nên câu hỏi giữ nguyên tiếng Anh.

1Which IAM role do you use to grant AWS Lambda permission to access a DynamoDB Stream?

  1. ADynamic role.
  2. BInvocation role.
  3. CExecution role.
  4. DEvent Source role.
Xem đáp án

Đáp án đúng: C

Execution role là role mà Lambda đảm nhận khi chạy để truy cập dịch vụ khác, gồm cả quyền đọc DynamoDB Stream. Không có “Dynamic role” hay “Event Source role”; invocation role là khái niệm cũ dành cho bên gọi Lambda.

2A company is designing an application. The application uses an AWS Lambda function to receive information through Amazon API Gateway and to store the information in an Amazon Aurora PostgreSQL database. During the proof-of-concept stage, the company has to increase the Lambda quotas significantly to handle the high volumes of data that the company needs to load into the database. A solutions architect must recommend a new design to improve scalability and minimize the configuration effort. Which solution will meet these requirements?

  1. ARefactor the Lambda function code to Apache Tomcat code that runs on Amazon EC2 instances. Connect the database by using native Java Database Connectivity (JDBC) drivers.
  2. BChange the platform from Aurora to Amazon DynamoDB. Provision a DynamoDB Accelerator (DAX) cluster. Use the DAX client SDK to point the existing DynamoDB API calls at the DAX cluster.
  3. CSet up two Lambda functions. Configure one function to receive the information. Configure the other function to load the information into the database. Integrate the Lambda functions by using Amazon Simple Notification Service (Amazon SNS).
  4. DSet up two Lambda functions. Configure one function to receive the information. Configure the other function to load the information into the database. Integrate the Lambda functions by using an Amazon Simple Queue Service (Amazon SQS) queue.
Xem đáp án

Đáp án đúng: D

Tách thành hai hàm và đặt hàng đợi SQS ở giữa: SQS giữ message an toàn, hàm ghi database lấy theo lô với tốc độ kiểm soát được nên không phải tăng quota Lambda. SNS đẩy message ngay nên không giảm tải; chuyển sang EC2 hay DynamoDB là thay đổi lớn, tốn công.

Luyện thêm hơn 700 câu trên Servisphere →

Câu hỏi thường gặp

Cold start của Lambda là gì?

Khi không có môi trường nào sẵn sàng, Lambda phải khởi tạo môi trường mới trước khi chạy code, làm request đầu chậm hơn. Có thể giảm bằng provisioned concurrency, SnapStart (với một số runtime) hoặc giảm kích thước gói code.

Lambda tính tiền thế nào?

Theo số lần gọi và thời gian chạy nhân với dung lượng bộ nhớ cấp cho hàm. Không có request thì gần như không tốn tiền. Hàm chạy liên tục với tải đều có thể đắt hơn chạy trên container hoặc EC2.

Đề thi AWS hay hỏi gì về Lambda?

Giới hạn 15 phút, cấu hình bộ nhớ (CPU tăng theo bộ nhớ), concurrency và throttling, gắn Lambda vào VPC, nguồn sự kiện (S3, SQS, API Gateway, EventBridge), xử lý lỗi bằng dead-letter queue hoặc destination, và cấp quyền qua execution role.

Dịch vụ liên quan

Mở Lambda trên bản đồ →