Xây dựng ứng dụng chuyên sâu về bộ nhớ với AWS Lambda Managed Instances

Tác giả: Guy Haddad và Mythili Annamalai Sekar
Ngày phát hành: 10 APR 2026
Chuyên mục: Advanced (300), Amazon Simple Storage Service (S3), AWS Lambda, Compute, Customer Solutions, Technical How-to

Việc xây dựng các ứng dụng chuyên sâu về bộ nhớ với AWS Lambda giờ đây đã dễ dàng hơn. AWS Lambda Managed Instances cung cấp cho bạn tới 32 GB bộ nhớ—gấp 3 lần so với AWS Lambda tiêu chuẩn—trong khi vẫn duy trì trải nghiệm serverless mà bạn đã quen thuộc. Các ứng dụng hiện đại ngày càng yêu cầu tài nguyên bộ nhớ đáng kể để xử lý các tập dữ liệu lớn, thực hiện phân tích phức tạp và cung cấp thông tin chi tiết theo thời gian thực cho các trường hợp sử dụng như phân tích trong bộ nhớ (in-memory analytics), suy luận mô hình Machine Learning (ML) và tìm kiếm ngữ nghĩa theo thời gian thực. AWS Lambda Managed Instances mang đến cho bạn một mô hình lập trình và trải nghiệm serverless quen thuộc kết hợp với sự linh hoạt trong việc lựa chọn các loại instance Amazon EC2 cơ bản và cung cấp cho nhà phát triển quyền truy cập vào các cấu hình bộ nhớ lớn.

Trong bài đăng này, bạn sẽ thấy cách AWS Lambda Managed Instances cho phép các khối lượng công việc chuyên sâu về bộ nhớ mà trước đây rất khó chạy trong môi trường serverless, sử dụng một ứng dụng phân tích khách hàng được hỗ trợ bởi AI làm ví dụ thực tế. Bạn sẽ thấy mức tiết kiệm chi phí lên tới 33% so với Lambda tiêu chuẩn cho các khối lượng công việc có thể dự đoán được, đồng thời loại bỏ chi phí vận hành khi quản lý các instance EC2.

Tìm hiểu về AWS Lambda Managed Instances

AWS Lambda Managed Instances chạy các hàm AWS Lambda của bạn trên các loại instance Amazon EC2 mà bạn chọn trong tài khoản của mình, bao gồm Graviton4 và các loại instance được tối ưu hóa bộ nhớ. AWS xử lý vòng đời cơ sở hạ tầng cơ bản bao gồm cấp phép, điều chỉnh quy mô, vá lỗi và định tuyến, trong khi bạn hưởng lợi từ các lợi thế về giá của Amazon EC2 như Savings PlansReserved Instances.

Các lợi ích chính bao gồm:

  • Lựa chọn instance linh hoạt: Chọn từ các họ instance được tối ưu hóa tính toán (C), đa năng (M) và tối ưu hóa bộ nhớ (R)
  • Tỷ lệ bộ nhớ-CPU có thể cấu hình: Tối ưu hóa phân bổ tài nguyên cho khối lượng công việc của bạn
  • Nhiều lần gọi đồng thời: Một môi trường thực thi xử lý nhiều lần gọi đồng thời, cải thiện việc sử dụng cho các ứng dụng chuyên sâu về I/O
  • Điều chỉnh quy mô động: Các instance điều chỉnh quy mô dựa trên mức sử dụng CPU mà không có cold start

AWS Lambda Managed Instances phù hợp nhất cho các khối lượng công việc có khối lượng lớn, có thể dự đoán được, hưởng lợi từ dung lượng tính toán bền vững và cấu hình bộ nhớ lớn hơn.

Các khối lượng công việc chuyên sâu về bộ nhớ hoạt động tốt nhất với AWS Lambda Managed Instances

