VPC & Subnets Primer
Amazon VPC (Virtual Private Cloud) คือ private network ที่แยก (isolated) สำหรับ AWS account ของคุณ — เป็น Regional resource (อยู่ภายใน Region เดียว) ทุก resource ที่สร้าง (EC2, RDS, Lambda, ฯลฯ) จะวางอยู่ภายใน VPC
- VPC — virtual network ที่คุณกำหนด CIDR block (IP range) เช่น 10.0.0.0/16 — เป็น Regional resource
- Subnets — partition (แบ่งย่อย) ของ VPC — เป็น AZ resource (ผูกกับ Availability Zone หนึ่ง)
- Public Subnet — subnet ที่ เข้าถึงได้จาก internet (มี route ไป Internet Gateway)
- Private Subnet — subnet ที่ เข้าถึงจาก internet ไม่ได้ (ไม่มี route ตรงไป IGW)
- Route Tables — กำหนดว่า traffic จะไปที่ไหน (control access between subnets, IGW, NAT, ฯลฯ)
- แต่ละ Region มี default VPC พร้อมใช้งาน (มี public subnet ทุก AZ)
Internet Gateway & NAT Gateway
การเข้าถึง internet จาก VPC ต้องอาศัย Internet Gateway (IGW) สำหรับ public subnet และ NAT Gateway / NAT Instance สำหรับ private subnet ที่ต้องออก internet:
Internet Gateway (IGW)
Helps VPC instances connect with internet — Public Subnets ต้องมี route ไป IGW (1 VPC ต่อ 1 IGW), ทำ NAT สำหรับ instances ที่มี public IP
NAT Gateway (AWS-managed)
AWS managed service — ให้ instances ใน private subnet เข้าถึง internet ได้ (เช่น download updates) แต่ private อยู่ (internet เข้ามาไม่ได้), อยู่ใน public subnet, ต้อง allocate Elastic IP
NAT Instance (self-managed)
EC2 instance ที่ทำหน้าที่ NAT — ต้อง manage เอง (legacy), disable Source/Dest Check, ปัจจุบันแนะนำใช้ NAT Gateway แทน
- IGW ทำให้ public subnet เชื่อมต่อ internet ได้ทั้ง inbound และ outbound
- NAT Gateway / NAT Instance ทำให้ private subnet เข้าถึง internet ได้ เฉพาะ outbound โดยยังคงความเป็น private (internet initiate เข้ามาไม่ได้)
- NAT Gateway = AWS managed (high availability, scale อัตโนมัติ) | NAT Instance = self-managed
Network ACL vs Security Groups
VPC มี 2 ชั้น ของ network firewall: NACL (subnet level) และ Security Groups (ENI / EC2 instance level)
NACL (Network ACL)
Firewall ระดับ Subnet — มีทั้ง ALLOW และ DENY rules, ระบุได้แค่ IP addresses, เป็น STATELESS (return traffic ต้องเปิด rule แยก)
Security Groups (SG)
Firewall ระดับ ENI / EC2 instance — มีแค่ ALLOW rules (ไม่มี DENY), ระบุได้ทั้ง IP และ Security Group อื่น, เป็น STATEFUL (return traffic ได้ auto)
- NACL: subnet level | ALLOW + DENY | IP only | STATELESS | evaluate ตาม rule number (ต่ำก่อน)
- Security Group: ENI/EC2 level | ALLOW only | IP + SG อื่น | STATEFUL | evaluate ทุก rule รวมกัน
- Default NACL = allow ทุกอย่าง | Default SG = deny all inbound, allow all outbound
- Best practice: ใช้ทั้งคู่ — NACL เป็น first line (subnet), SG เป็น second line (instance)
VPC Flow Logs
VPC Flow Logs เก็บข้อมูล (capture) IP traffic ที่ไหลเข้า-ออกจาก network interfaces ของคุณ — ใช้สำหรับ troubleshoot connectivity issues และ monitor traffic
- Capture ได้ 3 ระดับ: VPC Flow Logs, Subnet Flow Logs, ENI (Elastic Network Interface) Flow Logs
- ช่วย monitor และ troubleshoot connectivity issues (เช่น ทำไม traffic ไม่ผ่าน, อะไรถูก deny)
- Capture network information ได้จาก AWS managed services ด้วย: ELB, ElastiCache, RDS, Aurora, ฯลฯ
- Flow Logs data สามารถ ส่งไปเก็บที่ Amazon S3 หรือ CloudWatch Logs ได้
VPC Peering
VPC Peering คือการเชื่อม 2 VPC เข้าด้วยกัน privately ผ่าน AWS network โดยตรง ทำให้ instances ใน 2 VPC คุยกันได้เหมือนอยู่ network เดียวกัน
- Connect 2 VPCs privately ผ่าน AWS network
- ทำให้ behave เหมือนอยู่ใน same network
- ต้อง NOT มี overlapping CIDR (CIDR block ของ 2 VPC ห้ามซ้อนทับกัน)
- VPC Peering connection is NOT transitive — ต้อง establish for every VPC ที่ต้องการสื่อสาร (A↔B และ B↔C ไม่ทำให้ A↔C)
- เชื่อมได้ข้าม account และข้าม Region (cross-account / cross-region peering)
- ต้อง update Route Tables ทั้งสอง VPC ให้ชี้ไปหากัน
VPC Endpoints
VPC Endpoints ให้คุณเชื่อมต่อกับ AWS services ผ่าน private network แทนที่จะต้องผ่าน public internet — ผลลัพธ์คือ enhanced security และ lower latency
VPC Endpoint Gateway
สำหรับ S3 และ DynamoDB เท่านั้น — ฟรี, กำหนดใน route table ให้ traffic ไป AWS service โดยตรงผ่าน private network
VPC Endpoint Interface
สำหรับ AWS services อื่นๆ ทั้งหมด — สร้าง ENI (Elastic Network Interface) ใน subnet ของคุณ, มีค่าใช้จ่ายรายชั่วโมง + data processing (ใช้ AWS PrivateLink)
- Gateway Endpoint → S3, DynamoDB (จำคู่นี้)
- Interface Endpoint → AWS services อื่นๆ ทั้งหมด
- Benefit: enhanced security (traffic ไม่ออก internet) + lower latency (อยู่ใน AWS network)
Site-to-Site VPN & Direct Connect
เชื่อมต่อ on-premises data center เข้ากับ AWS VPC ได้ 2 วิธีหลัก: Site-to-Site VPN (ผ่าน internet) หรือ Direct Connect (สาย physical):
Site-to-Site VPN
เชื่อม on-premises กับ AWS — connection is automatically encrypted, แต่ goes over public internet, setup เร็วภายในนาที, ราคาถูก
Direct Connect (DX)
Physical connection ระหว่าง on-premises กับ AWS — private, secure, fast, แต่ takes at least a month to establish, bandwidth สูง (1-100Gbps), ราคาแพงกว่า
- Site-to-Site VPN: ผ่าน internet (encrypted), setup เร็ว, ราคาถูก, latency ไม่แน่นอน
- ฝั่ง on-premises ต้องมี Customer Gateway (CGW)
- ฝั่ง AWS ต้องมี Virtual Private Gateway (VGW)
- Direct Connect (DX): ผ่าน dedicated physical connection — private, secure, fast, แต่ takes 1+ month
- สามารถใช้ VPN เป็น backup ของ Direct Connect ได้ (failover)
Transit Gateway
AWS Transit Gateway คือ network hub-and-spoke (star) ที่ให้ transitive peering ระหว่าง VPCs และ on-premises networks ได้ หลายพัน connections ผ่าน single gateway
- ให้ transitive peering ระหว่าง thousands of VPCs และ on-premises — แก้ปัญหาที่ VPC Peering ไม่ transitive
- Topology แบบ hub-and-spoke (star) — Transit Gateway เป็น hub กลาง, VPCs / on-prem เป็น spokes
- Single gateway เพื่อจัดการ network connectivity ทั้งหมด — ลดความซับซ้อน
- ทำงานร่วมกับ Direct Connect Gateway และ VPN connections ได้
Summary — VPC Components Recap
สรุป network components ของ VPC ที่ต้องจำให้ขึ้นใจสำหรับข้อสอบ CLF-C02 — แต่ละ component มีหน้าที่ของตัวเองและมักออกข้อสอบเป็นคู่ ๆ:
VPC
Private network ส่วนตัวระดับ Region ที่คุณกำหนด CIDR block เอง
Subnet
Partition ของ VPC ระดับ AZ — public มี route ผ่าน IGW, private ไม่มี
Internet Gateway
เชื่อม VPC กับ internet สำหรับ public subnet (1 VPC ต่อ 1 IGW)
NAT Gateway
ให้ private subnet ออก internet ได้แบบ outbound เท่านั้น (managed by AWS)
NACL
Firewall ระดับ subnet — stateless รองรับทั้ง ALLOW และ DENY (IP only)
Security Group
Firewall ระดับ ENI/EC2 — stateful มีแค่ ALLOW (รองรับ IP และ SG อื่น)
VPC Flow Logs
Capture IP traffic ระดับ VPC/Subnet/ENI ส่งไป S3 หรือ CloudWatch Logs
VPC Peering
เชื่อม 2 VPC แบบ private — CIDR ห้าม overlap และ NOT transitive
VPC Endpoints
เชื่อม AWS service แบบ private — Gateway สำหรับ S3/DynamoDB, Interface สำหรับที่เหลือ
Site-to-Site VPN
On-prem ↔ AWS ผ่าน internet (encrypted) — setup เร็ว ราคาถูก ใช้ CGW + VGW
Direct Connect
Physical connection on-prem ↔ AWS — private, fast แต่ใช้เวลา 1+ เดือนติดตั้ง
Transit Gateway
Hub-and-spoke เชื่อม VPC จำนวนมาก + on-prem แบบ transitive peering
- VPC = Regional ส่วน Subnet = AZ — จำคู่นี้ให้ขึ้นใจ
- Public subnet ต้องมี route ไป IGW เท่านั้น
- NACL เป็นชั้นแรก (subnet) ส่วน SG เป็นชั้นที่สอง (instance)
- ถ้าโจทย์ถามว่าอะไรมี DENY rules → ตอบ NACL เสมอ
- Gateway Endpoint ใช้ได้แค่กับ S3 และ DynamoDB เท่านั้น
- VPN = ผ่าน internet (เร็ว ถูก) ส่วน Direct Connect = physical (private, fast, ติดตั้งนาน)