AWS DVA-C02
Esc
↑↓เลื่อน↵เปิดescปิด28 ผลลัพธ์
06

Route 53

เจาะลึก DNS, Hosted Zones, Records, Routing Policies และ Health Checks สำหรับสอบ DVA-C02

Networking & Content Delivery 22 นาที 20 คำถาม

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
text
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
Authoritative คืออะไร
Authoritative หมายถึงลูกค้า (เรา) สามารถ update DNS records ได้เอง Route 53 เป็น authoritative DNS server สำหรับ domains ที่เราจัดการผ่าน Hosted Zone

03Hosted Zones (Public vs Private)

Hosted Zone คือ container ที่เก็บ records ซึ่งกำหนดว่าจะ route traffic ไปยัง domain และ subdomains อย่างไร มี 2 ประเภท

Public Hosted Zone
ใช้กับ records ที่ระบุวิธี route traffic บน อินเทอร์เน็ต (public domain names) เช่น application1.mypublicdomain.com ใครก็ตามบนอินเทอร์เน็ตสามารถ query ได้
Private Hosted Zone
ใช้กับ records ที่ระบุวิธี route traffic ภายใน VPC (private domain names) สามารถ resolve ได้เฉพาะภายใน VPC ที่ associate ไว้ เช่น application1.company.internal ใช้กับ private resources เท่านั้น
ค่าใช้จ่าย
Route 53 คิดเงิน $0.50 ต่อ hosted zone ต่อเดือน (ตัวเลขอาจเปลี่ยนได้ โฟกัสที่แนวคิดมากกว่าตัวเลขในการสอบ)

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 ไปอย่างไร
กับดักข้อสอบ: CNAME กับ root domain
CNAME ไม่สามารถสร้างบน top node ของ DNS namespace (zone apex / root domain) ได้ เช่น สร้าง CNAME สำหรับ example.com ไม่ได้ แต่สร้างสำหรับ www.example.com ได้ ถ้าโจทย์ต้องการชี้ root domain ไปยัง AWS resource ต้องใช้ Alias

05Alias Records vs CNAME (จุดออกสอบสำคัญ)

Alias record เป็น record เฉพาะของ Route 53 ที่ชี้ hostname ไปยัง AWS resources ทำงานเสมือน extension ของ DNS โดย Route 53 จัดการ mapping IP ที่เปลี่ยนแปลงให้อัตโนมัติ และ ไม่มีค่าใช้จ่ายต่อ query

ประเด็นAlias RecordCNAME Record
ใช้กับ Zone Apex (root domain)ได้ไม่ได้
ค่าใช้จ่าย queryฟรีปกติ (มีค่าใช้จ่าย)
ชี้ไปที่AWS resources เท่านั้นhostname ใดก็ได้
Record Typeเป็น type A หรือ AAAAtype CNAME
TTLRoute 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 เดียวกัน
กับดักข้อสอบ: Alias ชี้ EC2 ไม่ได้
ไม่สามารถสร้าง Alias record ชี้ไปยัง EC2 DNS name โดยตรงได้ ถ้าโจทย์ให้ชี้ root domain ไปที่ EC2 ต้องใช้ A record กับ IP หรือผ่าน ELB
Tip สอบ: เห็น root/apex domain + AWS resource = Alias
ถ้าโจทย์พูดถึงการชี้ root domain (เช่น example.com ไม่มี www) ไปยัง ALB, CloudFront, หรือ S3 website คำตอบคือ Alias record (type A) เสมอ เพราะ CNAME ใช้กับ root ไม่ได้และ Alias ฟรี

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 ที่เปลี่ยนบ่อย
Tip: ลด TTL ก่อนเปลี่ยน record
แนวปฏิบัติที่ดีคือลด TTL ลงล่วงหน้า (เช่นเป็น 60s) ก่อนวางแผนเปลี่ยน record เพื่อให้ client cache ข้อมูลเก่าสั้นที่สุด เมื่อเปลี่ยนเสร็จค่อยปรับ TTL กลับขึ้นได้ สำหรับ Alias records ไม่ต้องตั้ง TTL เพราะ Route 53 จัดการให้

07Routing Policies (8 แบบ)