Bài viết này tập trung vào một trong những khả năng mạnh mẽ nhất của AWS Lambda Managed Instances: chạy các khối lượng công việc chuyên sâu về bộ nhớ yêu cầu nhiều hơn 10 GB bộ nhớ và giới hạn ZIP 250MB của AWS Lambda tiêu chuẩn. Dưới đây là các trường hợp sử dụng mà AWS Lambda Managed Instances hỗ trợ:

  • Phân tích trong bộ nhớ (In-Memory Analytics) — Tải hàng gigabyte dữ liệu có cấu trúc vào bộ nhớ khi khởi tạo và phục vụ các truy vấn phân tích dưới mili giây trên hàng nghìn lần gọi
  • Suy luận mô hình ML (ML Model Inference) — Giữ các trọng số mô hình lớn nằm trong bộ nhớ trên các lần gọi để suy luận nhất quán, độ trễ thấp mà không cần một dedicated endpoint.
  • Tìm kiếm ngữ nghĩa theo thời gian thực (Real-Time Semantic Search) — Xây dựng tìm kiếm tương tự vector trên các chỉ mục nhúng lớn được giữ hoàn toàn trong bộ nhớ, cho phép các truy vấn ngôn ngữ tự nhiên trên hàng triệu bản ghi mà không cần một vector database bên ngoài.
  • Xử lý đồ thị (Graph Processing) — Giữ các cấu trúc đồ thị lớn trong bộ nhớ cho các thuật toán duyệt yêu cầu toàn bộ đồ thị có thể truy cập cùng một lúc.
  • Tính toán khoa học & số (Scientific & Numerical Computing) — Chạy các mô phỏng, phương pháp Monte Carlo và các phép toán ma trận lớn yêu cầu bộ nhớ làm việc đáng kể và hưởng lợi từ các họ instance Amazon EC2 được tối ưu hóa bộ nhớ.
  • Tạo báo cáo quy mô lớn (Large-Scale Report Generation) — Tổng hợp và chuyển đổi các tập dữ liệu đa gigabyte trong bộ nhớ để tạo các báo cáo hoặc bảng điều khiển phức tạp theo yêu cầu, mà không cần dàn dựng dữ liệu thông qua bộ nhớ trung gian.

Trường hợp sử dụng: Phân tích khách hàng được hỗ trợ bởi AI với AWS Lambda Managed Instances

Để chứng minh sức mạnh của AWS Lambda Managed Instances cho các ứng dụng chuyên sâu về bộ nhớ, chúng tôi đã xây dựng một ứng dụng Phân tích khách hàng được hỗ trợ bởi AI kết hợp xử lý dữ liệu trong bộ nhớ với tìm kiếm ngữ nghĩa dựa trên ML. Ứng dụng tải vào bộ nhớ 1 triệu bản ghi hành vi khách hàng (phiên, mua hàng, mẫu duyệt web) từ một tệp Parquet trong S3 vào một Pandas DataFrame và một embeddings cache tiêu thụ 200MB, sau đó phản hồi các truy vấn phân tích:

  1. Phân tích khách hàng (Customer Analysis) — Đi sâu vào hành vi khách hàng cá nhân: điểm tương tác, tỷ lệ chuyển đổi, mẫu mua hàng và các phân khúc khách hàng được tạo bởi AI
  2. Tìm kiếm ngữ nghĩa (Semantic Search) — Các truy vấn ngôn ngữ tự nhiên được hỗ trợ bởi FastEmbed (sentence-transformers/all-MiniLM-L6-v2) tìm kiếm các khách hàng tương tự bằng cách sử dụng vector similarity
  3. Phân tích nhóm (Cohort Analysis) — Phân khúc theo thời gian thực theo thiết bị, quốc gia, nhóm tuổi với các số liệu tổng hợp

Tổng quan kiến trúc

