นโยบายการกำหนดเส้นทาง: แบบง่าย แบบถ่วงน้ำหนัก และแบบหน่วงต่ำ
ใช้การกำหนดเส้นทางแบบง่ายสำหรับทรัพยากรเดียว แบบถ่วงน้ำหนักเพื่อแบ่งการใช้งาน A/B และแบบหน่วงต่ำเพื่อให้บริการผู้ใช้จากรีเจียนที่ใกล้ที่สุด
นโยบายการกำหนดเส้นทาง: แบบง่าย แบบถ่วงน้ำหนัก และแบบหน่วงต่ำ เป็นบทเรียน Cloud & IT Cert Prep ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cloud & IT Cert Prep และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cloud & IT Cert Prep มีบทเรียนทั้งหมด 4 บทเรียน
ภาพรวมของนโยบายกำหนดเส้นทางของ Route 53
นโยบายกำหนดเส้นทางของ Route 53 จะกำหนดว่า จะตอบการสืบค้น DNS อย่างไร เมื่อ ResourceRecordSet หลายรายการใช้ชื่อ DNS เดียวกัน นโยบายจะบอก Route 53 ว่าควรส่งคืน IP หรือชื่อ DNS ใด และภายใต้เงื่อนไขใด การเลือกนโยบายกำหนดเส้นทางที่เหมาะสมเป็นหัวข้อที่ออกสอบบ่อยมากหัวข้อหนึ่งในการสอบ SAA-C03
นโยบายกำหนดเส้นทางที่มีให้ใช้ ได้แก่ Simple, Weighted, Latency-based, Failover, Geolocation, Geoproximity และ Multivalue Answer แต่ละแบบเหมาะกับกรณีใช้งานที่แตกต่างกัน และส่วนใหญ่สามารถใช้ร่วมกับ health checks เพื่อสลับไปใช้ระบบสำรองโดยอัตโนมัติ
นโยบายกำหนดเส้นทางแบบ Simple
การกำหนดเส้นทางแบบ Simple จะจับคู่ชื่อ DNS กับที่อยู่ IP หนึ่งรายการหรือมากกว่า (สำหรับเรกคอร์ด A) หรือกับชื่อโฮสต์อื่น (สำหรับ CNAME/ALIAS) หากกำหนดค่าไว้เพียงค่าเดียว Route 53 จะส่งคืนค่านั้นเสมอ หากกำหนดหลายค่า Route 53 จะส่งคืน ค่าทั้งหมดในลำดับแบบสุ่ม แล้วให้ไคลเอนต์เลือกหนึ่งค่า
การกำหนดเส้นทางแบบ Simple เป็นนโยบายเริ่มต้น และเหมาะที่สุดสำหรับระบบที่มีทรัพยากรเดียว ซึ่งไม่ต้องการ health checks การแบ่งทราฟฟิก หรือการแยกเส้นทางตามภูมิศาสตร์ นโยบายนี้ไม่รองรับ health checks หากทรัพยากรไม่พร้อมใช้งาน Route 53 ก็ยังคงส่งคืนที่อยู่ของทรัพยากรนั้น
# Create a simple routing record
aws route53 change-resource-record-sets \
--hosted-zone-id Z1234567890 \
--change-batch '{
"Changes": [{
"Action": "CREATE",
"ResourceRecordSet": {
"Name": "api.example.com",
"Type": "A",
"TTL": 60,
"ResourceRecords": [
{"Value": "10.0.0.1"},
{"Value": "10.0.0.2"}
]
}
}]
}'นโยบายกำหนดเส้นทางแบบ Weighted
การกำหนดเส้นทางแบบ Weighted กระจายการสืบค้น DNS ไปยังทรัพยากรหลายรายการตามน้ำหนักที่คุณกำหนด แต่ละเรกคอร์ดจะได้รับค่าน้ำหนักตัวเลขตั้งแต่ 0 ถึง 255 Route 53 จะส่งคืนแต่ละเรกคอร์ดตามสัดส่วนของน้ำหนักเรกคอร์ดนั้นหารด้วยผลรวมของน้ำหนักทั้งหมด
ตัวอย่างเช่น เรกคอร์ดสามรายการที่มีน้ำหนัก 70, 20 และ 10 จะได้รับทราฟฟิกประมาณ 70%, 20% และ 10% ตามลำดับ น้ำหนัก 0 หมายถึงไม่รวมเรกคอร์ดนั้นในการกำหนดเส้นทาง แต่ไม่ได้ลบเรกคอร์ด เหมาะสำหรับหยุดทราฟฟิกชั่วคราวโดยไม่ต้องลบเรกคอร์ด การกำหนดเส้นทางแบบ Weighted มักใช้สำหรับการทดสอบ A/B การนำระบบแบบ canary ไปใช้งาน และการสลับระบบแบบ blue-green
# Create two weighted records: 90% to v1, 10% to v2
# Record 1 (v1)
aws route53 change-resource-record-sets \
--hosted-zone-id Z1234567890 \
--change-batch '{
"Changes": [{
"Action": "CREATE",
"ResourceRecordSet": {
"Name": "app.example.com",
"Type": "A",
"SetIdentifier": "v1",
"Weight": 90,
"TTL": 60,
"ResourceRecords": [{"Value": "1.2.3.4"}]
}
}]
}'กรณีใช้งานของการกำหนดเส้นทางแบบ Weighted
การกำหนดเส้นทางแบบ Weighted มีประโยชน์อย่างมากในสถานการณ์การนำระบบไปใช้งานและการทดสอบ:
- การเปิดตัวแบบ canary: ส่งทราฟฟิก 5% ไปยังเวอร์ชันใหม่ (น้ำหนัก 5) และ 95% ไปยังเวอร์ชันเสถียร (น้ำหนัก 95) จากนั้นค่อย ๆ ปรับน้ำหนักเมื่อมีความมั่นใจมากขึ้น
- การนำระบบแบบ blue-green ไปใช้งาน: เริ่มที่ 100/0 (ทั้งหมดไปยัง green) ค่อย ๆ ปรับเป็น 50/50 แล้วเป็น 0/100 (ทั้งหมดไปยัง blue) จากนั้นลบเรกคอร์ด green
- การทดสอบโหลด: ส่งทราฟฟิกจากระบบ Production เพียงส่วนน้อยไปยังสภาพแวดล้อมทดสอบ เพื่อประเมินประสิทธิภาพภายใต้โหลดจริง
การกำหนดเส้นทางแบบ Weighted ทำงานร่วมกับ health checks ได้ หาก health check ของเรกคอร์ดแบบ Weighted ล้มเหลว Route 53 จะหยุดรวมเรกคอร์ดนั้นไว้ในคำตอบ และกระจายน้ำหนักของเรกคอร์ดนั้นไปยังเรกคอร์ดที่ยังทำงานปกติ
นโยบายกำหนดเส้นทางแบบ Latency-Based
การกำหนดเส้นทางแบบ Latency-based จะส่งการสืบค้น DNS แต่ละรายการไปยัง AWS Region ที่ให้ ค่าหน่วงเวลาเครือข่ายต่ำที่สุดสำหรับผู้ใช้ปลายทาง Route 53 วัดค่าหน่วงเวลาระหว่างตัวแก้ไข DNS ทั่วโลกกับ AWS Region ต่าง ๆ แล้วส่งการสืบค้นไปยัง Region ที่มีค่าหน่วงเวลาที่วัดได้ดีที่สุด
คุณสร้างเรกคอร์ดหนึ่งรายการต่อหนึ่ง Region ที่มีทรัพยากร โดยแต่ละรายการใช้ประเภท LATENCY และระบุ Region นั้น Route 53 จะเลือกตัวเลือกที่มีค่าหน่วงเวลาต่ำที่สุดสำหรับการสืบค้นแต่ละครั้ง โดยไม่เปรียบเทียบทรัพยากรจริง แต่ใช้ค่าการวัดความหน่วงเวลาของ AWS ไม่ใช่การวัดแบบเรียลไทม์จากตำแหน่งของผู้ใช้
# Create latency records for us-east-1 and eu-west-1
aws route53 change-resource-record-sets \
--hosted-zone-id Z1234567890 \
--change-batch '{
"Changes": [{
"Action": "CREATE",
"ResourceRecordSet": {
"Name": "api.example.com",
"Type": "A",
"SetIdentifier": "us-east-1",
"Region": "us-east-1",
"TTL": 60,
"ResourceRecords": [{"Value": "54.100.1.1"}]
}
}]
}'การกำหนดเส้นทางตามเวลาแฝงเทียบกับการกำหนดเส้นทางตามตำแหน่งทางภูมิศาสตร์
การกำหนดเส้นทางตามเวลาแฝงและการกำหนดเส้นทางตามตำแหน่งทางภูมิศาสตร์มักทำให้สับสนกันในการสอบ:
- การกำหนดเส้นทางตามเวลาแฝง: กำหนดเส้นทางตาม ประสิทธิภาพของเครือข่าย เพื่อลดเวลาไปกลับให้เหลือน้อยที่สุด—ผู้ใช้ในญี่ปุ่นอาจถูกกำหนดเส้นทางไปยัง us-west-2 หากในขณะนั้นมีเวลาแฝงต่ำกว่า ap-northeast-1
- การกำหนดเส้นทางตามตำแหน่งทางภูมิศาสตร์: กำหนดเส้นทางตาม แหล่งกำเนิดทางภูมิศาสตร์ ของคำขอ DNS—ผู้ใช้ในญี่ปุ่นจะถูกกำหนดเส้นทางไปยังระเบียนของญี่ปุ่นเสมอ โดยไม่คำนึงถึงเวลาแฝง
ใช้การกำหนดเส้นทางตามเวลาแฝงสำหรับ การเพิ่มประสิทธิภาพด้านประสิทธิภาพ และใช้การกำหนดเส้นทางตามตำแหน่งทางภูมิศาสตร์สำหรับ การปรับเนื้อหาให้เหมาะกับผู้ใช้ การปฏิบัติตามข้อกำหนดทางกฎหมาย หรือ เนื้อหาเฉพาะภาษา
การกำหนดเส้นทางแบบคำตอบหลายค่า
การกำหนดเส้นทางแบบ คำตอบหลายค่า จะส่งคืนระเบียนที่สถานะปกติได้สูงสุด 8 รายการสำหรับคำขอ DNS แต่ละครั้ง ทำให้ไคลเอ็นต์สามารถสุ่มเลือกหนึ่งรายการได้ ต่างจากการกำหนดเส้นทางแบบง่าย (ซึ่งอาจส่งคืน IP ที่ไม่พร้อมใช้งาน) การกำหนดเส้นทางแบบคำตอบหลายค่าทำงานร่วมกับ การตรวจสอบสถานะ เพื่อส่งคืนเฉพาะที่อยู่ IP ของทรัพยากรที่มีสถานะปกติเท่านั้น
คำตอบหลายค่าไม่ใช่สิ่งทดแทนตัวจัดสรรภาระงาน—การจัดสรรภาระงานด้วย DNS มีความซับซ้อนน้อยกว่าและแคชระเบียนไว้ในระดับไคลเอ็นต์ อย่างไรก็ตาม วิธีนี้เป็นแนวทางที่เรียบง่ายและประหยัดค่าใช้จ่ายในการกระจายการรับส่งข้อมูลและเพิ่มความทนทาน เมื่อคุณมีปลายทางหลายรายการที่มีความสามารถเท่าเทียมกัน
นโยบายการกำหนดเส้นทางและการตรวจสอบสถานะ
นโยบายการกำหนดเส้นทางส่วนใหญ่ (ทั้งหมดยกเว้นแบบง่าย) สามารถเชื่อมโยงกับ การตรวจสอบสถานะ ได้ เมื่อการตรวจสอบสถานะล้มเหลว Route 53 จะหยุดส่งคืนระเบียนนั้นในคำตอบ DNS สำหรับการกำหนดเส้นทางแบบถ่วงน้ำหนัก การรับส่งข้อมูลของระเบียนที่ถูกนำออกจะถูกกระจายไปยังระเบียนแบบถ่วงน้ำหนักที่มีสถานะปกติ สำหรับการกำหนดเส้นทางตามเวลาแฝง ระบบจะใช้ Region ถัดไปที่มีเวลาแฝงต่ำที่สุดและมีสถานะปกติ
การตรวจสอบสถานะจะได้รับการประเมินโดยอิสระจากนโยบายการกำหนดเส้นทาง และสามารถกำหนดค่าสำหรับปลายทาง HTTP, HTTPS และ TCP ได้ การตรวจสอบสถานะแบบคำนวณจะรวมผลลัพธ์จากการตรวจสอบสถานะหลายรายการเข้าด้วยกัน (ตรรกะ AND/OR) เพื่อประเมินสถานะโดยรวม
# Associate a health check with a weighted record
aws route53 change-resource-record-sets \
--hosted-zone-id Z1234567890 \
--change-batch '{
"Changes": [{
"Action": "UPSERT",
"ResourceRecordSet": {
"Name": "app.example.com",
"Type": "A",
"SetIdentifier": "primary-us",
"Weight": 100,
"TTL": 60,
"ResourceRecords": [{"Value": "54.100.1.1"}],
"HealthCheckId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
}
}]
}'การเลือกนโยบายที่เหมาะสม: เคล็ดลับการสอบ
แนวทางตัดสินใจอย่างรวดเร็วสำหรับนโยบายการกำหนดเส้นทาง:
- 'การทดสอบ A/B', 'canary', 'blue-green' → แบบถ่วงน้ำหนัก
- 'เวลาแฝงต่ำที่สุด', 'Region ที่ใกล้ที่สุด', 'ประสิทธิภาพดีที่สุด' → ตามเวลาแฝง
- 'ทรัพยากรเดียว', 'การตั้งค่าอย่างง่าย' → แบบง่าย
- 'IP หลายรายการที่มีสถานะปกติทั้งหมด' → คำตอบหลายค่า
- 'การสลับระบบแบบทำงานหลัก-สำรอง' → Failover
- 'เนื้อหาเฉพาะประเทศ', 'ข้อจำกัดทางกฎหมาย' → ตามตำแหน่งทางภูมิศาสตร์
- 'กำหนดเส้นทางตามความใกล้กับทรัพยากร' → ตามความใกล้เคียงทางภูมิศาสตร์
การกำหนดเส้นทางแบบถ่วงน้ำหนักเพื่อย้ายระบบอย่างค่อยเป็นค่อยไป
การกำหนดเส้นทางแบบถ่วงน้ำหนักเป็นกลยุทธ์ที่แนะนำสำหรับ การเปลี่ยนเส้นทางการรับส่งข้อมูลอย่างค่อยเป็นค่อยไป ระหว่างการย้ายระบบ ลำดับการดำเนินการทั่วไปมีดังนี้:
- เริ่มต้น: โครงสร้างพื้นฐานเดิมมีน้ำหนัก 100 ส่วนระบบใหม่มีน้ำหนัก 0
- เปิดใช้งานระบบใหม่: เปลี่ยนเป็น 95/5 และตรวจสอบอัตราข้อผิดพลาดกับเวลาแฝง
- เพิ่มสัดส่วน: 80/20 → 50/50 → 20/80 → 5/95 ภายในหลายชั่วโมงหรือหลายวัน
- เสร็จสิ้น: 0/100 และเลิกใช้งานโครงสร้างพื้นฐานเดิม
- ย้อนกลับ: หากเกิดปัญหา ให้ตั้งน้ำหนักของระบบใหม่เป็น 0 ทันทีเพื่อหยุดการรับส่งข้อมูล
รูปแบบนี้ลดความเสี่ยงเมื่อเทียบกับการเปลี่ยนระบบทันที และช่วยให้ย้อนกลับได้อย่างรวดเร็วโดยปรับน้ำหนัก DNS แทนการนำระบบไปใช้งานใหม่
การผสานนโยบายตามเวลาแฝงและแบบถ่วงน้ำหนัก
Route 53 ช่วยให้คุณสร้างการกำหนดเส้นทางที่ซับซ้อนได้โดยผสานนโยบายเข้าด้วยกันตามตรรกะ ตัวอย่างเช่น คุณสามารถใช้ การกำหนดเส้นทางตามเวลาแฝง เพื่อเลือก Region ที่ใกล้ที่สุด และใช้ การกำหนดเส้นทางแบบถ่วงน้ำหนักภายใน Region นั้น เพื่อแบ่งการรับส่งข้อมูลระหว่างปลายทางหลายรายการ วิธีนี้ทำได้โดยสร้างระเบียนแบบถ่วงน้ำหนักที่มี SetIdentifier เฉพาะภายใน Region เดียวกัน จากนั้นนโยบายตามเวลาแฝงจะเป็นผู้เลือกใช้ระเบียนเหล่านั้น
อย่างไรก็ตาม ระเบียนหนึ่งรายการสามารถมีนโยบายการกำหนดเส้นทางได้เพียงหนึ่งแบบ สำหรับรูปแบบที่ผสานกัน ให้ใช้ระเบียนหนึ่งชั้นสำหรับเวลาแฝง และใช้ชุดระเบียนแยกต่างหากภายในแต่ละ Region โดยเป็นระเบียนแบบถ่วงน้ำหนักที่ชี้ไปยัง ALB หรือ Elastic IP ที่แตกต่างกัน
ตรวจสอบความเข้าใจอย่างรวดเร็ว
ทดสอบความเข้าใจแนวคิด AWS Solutions Architect (SAA-C03) จากบทเรียนนี้
สรุปบทเรียน
ในบทเรียนนี้ คุณได้เรียนรู้ว่า การกำหนดเส้นทางแบบง่ายจะส่งคืนค่าหนึ่งค่าหรือหลายค่าโดยไม่มีการตรวจสอบสถานะ การกำหนดเส้นทางแบบถ่วงน้ำหนักจะแบ่งการรับส่งข้อมูลตามเปอร์เซ็นต์ สำหรับการทดสอบ A/B และการย้ายระบบอย่างค่อยเป็นค่อยไป และ การกำหนดเส้นทางตามเวลาแฝงจะส่งผู้ใช้ไปยัง Region ที่มีเวลาแฝงต่ำที่สุด เพื่อเพิ่มประสิทธิภาพ นโยบายส่วนใหญ่ทำงานร่วมกับการตรวจสอบสถานะเพื่อสลับระบบโดยอัตโนมัติ บทถัดไปเราจะสำรวจนโยบายการกำหนดเส้นทางแบบ Failover และตามตำแหน่งทางภูมิศาสตร์
คำถามที่พบบ่อย
บทเรียน “นโยบายการกำหนดเส้นทาง: แบบง่าย แบบถ่วงน้ำหนัก และแบบหน่วงต่ำ” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “นโยบายการกำหนดเส้นทาง: แบบง่าย แบบถ่วงน้ำหนัก และแบบหน่วงต่ำ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cloud & IT Cert Prep ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cloud & IT Cert Prep มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “นโยบายการกำหนดเส้นทาง: แบบง่าย แบบถ่วงน้ำหนัก และแบบหน่วงต่ำ”
ใช้การกำหนดเส้นทางแบบง่ายสำหรับทรัพยากรเดียว แบบถ่วงน้ำหนักเพื่อแบ่งการใช้งาน A/B และแบบหน่วงต่ำเพื่อให้บริการผู้ใช้จากรีเจียนที่ใกล้ที่สุด คุณปฏิบัติ Cloud & IT Cert Prep ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cloud & IT Cert Prep หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cloud & IT Cert Prep บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “นโยบายการกำหนดเส้นทาง: แบบง่าย แบบถ่วงน้ำหนัก และแบบหน่วงต่ำ” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Cloud & IT Cert Prep นี้ได้ไหม
ได้ บทเรียน Cloud & IT Cert Prep ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- โซนโฮสต์และประเภทระเบียน DNS
- นโยบายการกำหนดเส้นทาง: แบบง่าย แบบถ่วงน้ำหนัก และแบบหน่วงต่ำ
- การสลับระบบสำรองและการกำหนดเส้นทางตามภูมิศาสตร์
- การตรวจสอบสถานะและการสลับระบบ DNS