Routing Policy กำหนดว่า Route 53 ตอบ DNS queries อย่างไร (ไม่ได้ route traffic จริงเหมือน Load Balancer แต่ตอบกลับ IP/hostname) มี 8 แบบที่ออกสอบ

1. Simple
route traffic ไปยัง single resource สามารถใส่หลายค่าใน record เดียวได้ (client สุ่มเลือก) ไม่สามารถ associate Health Check ได้ ใช้เมื่อ redirect ไป resource เดียว
2. Weighted
ควบคุม สัดส่วน (%) ของ requests ไปยังแต่ละ resource ผ่านค่า weight (relative ไม่จำเป็นต้องรวมเป็น 100) ใช้กับ load balancing ระหว่าง regions, A/B testing, canary deployment รองรับ Health Checks; weight=0 หยุดส่ง traffic
3. Latency-based
route ไปยัง resource ที่มี latency ต่ำสุด เทียบกับตำแหน่งผู้ใช้ ดีเมื่อสนใจ performance latency อิงจาก traffic ระหว่าง users กับ AWS Regions
4. Failover (Active-Passive)
ใช้ Health Check กับ primary record เมื่อ primary unhealthy จะ failover ไป secondary อัตโนมัติ
5. Geolocation
route ตาม ตำแหน่งของผู้ใช้ (Continent, Country, US State) เลือกที่เจาะจงที่สุดก่อน ควรสร้าง default record เผื่อ location ที่ไม่ match ใช้กับ website localization, content distribution
6. Geoproximity
route ตามตำแหน่งทางภูมิศาสตร์ของ users และ resources โดยใช้ค่า bias (positive=ขยายพื้นที่, negative=ย่อพื้นที่) ต้องใช้ Route 53 Traffic Flow
7. IP-based
route ตาม client IP ranges (CIDR) ที่กำหนด ใช้ optimize performance หรือลดต้นทุน network โดย map IP block ไป endpoint
8. Multi-Value Answer
ตอบกลับได้สูงสุด 8 healthy records ต่อ query (สุ่ม) ใช้กับ Health Checks ทำ client-side load balancing ไม่ใช่สิ่งทดแทน ELB
Tip สอบ: จับคู่ keyword กับ policy
% หรือ A/B test = Weighted, performance/response time = Latency-based, DR/disaster recovery = Failover, ตาม country/continent = Geolocation, ขยาย/ย่อพื้นที่ด้วย bias = Geoproximity, client-side LB หลาย record = Multi-Value Answer

08Route 53 Health Checks

Health Checks ใช้ตรวจสอบสุขภาพของ resources (ส่วนใหญ่ใช้สำหรับ public resources) ช่วยทำ automated DNS failover มี 3 ประเภทหลัก

1. Monitor an Endpoint
ตรวจ application/server/AWS resource ผ่าน endpoint โดยมี health checkers ~15 ตัวจากทั่วโลก ส่ง request ถ้า >18% รายงานว่า healthy ถือว่า Healthy รองรับ HTTP/HTTPS/TCP สามารถตั้ง threshold เช่น 3 (default) endpoint ต้องตอบ status code 2xx/3xx
2. Calculated Health Checks
รวมผลของหลาย child health checks เป็น parent เดียว ใช้ logic OR/AND/NOT และกำหนดจำนวนที่ต้อง pass ได้ ใช้เมื่อต้องการ maintenance website โดยไม่ทำให้ทุก health check fail
3. CloudWatch Alarm based
สร้าง Health Check ที่อิง CloudWatch Alarm เหมาะกับ private resources เพราะ Route 53 health checkers อยู่นอก VPC เข้าถึง private endpoints ไม่ได้ จึงสร้าง CloudWatch Metric + Alarm แล้วผูก Health Check กับ Alarm นั้น
กับดักข้อสอบ: Private resources
Route 53 health checkers อยู่บนอินเทอร์เน็ต (นอก VPC) จึง monitor private endpoint โดยตรงไม่ได้ ถ้าโจทย์พูดถึง private VPC หรือ on-premises คำตอบคือ CloudWatch Alarm based Health Check
bash
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 ทั้งหมด
bash
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
        }
      }
    }]
  }'