Ứng dụng phân tích khách hàng được hỗ trợ bởi AI của chúng tôi chứng minh điều này trong thực tế: 1 triệu bản ghi trong bộ nhớ (200MB), một mô hình sentence transformer nhỏ gọn cho tìm kiếm ngữ nghĩa, hiệu suất truy vấn dưới giây và không cần quản lý cơ sở hạ tầng. Giải pháp sử dụng kiến trúc serverless đơn giản:

  • Dữ liệu giao dịch khách hàng (định dạng Parquet) được lưu trữ trong Amazon S3
  • Amazon Cognito User Pool xác thực người dùng và cấp JWT tokens để truy cập API
  • Amazon API Gateway định tuyến các yêu cầu với xác thực Cognito authorizer, giới hạn tốc độ (5 yêu cầu/giây, burst 10), X-Ray tracing và ghi nhật ký truy cập
  • Hàm AWS Lambda với AWS Lambda Managed Instances tải toàn bộ tập dữ liệu (200MB) và mô hình all-MiniLM-L6-v2 (900MB) vào bộ nhớ trong quá trình khởi tạo đồng thời thực hiện tạo embeddings cache theo luồng. Bước này có thể tiêu thụ khoảng 14GB bộ nhớ được cấp phát, vượt quá giới hạn 10 GB của AWS Lambda tiêu chuẩn
  • Các truy vấn phân tích thực thi trên dữ liệu trong bộ nhớ bằng cách sử dụng mô hình
  • Kết quả được trả về trong mili giây để phân tích tương tác
Architecture diagram

Triển khai ứng dụng

Các bước dưới đây sẽ hướng dẫn bạn triển khai ứng dụng lên AWS bằng cách sử dụng AWS Serverless Application Model (SAM). Quá trình triển khai đóng gói mã hàm Lambda của bạn, tải các artifact lên Amazon S3 và cấp phép tất cả các tài nguyên AWS cần thiết bao gồm các hàm Lambda, IAM roles và bất kỳ cấu hình mạng VPC nào thông qua AWS CloudFormation.

Điều kiện tiên quyết

Đảm bảo bạn đã cài đặt các công cụ sau trên máy cục bộ:

  • AWS CLI được cấu hình với thông tin xác thực
  • SAM CLI đã được cài đặt
  • Python 3.13+ đã được cài đặt cục bộ
  • Docker hoặc Finch (bắt buộc cho các bản dựng container)
  • Tài khoản AWS với các quyền thích hợp
  • Một VPC với ít nhất 2 subnet (trên các Availability Zone khác nhau) và một security group — bắt buộc cho Capacity Provider của Lambda Managed Instances
  • Các Region được hỗ trợ: Kiểm tra AWS Capabilities by Region để biết các Region được hỗ trợ

Bắt đầu

Mã nguồn hoàn chỉnh cho ứng dụng này có sẵn trong kho lưu trữ GitHub của chúng tôi. Để tự triển khai, hãy làm theo các bước dưới đây và tham khảo hướng dẫn triển khai đầy đủ được lưu trữ trên GitHub.

1. Clone repository

git clone https://github.com/aws-samples/sample-lambda-managed-instances-analytics.git

2. Điều hướng đến thư mục dự án

cd sample-lambda-managed-instances-analytics
chmod +x setup-data.sh deploy-lambda.sh

3. Tạo dữ liệu mẫu và tải lên S3

./setup-data.sh

Script này sẽ tạo một S3 bucket (nếu cần), tạo 1 triệu hàng dữ liệu mẫu và tải dữ liệu lên S3.

4. Xây dựng và triển khai hàm Lambda

./deploy-lambda.sh

Script này sẽ xây dựng container image với FastEmbed, đẩy nó lên ECR và triển khai hàm Lambda cùng với Capacity Provider, API Gateway và Cognito User Pool. Sau khi triển khai, nó tự động tạo cấu hình xác thực UI và nhắc bạn tạo một người dùng thử nghiệm.

