กลุ่มเป้าหมายและการตรวจสอบสถานะ
ลงทะเบียนอินสแตนซ์ EC2 ที่อยู่ IP หรือฟังก์ชัน Lambda เป็นเป้าหมาย และกำหนดค่าเส้นทาง เกณฑ์ และช่วงเวลาสำหรับการตรวจสอบสถานะ
กลุ่มเป้าหมายและการตรวจสอบสถานะ เป็นบทเรียน Cloud & IT Cert Prep ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cloud & IT Cert Prep และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cloud & IT Cert Prep มีบทเรียนทั้งหมด 4 บทเรียน
กลุ่มเป้าหมายคืออะไร
กลุ่มเป้าหมาย คือกลุ่มเป้าหมายเชิงตรรกะที่ตัวโหลดบาลานเซอร์ใช้ส่งคำขอไป แต่ละกลุ่มเป้าหมายมี ประเภทเป้าหมาย โพรโทคอล/พอร์ต และการกำหนดค่าการตรวจสอบสถานะ ตัวโหลดบาลานเซอร์จะแจกจ่ายคำขอไปยังเป้าหมายที่ลงทะเบียนในกลุ่มเป้าหมายและผ่านการตรวจสอบสถานะ
กลุ่มเป้าหมายเชื่อมโยงกับตัวรับฟังของตัวโหลดบาลานเซอร์ผ่านกฎของตัวรับฟัง ตัวรับฟังหนึ่งรายการสามารถส่งคำขอไปยังหลายกลุ่มเป้าหมายตามคุณลักษณะของคำขอ กลไกนี้เป็นพื้นฐานของการเลือกเส้นทางตามพาธและตามโฮสต์ใน ALB
# Create a target group for an ALB
aws elbv2 create-target-group \
--name my-web-targets \
--protocol HTTP \
--port 80 \
--vpc-id vpc-12345678 \
--target-type instance \
--health-check-path /health \
--health-check-interval-seconds 30ประเภทเป้าหมาย: อินสแตนซ์, IP, Lambda
กลุ่มเป้าหมายรองรับเป้าหมายสามประเภท:
- instance: ส่งเส้นทางไปยังอินสแตนซ์ EC2 ตาม ID อินสแตนซ์ ตัวโหลดบาลานเซอร์จะส่งทราฟฟิกไปยังอินเทอร์เฟซเครือข่ายหลักของอินสแตนซ์ที่พอร์ตที่ระบุ
- ip: ส่งเส้นทางไปยังที่อยู่ IP ส่วนตัว—มีประโยชน์สำหรับเป้าหมายในคอนเทนเนอร์ (ECS/EKS) เซิร์ฟเวอร์ภายในองค์กรที่เข้าถึงได้ผ่าน VPN/Direct Connect หรือ IP สำรองของอินสแตนซ์ EC2
- lambda: ส่งเส้นทางไปยังฟังก์ชัน Lambda เดียว (เฉพาะ ALB); ALB จะแปลงคำขอ HTTP เป็นเหตุการณ์ JSON แล้วเรียกใช้ฟังก์ชันแบบพร้อมกัน
ต้องใช้ประเภทเป้าหมาย IP สำหรับงาน ECS ที่ใช้โหมดเครือข่าย awsvpc (แต่ละงานจะมี IP ของตนเอง) สำหรับพ็อด EKS และสำหรับสถาปัตยกรรมแบบไฮบริดที่มีเป้าหมายภายในองค์กร
การลงทะเบียนเป้าหมาย
คุณลงทะเบียนเป้าหมายกับกลุ่มเป้าหมายได้ด้วยตนเอง (ในคอนโซลหรือ CLI) หรือโดยอัตโนมัติ (ผ่านการแนบ Auto Scaling Group หรือการกำหนดค่าบริการ ECS) เป้าหมายที่ลงทะเบียนด้วยตนเองจะยังคงอยู่ในกลุ่มจนกว่าคุณจะยกเลิกการลงทะเบียนอย่างชัดเจน
สำหรับ ASG คุณจะแนบ ASG เข้ากับกลุ่มเป้าหมาย จากนั้น ASG จะลงทะเบียนอินสแตนซ์ที่เปิดใช้งานใหม่โดยอัตโนมัติ และยกเลิกการลงทะเบียนอินสแตนซ์ที่สิ้นสุดการทำงานแล้ว การผสานรวมกับ ASG อย่างแน่นหนานี้เป็นรูปแบบมาตรฐานสำหรับระดับการประมวลผลแบบยืดหยุ่น อินสแตนซ์ใหม่จะเริ่มทำงานและรับทราฟฟิกทันทีที่ผ่านการตรวจสอบสถานะ
# Register EC2 instances with a target group
aws elbv2 register-targets \
--target-group-arn arn:aws:elasticloadbalancing:us-east-1:123456789:targetgroup/my-web-targets/abc123 \
--targets Id=i-1234567890abcdef0 Id=i-0987654321fedcba0
# Register IP targets (for containers/ECS awsvpc)
aws elbv2 register-targets \
--target-group-arn arn:aws:elasticloadbalancing:us-east-1:123456789:targetgroup/my-ip-targets/def456 \
--targets Id=10.0.0.5,Port=8080 Id=10.0.0.6,Port=8080การกำหนดค่าการตรวจสอบสถานะ
แต่ละกลุ่มเป้าหมายจะมีการตรวจสอบสถานะที่เกี่ยวข้อง ซึ่งตัวจัดสมดุลโหลดใช้เพื่อพิจารณาว่าเป้าหมายมีสถานะปกติและพร้อมรับทราฟฟิกหรือไม่ การตรวจสอบสถานะจะส่งคำขอไปยังแต่ละเป้าหมายเป็นระยะ และประเมินการตอบกลับดังนี้:
- Protocol: HTTP, HTTPS หรือ TCP (สำหรับ NLB)
- เส้นทาง: เส้นทาง URL ที่จะขอ เช่น
/healthหรือ/ping - Port: พอร์ตที่จะตรวจสอบ (ค่าเริ่มต้นคือพอร์ตของกลุ่มเป้าหมาย)
- เกณฑ์สถานะปกติ: จำนวนครั้งที่สำเร็จติดต่อกันก่อนกำหนดให้มีสถานะปกติ
- เกณฑ์สถานะผิดปกติ: จำนวนครั้งที่ล้มเหลวติดต่อกันก่อนกำหนดให้มีสถานะผิดปกติ
- ช่วงเวลา: จำนวนวินาทีระหว่างการตรวจสอบสถานะ (5–300)
- หมดเวลา: จำนวนวินาทีที่จะรอการตอบกลับ
รหัสความสำเร็จของการตรวจสอบสถานะ
สำหรับการตรวจสอบสถานะผ่าน HTTP/HTTPS คุณจะระบุว่ารหัสการตอบกลับ HTTP ใดบ่งชี้ว่าเป้าหมายมีสถานะปกติ ค่าเริ่มต้นคือ 200 แต่คุณสามารถกำหนดช่วง เช่น 200-299 หรือค่าที่คั่นด้วยจุลภาค เช่น 200,301,302 ได้
แนวทางปฏิบัติที่ดีคือสร้างจุดปลายทาง /health เฉพาะในแอปพลิเคชันของคุณ ซึ่งจะส่งคืน 200 ก็ต่อเมื่อส่วนเชื่อมต่อที่สำคัญทั้งหมดพร้อมใช้งาน (การเชื่อมต่อฐานข้อมูล แคช และบริการปลายทาง) อย่าใช้ URL ราก (/) เป็นเส้นทางตรวจสอบสถานะ หากเส้นทางดังกล่าวทำงานที่ใช้ทรัพยากรมากหรือต้องผ่านการยืนยันตัวตน
# Modify health check to accept 200-299
aws elbv2 modify-target-group \
--target-group-arn arn:aws:elasticloadbalancing:us-east-1:123456789:targetgroup/my-web-targets/abc123 \
--health-check-path /health \
--matcher HttpCode=200-299 \
--healthy-threshold-count 2 \
--unhealthy-threshold-count 3 \
--health-check-interval-seconds 15สถานะของเป้าหมาย: เริ่มต้น ปกติ ผิดปกติ
หลังจากลงทะเบียนแล้ว เป้าหมายจะเปลี่ยนผ่านสถานะต่อไปนี้:
- เริ่มต้น: ELB กำลังดำเนินการตรวจสอบสถานะครั้งแรก
- มีสถานะปกติ: ผ่านการตรวจสอบสถานะติดต่อกันตามจำนวนที่กำหนด และรับทราฟฟิก
- มีสถานะผิดปกติ: ไม่ผ่านการตรวจสอบสถานะติดต่อกันตามจำนวนที่กำหนด และถูกนำออกจากการหมุนเวียน
- กำลังระบายการเชื่อมต่อ: การยกเลิกการลงทะเบียนกำลังดำเนินอยู่ การเชื่อมต่อที่มีอยู่จะปล่อยให้เสร็จสิ้น แต่จะไม่มีการส่งการเชื่อมต่อใหม่มา
- ไม่ได้ใช้งาน: ลงทะเบียนอยู่ในกลุ่ม แต่ขณะนี้ไม่มีกฎของตัวรับฟังใดกำหนดเส้นทางมายังกลุ่มนี้
ตรวจสอบเมตริก CloudWatch UnHealthyHostCount และ HealthyHostCount เพื่อค้นหาปัญหาในกลุ่มเป้าหมายของคุณ
ความล่าช้าในการยกเลิกการลงทะเบียน (การระบายการเชื่อมต่อ)
ความล่าช้าในการยกเลิกการลงทะเบียน (เดิมเรียกว่า การระบายการเชื่อมต่อ) คือเวลาที่ ELB รอให้การเชื่อมต่อที่มีอยู่เสร็จสิ้น ก่อนยกเลิกการลงทะเบียนเป้าหมายในท้ายที่สุด ค่าเริ่มต้นคือ 300 วินาที (5 นาที) ในช่วงเวลานี้ จะไม่มีการส่งคำขอใหม่ไปยังเป้าหมายที่กำลังยกเลิกการลงทะเบียน แต่คำขอที่กำลังดำเนินการอยู่จะได้รับอนุญาตให้ทำงานจนเสร็จ
สำหรับการปรับใช้ที่รวดเร็วและการสิ้นสุดการทำงานของอินสแตนซ์จากการปรับขนาดอัตโนมัติ คุณอาจลดค่านี้เหลือ 30–60 วินาทีได้ หากแอปพลิเคชันของคุณจัดการคำขอได้รวดเร็ว สำหรับการดำเนินการที่ใช้เวลานาน เช่น การอัปโหลดไฟล์หรือการประมวลผลวิดีโอ ควรตั้งเวลาให้นานพอที่การดำเนินการเหล่านั้นจะเสร็จสิ้นโดยไม่ถูกขัดจังหวะ
# Reduce deregistration delay to 30 seconds
aws elbv2 modify-target-group-attributes \
--target-group-arn arn:aws:elasticloadbalancing:us-east-1:123456789:targetgroup/my-web-targets/abc123 \
--attributes Key=deregistration_delay.timeout_seconds,Value=30อัลกอริทึมการกระจายโหลด
กลุ่มเป้าหมายรองรับอัลกอริทึมการกระจายโหลดที่แตกต่างกัน:
- วนรอบ (ค่าเริ่มต้นของ ALB): กระจายคำขออย่างเท่าเทียมตามลำดับการวนรอบ เหมาะที่สุดเมื่อเป้าหมายทั้งหมดมีคุณสมบัติเทียบเท่ากัน
- คำขอที่ค้างอยู่น้อยที่สุด (ALB): ส่งคำขอใหม่แต่ละรายการไปยังเป้าหมายที่มีคำขอระหว่างดำเนินการน้อยที่สุด เหมาะกว่าสำหรับงานที่มีระยะเวลาแตกต่างกัน ซึ่งคำขอบางรายการใช้เวลานานกว่ารายการอื่น
- แฮชโฟลว์ (NLB): กระจายตามโพรโทคอล IP ต้นทาง/ปลายทาง พอร์ตต้นทาง/ปลายทาง และหมายเลขลำดับ TCP เพื่อให้แน่ใจว่าแพ็กเก็ตทั้งหมดในโฟลว์ TCP/UDP เดียวกันจะไปยังเป้าหมายเดียวกัน
สำหรับแอปพลิเคชันที่ใช้เซสชัน ซึ่งคำขอทั้งหมดจากผู้ใช้รายเดียวกันต้องไปยังเป้าหมายเดียวกัน ให้เปิดใช้เซสชันแบบติดหนึบแทนการพึ่งพาการกระจายแบบวนรอบ
กลุ่มเป้าหมายหลายกลุ่มและการกำหนดเส้นทางแบบถ่วงน้ำหนัก
กฎตัวรับฟัง ALB เพียงกฎเดียวสามารถกระจายทราฟฟิกไปยังกลุ่มเป้าหมายหลายกลุ่มด้วยกลุ่มเป้าหมายแบบถ่วงน้ำหนักได้ ตัวอย่างเช่น กำหนดเส้นทาง 90% ของทราฟฟิกไปยังกลุ่มเป้าหมายที่เสถียร และ 10% ไปยังกลุ่มเป้าหมายแบบคานารีสำหรับการปรับใช้แบบ blue-green โดยไม่ต้องใช้การกำหนดเส้นทางแบบถ่วงน้ำหนักของ Route 53
กลุ่มเป้าหมายแบบถ่วงน้ำหนักจะกำหนดค่าที่ระดับกฎตัวรับฟัง น้ำหนักเป็นค่าเปรียบเทียบกันเอง: 90/10 จะส่ง 90% ไปยังกลุ่มแรก และ 10% ไปยังกลุ่มที่สอง ซึ่งแตกต่างจากการกำหนดเส้นทางแบบถ่วงน้ำหนักระหว่าง ALB หลายตัว ในกรณีนี้ การถ่วงน้ำหนักเกิดขึ้นภายในกฎตัวรับฟังของ ALB เพียงตัวเดียว
กลุ่มเป้าหมายและการผสานรวมกับ ECS
เมื่อปรับใช้บริการ ECS ไว้ด้านหลัง ALB งาน ECS แต่ละงานจะลงทะเบียนกับกลุ่มเป้าหมายของ ALB โดยใช้ประเภทเป้าหมาย IP (สำหรับโหมดเครือข่าย awsvpc) บริการ ECS จะจัดการการลงทะเบียนและการยกเลิกการลงทะเบียนโดยอัตโนมัติ งานใหม่จะได้รับการลงทะเบียนหลังจากผ่านการตรวจสอบสถานะ และงานที่กำลังหยุดจะเริ่มความล่าช้าในการยกเลิกการลงทะเบียนก่อนสิ้นสุดการทำงาน
บริการ ECS แต่ละบริการสามารถลงทะเบียนด้วยการแทนที่พอร์ตที่ระบุได้ ทำให้บริการ ECS หลายบริการใช้ ALB เดียวกันผ่านกฎตัวรับฟังที่แตกต่างกัน (ตามเส้นทางหรือตามโฮสต์) และใช้กลุ่มเป้าหมายที่แตกต่างกัน ซึ่งเป็นรูปแบบทั่วไปของไมโครเซอร์วิส
การตรวจสอบสถานะของ NLB
พฤติกรรมการตรวจสอบสถานะของ NLB แตกต่างจาก ALB ดังนี้:
- NLB รองรับโพรโทคอลการตรวจสอบสถานะ TCP, HTTP และ HTTPS โดยไม่ขึ้นอยู่กับโพรโทคอลของตัวรับฟัง
- การตรวจสอบสถานะของ NLB จะส่งมาจากที่อยู่ IP ของ NLB ในแต่ละ AZ ดังนั้นควรตรวจสอบให้แน่ใจว่ากลุ่มความปลอดภัยอนุญาตทราฟฟิกจาก IP ของซับเน็ตของ NLB หรือใช้กลุ่มความปลอดภัยของ NLB เอง
- สำหรับการตรวจสอบสถานะด้วย TCP NLB จะถือว่าเป้าหมายมีสถานะปกติ หากเป้าหมายยอมรับการเชื่อมต่อ TCP บนพอร์ตที่ระบุ
- เป้าหมายของ NLB ที่ไม่ผ่านการตรวจสอบสถานะจะถูกนำออกตามแต่ละ AZ หากเป้าหมายทั้งหมดใน AZ ใดมีสถานะผิดปกติ NLB อาจกระจายโหลดข้ามโซนไปยังเป้าหมายที่มีสถานะปกติใน AZ อื่น (หากเปิดใช้การกระจายโหลดข้ามโซน)
ตรวจสอบความเข้าใจ
ทดสอบความเข้าใจแนวคิด AWS Solutions Architect (SAA-C03) จากบทเรียนนี้
สรุปบทเรียน
ในบทเรียนนี้ คุณได้เรียนรู้ว่า กลุ่มเป้าหมายประกอบด้วยเป้าหมายที่ลงทะเบียนและมีสถานะปกติ ซึ่งมีประเภทเป็นอินสแตนซ์ IP หรือ Lambda, การตรวจสอบสถานะจะตรวจสอบเป้าหมายเป็นระยะเพื่อนำเป้าหมายที่มีสถานะผิดปกติออกจากการหมุนเวียน และความล่าช้าในการยกเลิกการลงทะเบียนช่วยให้การระบายคำขอที่กำลังดำเนินการเป็นไปอย่างราบรื่นก่อนนำเป้าหมายออก บทถัดไปเราจะศึกษาเกี่ยวกับกฎตัวรับฟังและการกำหนดเส้นทางตามเส้นทางบน ALB
เรียนรู้ Cloud & IT Cert Prep ด้วย AI tutor — ฟรี
เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป
- คอร์ส
- 150
- บทเรียน
- 600
คำถามที่พบบ่อย
บทเรียน “กลุ่มเป้าหมายและการตรวจสอบสถานะ” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “กลุ่มเป้าหมายและการตรวจสอบสถานะ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cloud & IT Cert Prep ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cloud & IT Cert Prep มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “กลุ่มเป้าหมายและการตรวจสอบสถานะ”
ลงทะเบียนอินสแตนซ์ EC2 ที่อยู่ IP หรือฟังก์ชัน Lambda เป็นเป้าหมาย และกำหนดค่าเส้นทาง เกณฑ์ และช่วงเวลาสำหรับการตรวจสอบสถานะ คุณปฏิบัติ 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- ALB เทียบกับ NLB เทียบกับ GLB: ควรใช้แบบใด
- กลุ่มเป้าหมายและการตรวจสอบสถานะ
- กฎผู้รับฟังและการกำหนดเส้นทางตามเส้นทาง
- การสิ้นสุด SSL และเซสชันแบบยึดติด