Lesson 2Routing

Subnets and Routing

Subnet และ Route Table เป็นตัวกำหนดว่า Resource อยู่ใน network zone ใด และ traffic ออกจาก subnet ไปที่ไหน

Subnet truth Subnet type มาจาก route table ชื่อ subnet ไม่สำคัญเท่า route: IGW route คือ public, NAT route คือ private outbound
AZ boundary หนึ่ง subnet อยู่ได้แค่ AZ เดียว Multi-AZ design ต้องสร้าง subnet แยกต่อ AZ สำหรับแต่ละ tier
Route choice Longest prefix match ตัดสิน path Route ที่เจาะจงกว่า เช่น VPC local route จะชนะ default route 0.0.0.0/0

Subnet basics

Subnet คือช่วง IP ภายใน VPC และต้องอยู่ใน Availability Zone เดียวเท่านั้น การกระจาย subnet หลาย AZ ช่วยลดความเสี่ยงจาก AZ failure และเป็นพื้นฐานของ Load Balancer, Auto Scaling และ Multi-AZ database

Subnet types

TypeRoute behaviorเหมาะกับ
Public subnetมี route ไป Internet GatewayALB, NAT Gateway, bastion pattern บางกรณี
Private subnetไม่มี direct route ไป IGW แต่อาจออกผ่าน NAT GatewayApplication server, ECS task, internal service
Isolated subnetไม่มี route ออกนอก VPCDatabase หรือ workload ที่คุยเฉพาะภายใน
VPN-only subnetroute ไป virtual private gateway หรือ transit pathHybrid network

Route Table

Route Table มีรายการ route ที่ประกอบด้วย Destination และ Target เช่น 0.0.0.0/0 -> igw-... สำหรับ public subnet หรือ 0.0.0.0/0 -> nat-... สำหรับ private subnet ที่ต้องออก Internet

Public route table
10.0.0.0/16  -> local
0.0.0.0/0    -> internet-gateway

Private route table
10.0.0.0/16  -> local
0.0.0.0/0    -> nat-gateway

Longest prefix match

ถ้ามีหลาย route ที่ match destination เดียวกัน route ที่เจาะจงที่สุดจะถูกเลือกก่อน เช่น 10.0.0.0/16 เจาะจงกว่า 0.0.0.0/0 ดังนั้น traffic ภายใน VPC จะใช้ local route ไม่ออก Internet

Common mistakes

  • คิดว่า subnet เป็น public เพราะตั้งชื่อว่า public แต่ route table ไม่มี IGW route
  • ลืม associate subnet กับ route table ที่ถูกต้อง
  • ให้ private subnet ใช้ NAT Gateway ใน AZ อื่นโดยไม่เข้าใจ availability และ data processing path
  • ลบหรือแก้ main route table โดยไม่รู้ว่า subnet ใดใช้ default association อยู่

Review questions

Before next lesson
  1. อ่าน route table แล้วบอกได้ว่า subnet เป็น public, private หรือ isolated
  2. รู้ว่าต้อง associate subnet กับ route table ที่ถูกต้อง
  3. อธิบาย default route และ longest prefix match ได้
  1. Subnet หนึ่งสามารถข้ามหลาย Availability Zones ได้หรือไม่?
  2. Public subnet ถูกกำหนดจากชื่อหรือ route?
  3. Route 0.0.0.0/0 มีความหมายว่าอะไร?