SAM template
Capacity provider configuration

Chạy ứng dụng

1. Khởi động giao diện người dùng (UI)

Ứng dụng bao gồm một UI dựa trên HTML đơn giản mà qua đó bạn có thể kiểm tra hàm AWS Lambda bằng cách sử dụng Amazon API Gateway:

cd ui && python3 -m http.server 8000

2. Mở trình duyệt của bạn tại http://localhost:8000 và nhấp vào ‘Sign In’ để xác thực qua Cognito bằng tên người dùng/mật khẩu mà bạn đã tạo trong quá trình triển khai.

Starting the UI

3. Nhập URL điểm cuối API của bạn. Kiểm tra kết nối và nhấp vào System Info.

Testing the connection

Kiểm tra ứng dụng

a. Phân tích khách hàng — Nhập một hoặc nhiều User IDs để biết thêm thông tin về hành vi khách hàng: điểm tương tác, tỷ lệ chuyển đổi, mẫu mua hàng và các phân khúc khách hàng được tạo bởi AI

Running customer analysis

b. Tìm kiếm ngữ nghĩa – Nhập các truy vấn ngôn ngữ tự nhiên như “list high value customers from USA” vào Semantic Search và xác minh kết quả. Lưu ý rằng phản hồi rất nhanh vì dữ liệu phân tích và FastEmbed models được tải vào bộ nhớ trong giai đoạn init

Running semantic search

c. Phân tích nhóm (Cohort Analysis) — Nhập dữ liệu truy vấn để nhận phân khúc theo thời gian thực theo thiết bị, quốc gia, nhóm tuổi với các số liệu tổng hợp

Running cohort analysis

Khả năng quan sát

AWS Lambda Managed Instances tự động xuất bản các số liệu lên Amazon CloudWatch, cung cấp cho bạn khả năng hiển thị về hiệu suất hàm và mức sử dụng dung lượng. Theo dõi InitDuration để theo dõi thời gian tải tập dữ liệu và mô hình khi khởi động, MaxMemoryUsed để xác nhận dữ liệu của bạn nằm trong bộ nhớ đã cấu hình và ProvisionedConcurrencySpilloverInvocations để phát hiện khi dung lượng AWS Lambda Managed Instances bị cạn kiệt.

Bật AWS Lambda Insights để có các số liệu nâng cao cho mỗi lần gọi bao gồm thời gian CPU và mức sử dụng bộ nhớ theo thời gian. Sử dụng Amazon CloudWatch Log Insights để truy vấn các mục nhật ký INIT_START, INIT_END và REPORT để biết chi tiết khởi tạo và bộ nhớ cho mỗi lần gọi.

AWS Lambda Insights

Điều gì làm cho điều này tốt hơn với AWS Lambda Managed Instances

Nếu không có AWS Lambda Managed Instances, việc xây dựng cùng một ứng dụng này sẽ yêu cầu một trong các lựa chọn thay thế sau:

  • Tùy chọn A: EC2 với tính năng tự động điều chỉnh quy mô (auto-scaling) — Kiểm soát hoàn toàn, trách nhiệm hoàn toàn: vá lỗi, chính sách điều chỉnh quy mô, cân bằng tải và các pipeline triển khai — tất cả đều do bạn.
  • Tùy chọn B: Thiết kế lại cho Lambda tiêu chuẩn — Thay thế dữ liệu trong bộ nhớ bằng một cơ sở dữ liệu bên ngoài và thay thế ML model bằng một endpoint Amazon SageMaker. Độ trễ cao hơn, chi phí cao hơn, phức tạp hơn.

Với AWS Lambda Managed Instances, bạn viết một hàm AWS Lambda duy nhất, định nghĩa một Capacity Provider và triển khai bằng SAM. AWS Lambda xử lý các instance Amazon EC2, điều chỉnh quy mô và vòng đời, cung cấp cho bạn bộ nhớ bạn cần với sự đơn giản trong vận hành mà bạn mong muốn. Phương pháp trong bộ nhớ loại bỏ độ trễ mạng và I/O đĩa, mang lại thời gian phản hồi nhất quán dưới 200ms cho các phân tích phức tạp.

