Route 53
เจาะลึก DNS, Hosted Zones, Records, Routing Policies และ Health Checks สำหรับสอบ DVA-C02
01DNS Fundamentals (พื้นฐาน DNS)
DNS (Domain Name System) คือระบบที่แปลง human-friendly hostnames (เช่น www.google.com) ไปเป็น machine IP addresses (เช่น 172.217.18.36) เปรียบเสมือนสมุดโทรศัพท์ของอินเทอร์เน็ต DNS ใช้ hierarchical naming structure ที่เริ่มจาก root ลงมา
ส่วนประกอบของ DNS
- Domain Registrar - ผู้รับจดทะเบียน domain เช่น Amazon Route 53, GoDaddy
- DNS Records - เช่น A, AAAA, CNAME, NS ใช้กำหนดว่า domain resolve ไปที่ใด
- Zone File - ไฟล์ที่เก็บ DNS records ทั้งหมด
- Name Server (NS) - server ที่ทำหน้าที่ resolve DNS queries (Authoritative หรือ Non-Authoritative)
- TLD (Top Level Domain) - ส่วนขวาสุด เช่น .com, .org, .gov, .in
- SLD (Second Level Domain) - เช่น amazon.com, google.com
http://api.www.example.com.
| | | | |
sub sub SLD TLD root (trailing dot)
FQDN = api.www.example.com.
TLD = .com
SLD = example.com
Subdomain = www, apiกระบวนการ resolve: Web Browser ถาม Local DNS Server (มักจัดการโดย ISP/บริษัท) ซึ่งจะไปถาม Root DNS Server (ICANN) > TLD DNS Server (IANA) > SLD DNS Server (Domain Registrar) จนได้ IP address กลับมาแล้ว cache ไว้ตาม TTL
02Amazon Route 53 Overview
Amazon Route 53 เป็น highly available, scalable, fully managed และ Authoritative DNS (ลูกค้าสามารถ update DNS records ได้เอง) นอกจากนี้ยังเป็น Domain Registrar ด้วย ชื่อ 53 มาจาก port มาตรฐานของ DNS
- ความสามารถในการ check health ของ resources ผ่าน Health Checks
- เป็น AWS service เดียวที่ให้ 100% availability SLA
- สามารถใช้เป็นได้ทั้ง DNS service และ Domain Registrar
03Hosted Zones (Public vs Private)
Hosted Zone คือ container ที่เก็บ records ซึ่งกำหนดว่าจะ route traffic ไปยัง domain และ subdomains อย่างไร มี 2 ประเภท
04DNS Record Types
แต่ละ record มีองค์ประกอบ: Domain/subdomain name, Record Type, Value, Routing Policy, และ TTL Route 53 รองรับ record types หลายแบบ แต่ที่ออกสอบหลักคือ A, AAAA, CNAME, NS
- A record - map hostname ไปยัง IPv4 address
- AAAA record - map hostname ไปยัง IPv6 address
- CNAME record - map hostname ไปยัง hostname อื่น (target ต้องเป็น A หรือ AAAA) ใช้กับ root domain ไม่ได้
- NS record - ระบุ Name Servers ของ Hosted Zone ควบคุมว่า traffic ถูก route ไปอย่างไร
05Alias Records vs CNAME (จุดออกสอบสำคัญ)
Alias record เป็น record เฉพาะของ Route 53 ที่ชี้ hostname ไปยัง AWS resources ทำงานเสมือน extension ของ DNS โดย Route 53 จัดการ mapping IP ที่เปลี่ยนแปลงให้อัตโนมัติ และ ไม่มีค่าใช้จ่ายต่อ query
| ประเด็น | Alias Record | CNAME Record |
|---|---|---|
| ใช้กับ Zone Apex (root domain) | ได้ | ไม่ได้ |
| ค่าใช้จ่าย query | ฟรี | ปกติ (มีค่าใช้จ่าย) |
| ชี้ไปที่ | AWS resources เท่านั้น | hostname ใดก็ได้ |
| Record Type | เป็น type A หรือ AAAA | type CNAME |
| TTL | Route 53 กำหนดให้อัตโนมัติ (set เองไม่ได้) | กำหนดเองได้ |
| Health Check | รองรับ | - |
Alias Targets ที่ใช้ได้
- Elastic Load Balancers (ALB/NLB/CLB)
- CloudFront Distributions
- API Gateway
- Elastic Beanstalk environments
- S3 Websites (S3 static website)
- VPC Interface Endpoints
- Global Accelerator
- Route 53 record ในอีก hosted zone เดียวกัน
06TTL (Time To Live)
TTL คือระยะเวลา (วินาที) ที่ client/DNS resolver จะ cache คำตอบ DNS ไว้ก่อนถาม Route 53 ใหม่ เป็นข้อบังคับสำหรับทุก record ยกเว้น Alias
| ประเด็น | High TTL (เช่น 24 ชม.) | Low TTL (เช่น 60 วินาที) |
|---|---|---|
| Traffic ไป Route 53 | น้อย (ประหยัด) | มาก (แพงขึ้น) |
| ความเร็วในการ update record | ช้า (เป็นไปได้ที่ client มีข้อมูลเก่า) | เร็ว (update มีผลเร็ว) |
| เหมาะกับ | record ที่ไม่ค่อยเปลี่ยน | record ที่เปลี่ยนบ่อย |
07Routing Policies (8 แบบ)
Routing Policy กำหนดว่า Route 53 ตอบ DNS queries อย่างไร (ไม่ได้ route traffic จริงเหมือน Load Balancer แต่ตอบกลับ IP/hostname) มี 8 แบบที่ออกสอบ
08Route 53 Health Checks
Health Checks ใช้ตรวจสอบสุขภาพของ resources (ส่วนใหญ่ใช้สำหรับ public resources) ช่วยทำ automated DNS failover มี 3 ประเภทหลัก
aws route53 create-health-check \
--caller-reference 2024-health-1 \
--health-check-config '{
"IPAddress": "203.0.113.10",
"Port": 443,
"Type": "HTTPS",
"ResourcePath": "/health",
"RequestInterval": 30,
"FailureThreshold": 3
}'093rd Party Domains & CLI
Domain Registrar != DNS Service เราสามารถซื้อ domain จาก registrar ภายนอก (เช่น GoDaddy, Google Domains) แล้วยังใช้ Route 53 เป็น DNS service ได้
- สร้าง Public Hosted Zone ใน Route 53
- Route 53 จะให้ชุด NS records (Name Servers) มา
- นำ NS records เหล่านั้นไป update ที่ registrar ภายนอก (3rd party website)
- จากนั้น Route 53 จะทำหน้าที่จัดการ DNS records ทั้งหมด
aws route53 change-resource-record-sets \
--hosted-zone-id Z123456ABCDEFG \
--change-batch '{
"Changes": [{
"Action": "UPSERT",
"ResourceRecordSet": {
"Name": "app.example.com",
"Type": "A",
"AliasTarget": {
"HostedZoneId": "Z35SXDOTRQ7X7K",
"DNSName": "my-alb-123.us-east-1.elb.amazonaws.com",
"EvaluateTargetHealth": true
}
}
}]
}'คำถามทบทวน
ทดสอบความเข้าใจหัวข้อ Route 53
20 ข้อ · เลือกคำตอบเพื่อดูเฉลยและคำอธิบาย
1.คุณต้องการให้ root domain (zone apex) เช่น example.com ชี้ไปยัง Application Load Balancer ใน Route 53 คุณควรใช้ record type ใด?
2.ข้อใดอธิบายความแตกต่างระหว่าง Alias record และ CNAME record ได้ถูกต้อง?
3.บริษัทต้องการกระจาย traffic ไปยัง 2 servers โดยให้ 70% ไป server A และ 30% ไป server B เพื่อทดสอบเวอร์ชันใหม่ ควรใช้ Routing Policy ใด?
4.แอปพลิเคชันมี endpoint ในหลาย AWS regions และต้องการให้ผู้ใช้เชื่อมต่อไป region ที่ให้ response time ต่ำที่สุด ควรใช้ Routing Policy ใด?
5.Failover Routing Policy ของ Route 53 ทำงานร่วมกับสิ่งใดเพื่อตรวจสอบว่า primary resource ยัง healthy หรือไม่?
6.ข้อใดคือ TTL (Time To Live) ใน Route 53 record?
7.องค์กรต้องการ DNS resolution สำหรับ resources ภายใน VPC เท่านั้น โดยไม่เปิดเผยสู่อินเทอร์เน็ต ควรใช้อะไร?
8.คุณต้องการ route traffic ตามตำแหน่งทางภูมิศาสตร์ของผู้ใช้ เช่น ผู้ใช้จากยุโรปไปยัง EU servers และต้องการกำหนด default record สำหรับ location ที่ไม่ตรง ควรใช้ Routing Policy ใด?
9.Routing Policy ใดใช้ bias เพื่อขยายหรือย่อขนาดพื้นที่ที่ทางภูมิศาสตร์ที่ traffic จะถูก route ไปยัง resource หนึ่งๆ?
10.Multi-Value Answer Routing Policy ทำหน้าที่อะไร?
11.ข้อใดเกี่ยวกับ Amazon Route 53 SLA ถูกต้อง?
12.Health Check ประเภทใดของ Route 53 ที่รวมผลของ child health checks หลายตัวเข้าด้วยกัน?
13.เมื่อต้องการ monitor metric ที่ private resources (เช่น private VPC หรือ on-premises) ที่ Route 53 health checker ไม่สามารถเข้าถึงได้โดยตรง ควรใช้ Health Check แบบใด?
14.FQDN (Fully Qualified Domain Name) เช่น api.www.example.com. ส่วนใดคือ TLD (Top Level Domain)?
15.record type ใดที่ map hostname ไปยัง IPv6 address?
16.คุณซื้อ domain จาก registrar ภายนอก (เช่น GoDaddy) แต่ต้องการใช้ Route 53 จัดการ DNS records ต้องทำอย่างไร?
17.Alias records สามารถชี้ไปยัง target ใดได้บ้าง? (เลือกที่ถูกที่สุด)
18.ทีมต้องการให้ DNS update มีผลเร็วที่สุดเมื่อเปลี่ยน IP ของ server ที่อาจเปลี่ยนบ่อย ควรตั้งค่า TTL อย่างไร?
19.Simple Routing Policy มีข้อจำกัดใดที่สำคัญ?
20.ผู้ใช้รายงานว่า website ยังชี้ IP เก่าหลังจากเปลี่ยน record ไปแล้วหลายชั่วโมง สาเหตุที่เป็นไปได้มากที่สุดคืออะไร?