VPC Fundamentals
เครือข่ายพื้นฐานบน AWS สำหรับ DVA-C02 ตามคอร์ส Stephane Maarek
01Amazon VPC และ CIDR Range
Amazon VPC (Virtual Private Cloud) คือ virtual network ส่วนตัวของคุณบน AWS ที่ทำงานอยู่ภายใน Region เดียว เปรียบเสมือน data center เสมือนที่คุณควบคุมเองได้เต็มที่ ทั้งการแบ่ง subnet, การกำหนด routing และการควบคุม security คุณ launch resources เช่น EC2 instances ลงไปภายใน VPC
เมื่อสร้าง VPC คุณต้องกำหนด CIDR range (Classless Inter-Domain Routing) ซึ่งเป็นช่วงของ private IP addresses ที่ VPC จะใช้ เช่น 10.0.0.0/16
- VPC CIDR block ขนาดได้ตั้งแต่ /16 (ใหญ่สุด = 65,536 IPs) ถึง /28 (เล็กสุด = 16 IPs)
- ควรใช้ช่วง private IP ตาม RFC 1918:
10.0.0.0/8,172.16.0.0/12,192.168.0.0/16 - VPC ผูกกับ Region เดียว — ครอบหลาย Region ไม่ได้
- CIDR ของ VPC ห้ามทับซ้อน (overlap) กับ network อื่นที่จะเชื่อมต่อ เช่น VPC ที่ peering หรือ on-premises
02Subnets: Public vs Private
Subnet คือการแบ่ง CIDR ของ VPC ออกเป็นช่วงย่อยๆ จุดสำคัญที่ต้องจำคือ แต่ละ subnet ผูกกับ Availability Zone (AZ) เดียวเท่านั้น ไม่สามารถข้าม AZ ได้ การกระจาย subnet หลาย AZ จึงเป็นพื้นฐานของ high availability
/24 (256 IPs) ใช้งานจริงได้แค่ 251 IPs03Internet Gateway, NAT Gateway และ NAT Instance
องค์ประกอบเหล่านี้ควบคุมการเข้าออก internet ของ resources ใน VPC
Internet Gateway (IGW)
- เป็น component ที่ทำให้ resources ใน VPC เชื่อมต่อ internet ได้
- แนบกับ VPC (หนึ่ง IGW ต่อหนึ่ง VPC) และ horizontally scaled, redundant, highly available โดย AWS
- ทำหน้าที่ทั้ง routing และ NAT ให้ instance ที่มี public IP
- ใช้คู่กับ route table ของ public subnet (route
0.0.0.0/0-> IGW)
NAT Gateway vs NAT Instance
ทั้งคู่ให้ instance ใน private subnet ออก internet ได้ทางเดียว (outbound) เพื่อดาวน์โหลด patches/updates โดย internet จะ initiate connection เข้ามาไม่ได้ ต้องวางใน public subnet
| คุณสมบัติ | NAT Gateway | NAT Instance |
|---|---|---|
| ประเภท | Managed โดย AWS | EC2 instance ที่ manage เอง |
| High Availability | Redundant ภายใน AZ เดียว (ต้องสร้างหลายตัวข้าม AZ) | ต้อง setup HA เอง |
| Bandwidth | Scale อัตโนมัติถึง 100 Gbps | ขึ้นกับ instance type |
| Security Group | ใช้ไม่ได้ | ใช้ได้ |
| Bastion host | ทำไม่ได้ | ทำได้ |
| Maintenance | ไม่ต้อง | ต้อง patch เอง |
04NACL vs Security Groups
ทั้งสองเป็น firewall แต่ทำงานคนละระดับและคนละพฤติกรรม เป็นหัวข้อที่ออกสอบบ่อยมาก
| คุณสมบัติ | Security Group | Network ACL (NACL) |
|---|---|---|
| ระดับที่ทำงาน | ENI / instance | Subnet |
| State | Stateful (return traffic auto-allow) | Stateless (ต้องกำหนด inbound+outbound แยก) |
| Rule type | Allow เท่านั้น | Allow และ Deny |
| การประเมิน rule | ประเมินทุก rule รวมกัน | ตาม rule number น้อย->มาก หยุดที่ rule แรกที่ match |
| จำนวนต่อ resource | หนึ่ง instance มีได้หลาย SG | หนึ่ง subnet มีได้ NACL เดียว |
| Default | Deny inbound, Allow outbound | Default NACL = allow ทั้งหมด; custom NACL = deny ทั้งหมด |
ลำดับการประเมิน: incoming traffic ผ่าน NACL ของ subnet ก่อน แล้วจึงถึง Security Group ของ instance
05VPC Flow Logs
VPC Flow Logs จับ metadata ของ IP traffic (ไม่ใช่ payload เนื้อหาจริง) ที่เข้า-ออก network interfaces ใช้สำหรับ monitoring, troubleshooting connectivity และ security analysis
- สร้างได้ที่ระดับ VPC, Subnet หรือ ENI
- เก็บข้อมูล: source/destination IP, source/destination port, protocol, จำนวน packets/bytes และ action (ACCEPT / REJECT)
- ส่ง log ไปยัง Amazon S3, CloudWatch Logs หรือ Kinesis Data Firehose
- จับ traffic ของ AWS managed services ได้ด้วย เช่น ELB, RDS, ElastiCache, NAT Gateway
06VPC Peering
VPC Peering เชื่อมต่อ VPC สองตัวเข้าด้วยกันผ่าน AWS network ให้สื่อสารกันได้เหมือนอยู่ใน network เดียว (ใช้ private IP) สามารถ peer ข้าม Region และข้าม Account ได้
- CIDR ห้ามทับซ้อน (must not overlap) มิฉะนั้น routing จะกำกวม
- Non-transitive: ถ้า A peer B และ B peer C, A กับ C สื่อสารกันไม่ได้ ต้องสร้าง peering A-C โดยตรง
- ต้อง update route tables ทั้งสองฝั่งเพื่อให้รู้เส้นทางไปยัง CIDR ของอีกฝั่ง
- สามารถอ้างอิง Security Group ของ peer VPC ได้ (ใน Region เดียวกัน)
07VPC Endpoints (Gateway vs Interface/PrivateLink)
VPC Endpoints ให้ resources ใน VPC เข้าถึง AWS services โดยไม่ต้องออก internet (ไม่ผ่าน IGW/NAT) traffic อยู่ภายใน AWS network ทั้งหมด เพิ่มความปลอดภัยและลด latency
| คุณสมบัติ | Gateway Endpoint | Interface Endpoint |
|---|---|---|
| Services | S3, DynamoDB | ส่วนใหญ่ (รวม S3) |
| กลไก | Route table entry | ENI + private IP |
| ค่าใช้จ่าย | ฟรี | มีค่าใช้จ่าย (ชั่วโมง + GB) |
| Security Group | ไม่ใช้ | ใช้ |
| เข้าถึงจาก on-premises | ไม่ได้ | ได้ (ผ่าน DX/VPN) |
08เชื่อม On-Premises: Site-to-Site VPN และ Direct Connect
สองวิธีหลักในการเชื่อม on-premises data center กับ AWS VPC
| คุณสมบัติ | Site-to-Site VPN | Direct Connect (DX) |
|---|---|---|
| ประเภท connection | Encrypted (IPsec) ผ่าน public internet | Dedicated private physical connection |
| Encryption | Encrypted โดย default | ไม่ encrypted โดย default (เพิ่ม VPN ทับได้) |
| ระยะเวลา setup | เร็ว (ไม่กี่นาที-ชั่วโมง) | นาน (หลายสัปดาห์ ต้อง provision physical) |
| Bandwidth/Latency | แปรผันตาม internet | สม่ำเสมอ คาดเดาได้ |
| ค่าใช้จ่าย | ต่ำกว่า | สูงกว่า |
09Three-Tier Architecture
สถาปัตยกรรมมาตรฐานที่รวมแนวคิด VPC ทั้งหมดเข้าด้วยกัน แบ่งเป็น 3 ชั้นเพื่อความปลอดภัยและ scalability
- Tier 1 - Public/Web tier: public subnet วาง Elastic Load Balancer (ELB) รับ traffic จาก internet ผ่าน Route 53
- Tier 2 - Application tier: private subnet วาง EC2/Auto Scaling Group รับคำขอจาก ELB ออก internet ผ่าน NAT Gateway
- Tier 3 - Database tier: private subnet วาง RDS / ElastiCache เข้าถึงได้เฉพาะจาก application tier เท่านั้น
10VPC Cheat Sheet
สรุปสั้นๆ สำหรับทบทวนก่อนสอบ DVA-C02
- VPC = virtual network ใน Region เดียว, CIDR /16 ถึง /28
- Subnet = ผูกกับ 1 AZ, AWS reserve 5 IPs ต่อ subnet
- Public subnet = route table ชี้ไป IGW; Private subnet = ไม่มี route ตรงไป IGW
- IGW = เชื่อม internet, redundant/HA, 1 ต่อ VPC
- NAT Gateway = managed, ใน public subnet, ให้ private subnet ออก internet ทางเดียว, 1 ต่อ AZ
- NACL = subnet level, stateless, allow+deny, มี rule number
- Security Group = instance/ENI level, stateful, allow-only
- Flow Logs = metadata (ACCEPT/REJECT) -> S3 / CloudWatch Logs / Kinesis Firehose
- VPC Peering = non-transitive, CIDR ห้ามทับ, update route tables
- Gateway Endpoint = S3 & DynamoDB, ฟรี, route table
- Interface Endpoint (PrivateLink) = service อื่น, ใช้ ENI, มีค่าใช้จ่าย
- Site-to-Site VPN = encrypted ผ่าน internet, เร็ว; Direct Connect = private dedicated, latency สม่ำเสมอ
คำถามทบทวน
ทดสอบความเข้าใจหัวข้อ VPC Fundamentals
19 ข้อ · เลือกคำตอบเพื่อดูเฉลยและคำอธิบาย
1.บริษัทต้องการให้ EC2 instances ใน private subnet ดาวน์โหลด security patches จาก internet ได้ แต่ห้าม internet เริ่มต้น connection เข้ามาหา instance เหล่านี้ ควรใช้อะไร?
2.ข้อใดอธิบายความแตกต่างหลักระหว่าง Network ACL (NACL) กับ Security Group ได้ถูกต้อง?
3.แอปพลิเคชันใน private subnet ต้องอ่าน/เขียนข้อมูลกับ Amazon S3 โดยไม่ต้องการให้ traffic ออกไปผ่าน internet และไม่ต้องการเสียค่าใช้จ่ายเพิ่มสำหรับ endpoint ควรใช้อะไร?
4.VPC A (10.0.0.0/16) peering กับ VPC B (172.16.0.0/16) และ VPC B peering กับ VPC C (192.168.0.0/16) ข้อใดถูกต้องเกี่ยวกับการสื่อสารระหว่าง A และ C?
5.ทีม security ต้องการ capture ข้อมูล metadata ของ IP traffic ที่ accept และ reject ใน VPC เพื่อ troubleshoot connectivity ควรใช้ feature ใด?
6.ใน VPC Flow Logs หากเห็น record ที่ action เป็น REJECT สำหรับ inbound traffic ควรตรวจสอบอะไรก่อน?
7.องค์กรต้องการเชื่อม on-premises data center กับ AWS VPC ผ่าน connection แบบ encrypted ที่ตั้งได้รวดเร็วผ่าน public internet ควรเลือกอะไร?
8.public subnet ใน VPC แตกต่างจาก private subnet อย่างไร?
9.NACL ของ subnet มี inbound rule number 100 = ALLOW HTTP จาก 0.0.0.0/0 และ rule number 200 = DENY HTTP จาก 1.2.3.4/32 traffic จาก 1.2.3.4 จะเป็นอย่างไร?
10.ข้อใดเป็นจริงเกี่ยวกับ CIDR range ของ VPC ใน AWS?
11.แต่ละ subnet ผูกกับอะไร และ AWS reserve กี่ IP ในแต่ละ subnet?
12.NAT Gateway มีข้อได้เปรียบอะไรเหนือ NAT Instance?
13.Interface Endpoint (AWS PrivateLink) ทำงานอย่างไร?
14.ใน Three-Tier Architecture ทั่วไปบน AWS โดยปกติ tier ใดวางใน private subnet?
15.เพื่อให้ instance ใน private subnet ของ Region เดียวกันเข้าถึง DynamoDB โดยไม่ผ่าน internet และไม่มีค่าใช้จ่าย endpoint ควรกำหนดค่าอะไร?
16.ข้อใดอธิบาย Direct Connect (DX) ได้ถูกต้องที่สุด?
17.Security Group เป็น stateful หมายความว่าอย่างไร?
18.ทำไม VPC Peering สอง VPC จึงไม่สามารถมี CIDR range ที่ทับซ้อนกันได้?
19.Route table มีหน้าที่อะไรใน VPC?