Các yếu tố chi phí

AWS Lambda Managed Instances sử dụng mô hình định giá dựa trên Amazon EC2 với một khoản phí quản lý. Đối với các khối lượng công việc có thể dự đoán được, bạn có thể tận dụng Amazon EC2 Savings Plans hoặc Reserved Instances để giảm đáng kể chi phí.

Ví dụ so sánh chi phí (us-east-1, 32 GB bộ nhớ, 1 triệu lần gọi/tháng):

  • AWS Lambda (tiêu chuẩn): ~$267/tháng (giá on-demand)
  • AWS Lambda Managed Instances: ~$180/tháng (với 1 năm Compute Savings Plan)
  • Tiết kiệm: Giảm 33%

Lợi ích về chi phí tăng lên với các cấu hình bộ nhớ cao hơn và các khối lượng công việc bền vững có thể tận dụng các chiết khấu giá của Amazon EC2.

Các phương pháp hay nhất

Dựa trên kinh nghiệm xây dựng giải pháp này, đây là những khuyến nghị chính:

  • Kích thước bộ nhớ: Bắt đầu với kích thước tập dữ liệu của bạn cộng thêm 50% chi phí cho việc xử lý. Theo dõi các số liệu Amazon CloudWatch để tối ưu hóa.
  • Chiến lược khởi tạo: Tải các tập dữ liệu lớn trong giai đoạn init để phân bổ chi phí trên nhiều lần gọi.
  • Cấu hình đồng thời: Đặt PerExecutionEnvironmentMaxConcurrency dựa trên đặc điểm I/O của khối lượng công việc của bạn. Các giá trị cao hơn hoạt động tốt cho các phân tích bị giới hạn bởi I/O.
  • Định dạng dữ liệu: Sử dụng các định dạng cột như Parquet để sử dụng bộ nhớ hiệu quả và tải nhanh.
  • Giám sát: Theo dõi thời gian khởi tạo, mức sử dụng bộ nhớ và độ trễ gọi trong Amazon CloudWatch để xác định các cơ hội tối ưu hóa.

Dọn dẹp

Khi bạn đã khám phá xong giải pháp, việc xóa tất cả các tài nguyên đã cấp phép là một thực hành tốt để tránh các khoản phí liên tục. Để biết các lệnh dọn dẹp đầy đủ và các bước chính xác, hãy tham khảo tệp README.md của dự án trong kho lưu trữ GitHub.

Kết luận

AWS Lambda Managed Instances mở ra một loại ứng dụng serverless mới hỗ trợ các gói AWS Lambda layer lớn hơn và nhiều bộ nhớ hơn. Các khối lượng công việc chuyên sâu về bộ nhớ — phân tích trong bộ nhớ, suy luận ML, xử lý đồ thị, tính toán khoa học — giờ đây có thể chạy với sự đơn giản của AWS Lambda và tài nguyên của Amazon EC2. Ví dụ về phân tích khách hàng chứng minh cách xử lý trong bộ nhớ với AWS Lambda Managed Instances mang lại cải thiện hiệu suất so với các truy vấn cơ sở dữ liệu truyền thống trong khi vẫn duy trì các lợi ích serverless như tự động điều chỉnh quy mô và định giá trả theo mức sử dụng.

Sẵn sàng bắt đầu? Khám phá tài liệu AWS Lambda Managed Instances và thử xây dựng ứng dụng serverless chuyên sâu về bộ nhớ của riêng bạn. Bạn có thể tìm thấy mã hoàn chỉnh cho ví dụ này trên GitHub.

TAGS: Amazon S3, AWS Compute, AWS Lambda