Truy cập tài nguyên riêng trong VPC

Ứng dụng Serverless với AWS Lambda

Claudio Canales

Senior DevOps Engineer

VPC là gì?

  • VPC là mạng riêng của bạn trong AWS.
  • Cung cấp không gian địa chỉ, định tuyến và kiểm soát tường lửa.
  • Bạn quyết định cách tài nguyên kết nối.

Tổng quan thành phần VPC

Ứng dụng Serverless với AWS Lambda

Ví von đơn giản: khu dân cư có cổng

  • Subnet là khu vực lân cận.
  • Security group là quy tắc cổng.
  • NAT là lối ra chung ra internet công cộng.

Ví von khu dân cư có cổng

Ứng dụng Serverless với AWS Lambda

Tại sao chạy Lambda trong VPC?

  • Truy cập tài nguyên riêng như dịch vụ nội bộ hoặc cơ sở dữ liệu.
  • Security group kiểm soát Lambda được kết nối tới đâu.

Lambda truy cập riêng qua VPC

Ứng dụng Serverless với AWS Lambda

Những gì cần cấu hình

  • Chọn subnet.
  • Chọn security group.
  • Lambda nhận IP trong VPC để truy cập endpoint riêng.

Trường nhập cấu hình VPC và tác động

Ứng dụng Serverless với AWS Lambda

Subnet: nơi hàm chạy

  • Subnet quyết định vị trí hàm trong mạng.
  • Subnet riêng không có tuyến internet trực tiếp.
  • Chọn subnet có thể tới tài nguyên handler cần.

Tác động của chọn subnet

Ứng dụng Serverless với AWS Lambda

Security group: quy tắc tường lửa

  • Security group là quy tắc tường lửa cho giao diện mạng.
  • Kiểm soát lưu lượng vào và ra.
  • Quy tắc outbound thường quyết định Lambda có tới DB được không.

Ví von bảo vệ cửa của security group

Ứng dụng Serverless với AWS Lambda

ENI và cold start

  • ENI = Elastic Network Interface.
  • Lambda có thể cần tạo và gắn ENI trước khi gọi handler.
  • Thiết lập mạng thêm có thể tăng độ trễ cold start.

Trình tự cold start với ENI

Ứng dụng Serverless với AWS Lambda

Ví von ENI: cắm dây mạng

  • ENI = kết nối mạng cho hàm của bạn.
  • Được tạo trong subnet đã chọn.
  • Nhiều bước thiết lập hơn có thể làm cold start chậm hơn.

Ví von cắm cáp mạng cho ENI

Ứng dụng Serverless với AWS Lambda

Truy cập internet outbound

  • Subnet riêng thường không ra internet công cộng.
  • Thiếu tuyến outbound sẽ khiến gọi API công khai bị timeout.
  • Cách thường dùng: NAT gateway.

Luồng outbound qua NAT gateway

Ứng dụng Serverless với AWS Lambda

Khi nào cần NAT?

  • Cần NAT khi gọi endpoint trên internet công cộng.
  • Có thể không cần NAT nếu chỉ dùng tài nguyên VPC riêng.

Sơ đồ quyết định cần NAT

Ứng dụng Serverless với AWS Lambda

Triệu chứng thường gặp khi cấu hình mạng sai

  • Timeout gợi ý thiếu route hoặc NAT.
  • Bị từ chối kết nối thường do quy tắc security group.

Danh sách triệu chứng mạng

Ứng dụng Serverless với AWS Lambda

Thực tiễn tốt

  • Chỉ dùng VPC cho kết nối riêng.
  • Giữ cấu hình tối giản.
  • Theo dõi độ trễ cold start và lỗi kết nối.

Thực tiễn tốt cho VPC

Ứng dụng Serverless với AWS Lambda

Điểm chính

  • VPC cung cấp mạng riêng cho Lambda.
  • Bạn cấu hình subnet và security group.
  • ENI có thể thêm chi phí cold start.
  • Subnet riêng cần NAT để truy cập internet outbound.

Đánh đổi kết nối VPC

Ứng dụng Serverless với AWS Lambda

Ayo berlatih!

Ứng dụng Serverless với AWS Lambda

Preparing Video For Download...