แนวทางปฏิบัติที่ดีที่สุดสำหรับการกำหนดค่าการตรวจสุขภาพใน AWS Global Accelerator มุ่งเน้นไปที่การตรวจสอบความถูกต้องปลอดภัยและมีประสิทธิภาพของสุขภาพจุดสิ้นสุดเพื่อรักษาความพร้อมใช้งานสูงและการกำหนดเส้นทางการจราจรที่ดีที่สุด ด้านล่างนี้เป็นแนวทางโดยละเอียดตามเอกสาร AWS และแนวทางปฏิบัติที่ดีที่สุดที่เกี่ยวข้อง:
แนวทางปฏิบัติที่ดีที่สุดสำหรับการกำหนดค่าการตรวจสุขภาพในเครื่องเร่งความเร็วทั่วโลก
1. ใช้โปรโตคอลและพอร์ตตรวจสอบสุขภาพที่เหมาะสม
- เลือกโปรโตคอลการตรวจสุขภาพ (TCP, HTTP หรือ HTTPS) ที่สะท้อนถึงลักษณะของแอปพลิเคชันของคุณและความสามารถในการตอบสนองของจุดสิ้นสุด การตรวจสอบสุขภาพของ TCP ตรวจสอบการเชื่อมต่อระดับเครือข่ายโดยการส่งแพ็คเก็ต SYN ในขณะที่ HTTP/HTTPS ตรวจสอบจำลอง HTTP จริงรับคำขอไปยังจุดสิ้นสุดของแอปพลิเคชัน [6] [9]
- กำหนดค่าพอร์ตตรวจสอบสุขภาพเพื่อให้ตรงกับพอร์ตผู้ฟังบนคันเร่งของคุณเพื่อความสอดคล้อง หากคุณใช้พอร์ตที่แตกต่างกันสำหรับการตรวจสอบสุขภาพตรวจสอบให้แน่ใจว่ากฎไฟร์วอลล์และความปลอดภัยจะ จำกัด การเข้าถึงเฉพาะช่วง IP ที่ใช้โดย Route 53 Health Checkers เพื่อป้องกันไม่ให้มีการเปิดเผยพอร์ตต่อสาธารณะ [1] [4]
- สำหรับอินสแตนซ์ EC2 หรือจุดสิ้นสุด IP ที่ยืดหยุ่นด้วยผู้ฟัง UDP ตัวเร่งความเร็วทั่วโลกทำการตรวจสอบสุขภาพ TCP บนพอร์ตผู้ฟังดังนั้นตรวจสอบให้แน่ใจว่าเซิร์ฟเวอร์ TCP กำลังทำงานบนพอร์ตนั้น มิฉะนั้นจุดสิ้นสุดจะถูกทำเครื่องหมายไม่ดีต่อสุขภาพ [1]
2. ตรวจสอบความปลอดภัยและการเข้าถึงการตรวจสุขภาพ
- อนุญาตให้มีการรับส่งข้อมูลขาเข้าจากที่อยู่ IP ที่เกี่ยวข้องกับตัวตรวจสอบสุขภาพของ Amazon Route 53 ในการกำหนดค่าไฟร์วอลล์และเราเตอร์ของคุณ นี่เป็นสิ่งสำคัญสำหรับการตรวจสุขภาพที่จะประสบความสำเร็จโดยเฉพาะอย่างยิ่งสำหรับอินสแตนซ์ EC2 หรือจุดสิ้นสุด IP ยืดหยุ่น [1] [4]
- เมื่อใช้พอร์ตตรวจสอบสุขภาพที่ไม่ได้รับการตรวจสุขภาพให้ จำกัด การเข้าถึงพอร์ตนั้นเฉพาะช่วงการตรวจสุขภาพ Route 53 IP เพื่อหลีกเลี่ยงความเสี่ยงด้านความปลอดภัย [1]
- ตรวจสอบและอัปเดตกฎกลุ่มความปลอดภัยเป็นประจำเพื่อรองรับการเปลี่ยนแปลงใด ๆ ในช่วงที่อยู่ IP ที่ใช้โดย Route 53 Health Checkers
3. กำหนดค่าพารามิเตอร์การตรวจสุขภาพเวลาอย่างรอบคอบ
- ตั้งค่าช่วงเวลาตรวจสุขภาพ (เวลาระหว่างการตรวจสอบ) ตามความอดทนของแอปพลิเคชันของคุณสำหรับการหยุดทำงานและความสำคัญของจุดสิ้นสุด ช่วงเวลาที่สั้นกว่าตรวจจับความล้มเหลวได้เร็วขึ้น แต่เพิ่มภาระและค่าใช้จ่ายในขณะที่ช่วงเวลาที่ยาวขึ้นลดภาระ แต่การตรวจจับความล้มเหลวล่าช้า [5]
- กำหนดค่าจำนวนขีด จำกัด (จำนวนความสำเร็จติดต่อกันหรือความล้มเหลวก่อนที่จะเปลี่ยนสถานะสุขภาพปลายทาง) เพื่อสมดุลความไวและความมั่นคง ค่าเริ่มต้นทั่วไปคือ 3 ซึ่งให้การแลกเปลี่ยนที่ดีระหว่างผลบวกที่ผิดพลาดและความเร็วในการตรวจจับ [1] [9]
- ใช้ค่าหมดเวลาเริ่มต้นเว้นแต่คุณจะมีเหตุผลเฉพาะในการปรับ ตัวอย่างเช่นการหมดเวลาตรวจสุขภาพ TCP ได้รับการแก้ไขที่ 3 วินาทีในเครื่องเร่งความเร็วทั่วโลก [6]
4. จัดตำแหน่งการตรวจสุขภาพด้วยประเภทจุดปลาย
- สำหรับเครือข่าย Load Balancer (NLB) หรือจุดสิ้นสุดของแอปพลิเคชัน Load Balancer (ALB) ให้กำหนดค่าการตรวจสอบสุขภาพบนตัวโหลดบาลานซ์เองแทนที่จะเป็นตัวเร่งความเร็วทั่วโลกเนื่องจากตัวเร่งความเร็วทั่วโลกใช้สถานะสุขภาพของ Load Balancer เพื่อกำหนดสุขภาพปลายทาง [1]
- สำหรับอินสแตนซ์ EC2 หรือที่อยู่ IP ยืดหยุ่นกำหนดค่าการตรวจสอบสุขภาพโดยตรงในตัวเร่งความเร็วทั่วโลกระบุพอร์ตและโปรโตคอลที่เหมาะสมซึ่งสะท้อนถึงความพร้อมใช้งานของบริการจริง [1]
5. ใช้เส้นทางตรวจสุขภาพที่มีความหมายสำหรับ http/https
- เมื่อใช้การตรวจสุขภาพ HTTP หรือ HTTPS ให้ระบุเส้นทาง URI ที่แสดงถึงสุขภาพของแอปพลิเคชันของคุณอย่างแม่นยำ (เช่นจุดสิ้นสุดการตรวจสุขภาพโดยเฉพาะมากกว่าหน้าแรก) สิ่งนี้ทำให้มั่นใจได้ว่าการตรวจสุขภาพสะท้อนให้เห็นถึงความพร้อมระดับแอปพลิเคชันไม่ใช่แค่ความพร้อมใช้งานของเครือข่าย [6]
- รักษาเส้นทาง URI อย่างรัดกุมและถูกต้องเริ่มต้นด้วยสแลชไปข้างหน้าและมีอักขระที่ได้รับอนุญาต [6]
6. ตรวจสอบการตรวจสุขภาพตัวชี้วัดและบันทึก
- ตรวจสอบผลการตรวจสุขภาพเป็นประจำและตัวชี้วัด CloudWatch เพื่อระบุรูปแบบหรือความล้มเหลวที่เกิดขึ้นซ้ำ สิ่งนี้ช่วยในการแก้ไขปัญหาเชิงรุกและการวางแผนกำลังการผลิต [5]
- ตั้งค่า Alarms CloudWatch เพื่อแจ้งทีมของคุณทันทีเมื่อจุดสิ้นสุดไม่แข็งแรงหรือกู้คืนทำให้เกิดการตอบสนองอย่างรวดเร็วต่อเหตุการณ์ [5]
7. ใช้กลยุทธ์การล้มเหลวและการกู้คืน
- ใช้ประโยชน์จากความสามารถของตัวเร่งความเร็วทั่วโลกในการกำหนดเส้นทางการจราจรเฉพาะไปยังจุดสิ้นสุดที่ดีต่อสุขภาพสำหรับการล้มเหลวทันที
- ทดสอบความล้มเหลวและสถานการณ์ Failback เพื่อให้แน่ใจว่าการเปลี่ยนการจราจรที่ราบรื่นในระหว่างการหยุดทำงานของจุดสิ้นสุดและการกู้คืน [5] [8]
8. อัปเดตการตรวจสุขภาพ
- ตรวจสอบและอัปเดตการกำหนดค่าการตรวจสุขภาพเป็นระยะเมื่อแอปพลิเคชันของคุณวิวัฒนาการรวมถึงการเปลี่ยนแปลงในพอร์ตโปรโตคอลหรือเส้นทางการตรวจสุขภาพ
- ลบการตรวจสุขภาพสำหรับจุดสิ้นสุดที่ไม่ได้ใช้เพื่อหลีกเลี่ยงการตรวจสอบที่ไม่จำเป็นและการเปิดรับความปลอดภัยที่อาจเกิดขึ้น [5]
โดยการปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุดเหล่านี้คุณมั่นใจได้ว่าการตรวจสอบสุขภาพแบบเร่งความเร็วทั่วโลกให้ข้อมูลที่ถูกต้องปลอดภัยและทันเวลาเกี่ยวกับสุขภาพปลายทางทำให้การกำหนดเส้นทางการจราจรที่เชื่อถือได้และความพร้อมใช้งานสูงสำหรับแอปพลิเคชันของคุณ
การอ้างอิง:
[1] https://docs.aws.amazon.com/global-accelerator/latest/dg/about-endpoint-groups-health-check-options.html
[2] https://aws.amazon.com/blogs/networking-and-content-delivery/best-practices-for-deployment-with-aws-global-accelerator/
[3] https://docs.aws.amazon.com/global-accelerator/latest/dg/introduction-how-it-works.html
[4] https://repost.aws/knowledge-center/global-accelerator-unhealthy-endpoints
[5] https://docs.aws.amazon.com/route53/latest/developerguide/best-practices-healthchecks.html
[6] https://www.alibabacloud.com/help/en/ga/user-guide/enable-and-manage-health-checks
[7] https://support.huaweicloud.com/intl/en-us/usermanual-ga/ga_03_5002.html
[8] https://tutorialsdojo.com/aws-global-accelerator/
[9] https://boto3.amazonaws.com/v1/documentation/api/1.16.27/reference/services/globalaccelerator.html