สรุปจุดออกสอบสำคัญ
1) Alias ใช้กับ root domain + ฟรี, CNAME ใช้ root ไม่ได้ 2) เลือก Routing Policy ตาม keyword ในโจทย์ 3) Failover ต้องใช้ Health Check 4) Private resources ใช้ CloudWatch Alarm based Health Check 5) Route 53 ให้ 100% SLA

คำถามทบทวน

ทดสอบความเข้าใจหัวข้อ Route 53

20 ข้อ · เลือกคำตอบเพื่อดูเฉลยและคำอธิบาย

ทำแล้ว 0/20คะแนน 0
  1. 1.คุณต้องการให้ root domain (zone apex) เช่น example.com ชี้ไปยัง Application Load Balancer ใน Route 53 คุณควรใช้ record type ใด?

  2. 2.ข้อใดอธิบายความแตกต่างระหว่าง Alias record และ CNAME record ได้ถูกต้อง?

  3. 3.บริษัทต้องการกระจาย traffic ไปยัง 2 servers โดยให้ 70% ไป server A และ 30% ไป server B เพื่อทดสอบเวอร์ชันใหม่ ควรใช้ Routing Policy ใด?

  4. 4.แอปพลิเคชันมี endpoint ในหลาย AWS regions และต้องการให้ผู้ใช้เชื่อมต่อไป region ที่ให้ response time ต่ำที่สุด ควรใช้ Routing Policy ใด?

  5. 5.Failover Routing Policy ของ Route 53 ทำงานร่วมกับสิ่งใดเพื่อตรวจสอบว่า primary resource ยัง healthy หรือไม่?

  6. 6.ข้อใดคือ TTL (Time To Live) ใน Route 53 record?

  7. 7.องค์กรต้องการ DNS resolution สำหรับ resources ภายใน VPC เท่านั้น โดยไม่เปิดเผยสู่อินเทอร์เน็ต ควรใช้อะไร?

  8. 8.คุณต้องการ route traffic ตามตำแหน่งทางภูมิศาสตร์ของผู้ใช้ เช่น ผู้ใช้จากยุโรปไปยัง EU servers และต้องการกำหนด default record สำหรับ location ที่ไม่ตรง ควรใช้ Routing Policy ใด?

  9. 9.Routing Policy ใดใช้ bias เพื่อขยายหรือย่อขนาดพื้นที่ที่ทางภูมิศาสตร์ที่ traffic จะถูก route ไปยัง resource หนึ่งๆ?

  10. 10.Multi-Value Answer Routing Policy ทำหน้าที่อะไร?

  11. 11.ข้อใดเกี่ยวกับ Amazon Route 53 SLA ถูกต้อง?

  12. 12.Health Check ประเภทใดของ Route 53 ที่รวมผลของ child health checks หลายตัวเข้าด้วยกัน?

  13. 13.เมื่อต้องการ monitor metric ที่ private resources (เช่น private VPC หรือ on-premises) ที่ Route 53 health checker ไม่สามารถเข้าถึงได้โดยตรง ควรใช้ Health Check แบบใด?

  14. 14.FQDN (Fully Qualified Domain Name) เช่น api.www.example.com. ส่วนใดคือ TLD (Top Level Domain)?

  15. 15.record type ใดที่ map hostname ไปยัง IPv6 address?

  16. 16.คุณซื้อ domain จาก registrar ภายนอก (เช่น GoDaddy) แต่ต้องการใช้ Route 53 จัดการ DNS records ต้องทำอย่างไร?

  17. 17.Alias records สามารถชี้ไปยัง target ใดได้บ้าง? (เลือกที่ถูกที่สุด)

  18. 18.ทีมต้องการให้ DNS update มีผลเร็วที่สุดเมื่อเปลี่ยน IP ของ server ที่อาจเปลี่ยนบ่อย ควรตั้งค่า TTL อย่างไร?

  19. 19.Simple Routing Policy มีข้อจำกัดใดที่สำคัญ?

  20. 20.ผู้ใช้รายงานว่า website ยังชี้ IP เก่าหลังจากเปลี่ยน record ไปแล้วหลายชั่วโมง สาเหตุที่เป็นไปได้มากที่สุดคืออะไร?