นโยบายการปรับขนาด: การติดตามเป้าหมายและการปรับขนาดเป็นขั้น
กำหนดค่าการติดตามเป้าหมายเพื่อรักษาเป้าหมายการใช้ CPU และการปรับขนาดเป็นขั้นเพื่อตอบสนองต่อเกณฑ์การแจ้งเตือนของ CloudWatch
นโยบายการปรับขนาด: การติดตามเป้าหมายและการปรับขนาดเป็นขั้น เป็นบทเรียน AWS Solutions Architect ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน AWS Solutions Architect และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส AWS Solutions Architect มีบทเรียนทั้งหมด 4 บทเรียน
เหตุผลที่มีนโยบายการปรับขนาด
ความจุที่ต้องการแบบคงที่เหมาะเมื่อภาระงานคงที่ แต่การรับส่งข้อมูลจริงมีความผันผวน นโยบายการปรับขนาดช่วยให้ Auto Scaling Group ปรับความจุที่ต้องการโดยอัตโนมัติตามเมตริก AWS มีประเภทนโยบายแบบไดนามิกหลักสามประเภท ได้แก่ การปรับขนาดโดยติดตามเป้าหมาย การปรับขนาดตามขั้น และ การปรับขนาดแบบง่าย สำหรับการสอบ SAA-C03 สิ่งที่สำคัญที่สุดคือการทำความเข้าใจการติดตามเป้าหมายและการปรับขนาดตามขั้น
คำอธิบายการปรับขนาดโดยติดตามเป้าหมาย
การปรับขนาดโดยติดตามเป้าหมายทำงานคล้ายเทอร์โมสแตต คุณระบุเมตริกและค่าเป้าหมาย จากนั้น AWS จะคำนวณโดยอัตโนมัติว่าควรเพิ่มหรือลบอินสแตนซ์กี่รายการ เพื่อรักษาเมตริกให้อยู่ที่เป้าหมายนั้น ตัวอย่างเช่น หากกำหนดเป้าหมาย การใช้ CPU เฉลี่ย 50% และการใช้งานเพิ่มขึ้นเป็น 80% ASG จะเพิ่มอินสแตนซ์ให้เพียงพอเพื่อทำให้ CPU กลับมาอยู่ที่ 50% AWS จะจัดการทั้งการเพิ่มขนาดและการลดขนาดให้คุณ
aws autoscaling put-scaling-policy \
--auto-scaling-group-name 'MyAppASG' \
--policy-name 'TargetTrackingCPU50' \
--policy-type TargetTrackingScaling \
--target-tracking-configuration '{
"PredefinedMetricSpecification": {
"PredefinedMetricType": "ASGAverageCPUUtilization"
},
"TargetValue": 50.0
}'เมตริกที่กำหนดไว้ล่วงหน้าเทียบกับเมตริกแบบกำหนดเองสำหรับการติดตามเป้าหมาย
การติดตามเป้าหมายรองรับ เมตริกที่กำหนดไว้ล่วงหน้าหลายรายการตั้งแต่แรก ได้แก่ ASGAverageCPUUtilization, ASGAverageNetworkIn, ASGAverageNetworkOut และ ALBRequestCountPerTarget ซึ่งเฉพาะสำหรับ ALB สำหรับตัวชี้วัดประสิทธิภาพหลักเฉพาะแอปพลิเคชัน (ความลึกของคิว การเชื่อมต่อที่ใช้งานอยู่ เมตริกทางธุรกิจแบบกำหนดเอง) คุณสามารถระบุ เมตริก CloudWatch แบบกำหนดเองได้ เมตริกแบบกำหนดเองช่วยให้ควบคุมสิ่งที่ใช้ขับเคลื่อนการตัดสินใจปรับขนาดได้ละเอียดขึ้นมาก
ช่วงพักสำหรับการติดตามเป้าหมาย
หลังเหตุการณ์เพิ่มขนาด ASG จะรอ ช่วงพัก (ค่าเริ่มต้น 300 วินาที) ก่อนประเมินการเพิ่มขนาดครั้งถัดไป วิธีนี้เปิดโอกาสให้อินสแตนซ์ที่เพิ่งเปิดใช้งานมีเวลาเริ่มจัดการการรับส่งข้อมูล เพื่อให้เมตริกมีเสถียรภาพ ในทำนองเดียวกัน ช่วงพักของการลดขนาดจะป้องกันการยุติอินสแตนซ์เร็วเกินไปทันทีหลังเพิ่มความจุ สำหรับการติดตามเป้าหมาย AWS ยังแนะนำให้ใช้ ช่วงเตรียมพร้อม เพื่อไม่ให้อินสแตนซ์ใหม่ทำให้เมตริกเบี่ยงเบนก่อนเริ่มต้นอย่างสมบูรณ์
คำอธิบายการปรับขนาดตามขั้น
การปรับขนาดตามขั้นตอบสนองต่อการเตือนของ CloudWatch โดยเพิ่มหรือลบอินสแตนซ์ตามจำนวน เฉพาะเจาะจง โดยพิจารณาจากระดับที่เมตริกเกินเกณฑ์ คุณกำหนด การปรับตามขั้นหลายรายการ โดยแต่ละขั้นครอบคลุมช่วงของเมตริกและระบุการเปลี่ยนแปลงความจุ ตัวอย่างเช่น หาก CPU อยู่ที่ 60-70% ให้เพิ่ม 1 อินสแตนซ์ หาก CPU อยู่ที่ 70-90% ให้เพิ่ม 3 อินสแตนซ์ และหาก CPU เกิน 90% ให้เพิ่ม 5 อินสแตนซ์ วิธีนี้ทำให้ตอบสนองต่อระดับภาระงานที่แตกต่างกันได้เป็นลำดับและเหมาะสมตามสัดส่วน
การสร้างนโยบายการปรับขนาดตามขั้น
การปรับขนาดตามขั้นต้องมี การเตือนของ CloudWatchที่สร้างไว้ก่อน การเตือนจะตรวจสอบเมตริกและเปลี่ยนเป็นสถานะ ALARM เมื่อข้ามเกณฑ์ จากนั้นนโยบายการปรับขนาดจะใช้การปรับตามขั้นที่อ้างอิง โดยพิจารณาจากค่าของเมตริกเทียบกับเกณฑ์การเตือน คุณสามารถกำหนดได้ว่าประเภทการปรับจะเป็น ChangeInCapacity (เพิ่ม N), ExactCapacity (ตั้งเป็น N) หรือ PercentChangeInCapacity (ปรับขนาดขึ้นหรือลง N%)
# First create a CloudWatch alarm
aws cloudwatch put-metric-alarm \
--alarm-name 'HighCPU' \
--metric-name CPUUtilization \
--namespace AWS/EC2 \
--statistic Average \
--period 60 \
--threshold 60 \
--comparison-operator GreaterThanOrEqualToThreshold \
--dimensions Name=AutoScalingGroupName,Value=MyAppASG \
--evaluation-periods 2 \
--alarm-actions 'arn:aws:autoscaling:us-east-1:123456789:scalingPolicy:...'การกำหนดค่าการปรับตามขั้น
การปรับตามขั้นแต่ละรายการมี MetricIntervalLowerBound และอาจมี MetricIntervalUpperBound ขอบเขตเหล่านี้สัมพันธ์กับเกณฑ์การเตือน หากเกณฑ์การเตือนคือ CPU 60%: LowerBound=0, UpperBound=10 จะทำงานเมื่อ CPU อยู่ที่ 60-70%; LowerBound=10, UpperBound=null จะทำงานเมื่อ CPU เกิน 70% แนวทางแบบแบ่งชั้นนี้ช่วยให้การเพิ่มขึ้นของการรับส่งข้อมูลครั้งใหญ่ได้รับการเพิ่มความจุจำนวนมากทันที แทนที่จะรอรอบการเตือนหลายรอบ
# Step scaling policy with two steps
{
'StepAdjustments': [
{
'MetricIntervalLowerBound': 0,
'MetricIntervalUpperBound': 10,
'ScalingAdjustment': 2
},
{
'MetricIntervalLowerBound': 10,
'ScalingAdjustment': 5
}
],
'AdjustmentType': 'ChangeInCapacity'
}การปรับขนาดแบบง่าย: ทางเลือกแบบเก่า
การปรับขนาดแบบง่ายเป็นรุ่นก่อนหน้าของการปรับขนาดตามขั้น เช่นเดียวกับการปรับขนาดตามขั้น วิธีนี้ต้องใช้การเตือนของ CloudWatch แต่เมื่อถูกกระตุ้น จะเพิ่มหรือลบอินสแตนซ์ตามจำนวนคงที่ แล้วรอให้ช่วงพักทั้งหมดสิ้นสุดก่อนประเมินอีกครั้ง จึงตอบสนองได้ช้าเมื่อภาระงานเปลี่ยนแปลงอย่างรวดเร็ว ควรเลือกการปรับขนาดตามขั้นเพราะสามารถทำงานต่อเนื่องเมื่อเงื่อนไขแย่ลงโดยไม่ต้องรอช่วงพักทั้งหมด และตอบสนองตามสัดส่วน
การป้องกันการลดขนาดและการป้องกันอินสแตนซ์
บางครั้งคุณอาจต้องการป้องกันไม่ให้อินสแตนซ์บางรายการถูกยุติระหว่างการลดขนาด เช่น อินสแตนซ์ที่กำลังทำงานชุดหนึ่งซึ่งใช้เวลานาน คุณสามารถเปิดใช้ การป้องกันการลดขนาดของอินสแตนซ์สำหรับอินสแตนซ์แต่ละรายการผ่านคอนโซลหรือ CLI เมื่อ ASG เลือกอินสแตนซ์ที่จะยุติ ระบบจะข้ามอินสแตนซ์ที่ได้รับการป้องกัน อย่าลืมยกเลิกการป้องกันหลังงานเสร็จสิ้น มิฉะนั้น ASG อาจลดขนาดไม่ได้เลยหากอินสแตนซ์ทั้งหมดได้รับการป้องกัน
aws autoscaling set-instance-protection \
--auto-scaling-group-name 'MyAppASG' \
--instance-ids 'i-0abc123def456' \
--protected-from-scale-inการรวมการติดตามเป้าหมายกับการปรับขนาดตามขั้น
คุณสามารถเชื่อมต่อนโยบายการปรับขนาด หลายรายการกับ ASG เดียวได้ เมื่อมีทั้งนโยบายการติดตามเป้าหมายและการปรับขนาดตามขั้น ASG จะใช้นโยบายที่แนะนำการเพิ่มขนาดที่มีขนาด มากกว่า (ระมัดระวังมากที่สุด) สำหรับการลดขนาด จะใช้นโยบายที่แนะนำให้ลบอินสแตนซ์ น้อยที่สุด วิธีนี้ป้องกันไม่ให้ระบบแกว่งไปมาระหว่างสถานะที่จัดสรรทรัพยากรมากหรือน้อยเกินไป รูปแบบที่พบบ่อยคือใช้นโยบายการติดตามเป้าหมายสำหรับสถานะการทำงานปกติ และใช้นโยบายการปรับขนาดตามขั้นเพื่อป้องกันการเพิ่มขึ้นอย่างฉุกเฉิน
แนวทางปฏิบัติที่ดีสำหรับนโยบายการปรับขนาด
สำหรับแอปพลิเคชันเว็บส่วนใหญ่ ให้เริ่มด้วย การติดตามเป้าหมายบน CPU หรือจำนวนคำขอต่อเป้าหมาย ซึ่งต้องกำหนดค่าน้อยและ AWS จะจัดการการคำนวณให้ ใช้ การปรับขนาดตามขั้นเมื่อจำเป็นต้องตอบสนองต่อความเข้มข้นของภาระงานที่แตกต่างกันเป็นลำดับและตามสัดส่วน ควรกำหนด ความจุขั้นต่ำให้สูงพอรองรับการรับส่งข้อมูลพื้นฐานโดยไม่ต้องพึ่งการเพิ่มขนาด เนื่องจากการปรับขนาดต้องใช้เวลา ตรวจสอบเมตริก CloudWatch GroupDesiredCapacity และ GroupInServiceInstances เพื่อยืนยันว่านโยบายทำงานตามที่คาดไว้
ตรวจสอบความเข้าใจอย่างรวดเร็ว
ทดสอบความเข้าใจแนวคิด AWS Solutions Architect (SAA-C03) จากบทเรียนนี้
สรุปบทเรียน
ในบทเรียนนี้ คุณได้เรียนรู้ว่า การปรับขนาดโดยติดตามเป้าหมายจะคำนวณและใช้การเพิ่มหรือลดขนาดโดยอัตโนมัติ เพื่อรักษาเมตริกให้อยู่ที่ค่าที่ต้องการ (เช่น CPU 50%) การปรับขนาดตามขั้นจะตอบสนองในสัดส่วนที่มากขึ้นเมื่อเมตริกข้ามเกณฑ์ที่สูงขึ้น โดยใช้การปรับตามขั้นที่อาศัยการเตือนของ CloudWatch และ การรวมนโยบายไว้ใน ASG เดียวกันทำได้อย่างปลอดภัย เพราะ ASG จะใช้คำแนะนำการเพิ่มขนาดที่ระมัดระวังที่สุดและคำแนะนำการลดขนาดที่รุนแรงน้อยที่สุด ต่อไปเราจะสำรวจการปรับขนาดตามกำหนดเวลาและการปรับขนาดเชิงคาดการณ์สำหรับรูปแบบการรับส่งข้อมูลที่ทราบล่วงหน้า
คำถามที่พบบ่อย
บทเรียน “นโยบายการปรับขนาด: การติดตามเป้าหมายและการปรับขนาดเป็นขั้น” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “นโยบายการปรับขนาด: การติดตามเป้าหมายและการปรับขนาดเป็นขั้น” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส AWS Solutions Architect ให้อัปเกรดเป็น CoddyKit PRO คอร์ส AWS Solutions Architect มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “นโยบายการปรับขนาด: การติดตามเป้าหมายและการปรับขนาดเป็นขั้น”
กำหนดค่าการติดตามเป้าหมายเพื่อรักษาเป้าหมายการใช้ CPU และการปรับขนาดเป็นขั้นเพื่อตอบสนองต่อเกณฑ์การแจ้งเตือนของ CloudWatch คุณปฏิบัติ AWS Solutions Architect ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน AWS Solutions Architect หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน AWS Solutions Architect บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน
บทเรียน “นโยบายการปรับขนาด: การติดตามเป้าหมายและการปรับขนาดเป็นขั้น” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน AWS Solutions Architect นี้ได้ไหม
ได้ บทเรียน AWS Solutions Architect ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- เทมเพลตการเปิดใช้งานและการกำหนดค่า ASG
- นโยบายการปรับขนาด: การติดตามเป้าหมายและการปรับขนาดเป็นขั้น
- การปรับขนาดตามกำหนดเวลาและการปรับขนาดเชิงคาดการณ์
- การรีเฟรชอินสแตนซ์และฮุกวงจรชีวิต