การเข้าถึงทรัพยากรส่วนตัวใน VPC
Serverless Applications with AWS Lambda
Claudio Canales
Senior DevOps Engineer
VPC คืออะไร?
VPC คือเครือข่ายส่วนตัวของคุณใน AWS
มีทั้งพื้นที่ที่อยู่ การกำหนดเส้นทาง และการควบคุม Firewall
คุณเป็นผู้กำหนดว่าทรัพยากรจะเชื่อมต่อกันอย่างไร
การเปรียบเทียบ: หมู่บ้านแบบมีประตูรั้ว
Subnet คือโซนย่อยของเครือข่าย
Security group คือกฎควบคุมการเข้าออก
NAT คือทางออกสู่อินเทอร์เน็ตสาธารณะ
ทำไมต้องรัน Lambda ใน VPC?
เข้าถึงทรัพยากรส่วนตัว เช่น บริการภายในหรือฐานข้อมูล
Security group ควบคุมว่า Lambda เชื่อมต่อกับอะไรได้บ้าง
สิ่งที่ต้องกำหนดค่า
เลือก
subnets
เลือก
security group
Lambda จะได้รับ IP ภายใน VPC เพื่อเข้าถึง endpoint ส่วนตัว
Subnet: ตำแหน่งที่ฟังก์ชันทำงาน
Subnet กำหนดตำแหน่งของฟังก์ชันบนเครือข่าย
Private subnet ไม่มีเส้นทางตรงสู่อินเทอร์เน็ต
เลือก subnet ที่เข้าถึงสิ่งที่ handler ต้องการได้
Security group: กฎ Firewall
Security group คือกฎ Firewall สำหรับ network interface
ควบคุม Traffic ขาเข้าและขาออก
กฎขาออกมักเป็นตัวกำหนดว่า Lambda เข้าถึงฐานข้อมูลได้หรือไม่
ENI และ Cold Start
ENI = Elastic Network Interface
Lambda อาจต้องสร้างและแนบ ENI ก่อนเรียก handler
การตั้งค่าเครือข่ายเพิ่มเติมนี้อาจเพิ่ม Latency ของ Cold Start
การเปรียบเทียบ ENI: การเสียบสายเครือข่าย
ENI = การเชื่อมต่อเครือข่ายของฟังก์ชัน
สร้างขึ้นใน subnet ที่เลือก
ขั้นตอนการตั้งค่าที่มากขึ้นอาจทำให้ Cold Start ช้าลง
การเข้าถึงอินเทอร์เน็ตขาออก
Private subnet มักเข้าถึงอินเทอร์เน็ตสาธารณะไม่ได้
หากไม่มีเส้นทางขาออก การเรียก Public API จะหมดเวลา
วิธีทั่วไป: ใช้ NAT gateway
เมื่อไรจึงต้องใช้ NAT?
ต้องใช้ NAT เมื่อเรียก endpoint บนอินเทอร์เน็ตสาธารณะ
หากใช้เฉพาะทรัพยากรส่วนตัวใน VPC อาจไม่จำเป็นต้องมี NAT
อาการที่พบบ่อยเมื่อเครือข่ายมีปัญหา
Timeout บ่งชี้ว่าอาจขาด Route หรือ NAT
การปฏิเสธการเชื่อมต่อชี้ให้เห็นปัญหาที่กฎ Security group
แนวทางปฏิบัติที่ดี
ใช้ VPC เฉพาะเมื่อต้องการการเชื่อมต่อส่วนตัว
ทำให้การตั้งค่าเรียบง่ายที่สุด
ติดตาม Latency ของ Cold Start และข้อผิดพลาดในการเชื่อมต่อ
สรุปสาระสำคัญ
VPC มอบเครือข่ายส่วนตัวให้กับ Lambda
ต้องกำหนดค่า Subnet และ Security group
ENI อาจเพิ่มค่าใช้จ่ายของ Cold Start
Private subnet ต้องใช้ NAT เพื่อเข้าถึงอินเทอร์เน็ตขาออก
มาฝึกกันเถอะ!
Serverless Applications with AWS Lambda
Preparing Video For Download...