ЁЯСп рдзрдбрд╛ 09 тАФ Auto Scaling: рджрд┐рд╡рд╕рднрд░ рдбреЗрд╕реНрдХрдЪреА рдпреЛрдЧреНрдп рд╕рдВрдЦреНрдпрд╛
ЁЯУН рддреБрдореНрд╣реА рдЗрдереЗ рдЖрд╣рд╛рдд: 12 рдкреИрдХреА рдзрдбрд╛ 09 ┬╖ рдорд╛рдЧреАрд▓: lesson-08-pricing ┬╖ рдкреБрдвреАрд▓: lesson-10-load-balancing
ЁЯУж рдпрд╛ рдмреНрд░рдБрдЪрдордзреНрдпреЗ рдХрд╛рдп рдЖрд╣реЗ
рдзрдбреЗ 01тАУ08, рдЖрдгрд┐ Auto Scaling group (ASG): min, max рдЖрдгрд┐ desired
рдбреЗрд╕реНрдХ, рд╕рд░рд╛рд╕рд░реА CPU рд╡рд░ target tracking, warm-up, рд╣рд│реВ рдЖрдгрд┐ рдХрд╛рд│рдЬреАрдкреВрд░реНрд╡рдХ
scale-in, рдЖрдгрд┐ health-check replacement тАФ рд╣реЗ рд╕рдЧрд│реЗ ec2/fleet.py рдордзреАрд▓
asg() рдорд┐рдирд┐рдЯрд╛рдорд┐рдирд┐рдЯрд╛рдиреЗ simulate рдХрд░рддреЗ.
ЁЯзТ 5 рд╡рд░реНрд╖рд╛рдВрдЪреНрдпрд╛ рдореБрд▓рд╛рд▓рд╛ рд╕рдордЬрд╛рд╡рд▓реНрдпрд╛рд╕рд╛рд░рдЦреЗ
рдЕрднреНрдпрд╛рд╕рд┐рдХреЗрдд рдПрдХ рдХрд╛рд│рдЬреАрд╡рд╛рд╣рдХ ЁЯСп рдЖрд╣реЗ, рдЖрдгрд┐ рддреНрдпрд╛рдЪреНрдпрд╛ clipboard рд╡рд░ рддреАрди рдЖрдХрдбреЗ рдЖрд╣реЗрдд: рдХрдзреАрд╣реА 2 рдкреЗрдХреНрд╖рд╛ рдХрдореА рдбреЗрд╕реНрдХ рдирд╛рд╣реАрдд, рдХрдзреАрд╣реА 6 рдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рдирд╛рд╣реАрдд, рдЖрдгрд┐ рдкреНрд░рддреНрдпреЗрдХ рдбреЗрд╕реНрдХ рд╕рд╛рдзрд╛рд░рдг рдирд┐рдореНрдорд╛ рд╡реНрдпрд╕реНрдд рдареЗрд╡рд╛ (50%).
рдЧрд░реНрджреА рдЖрд▓реА рдЖрдгрд┐ рдбреЗрд╕реНрдХ 80% рд╡реНрдпрд╕реНрдд рдЭрд╛рд▓реЗ рдХреА рдХрд╛рд│рдЬреАрд╡рд╛рд╣рдХ recipe card (рдзрдбрд╛ 03) рд╡рд░реВрди рдЖрдгрдЦреА рдбреЗрд╕реНрдХ рдЖрдгрддреЛ. рдирд╡реНрдпрд╛ рдбреЗрд╕реНрдХрдирд╛ рдореЛрдЬрдгреАрдд рдпреЗрдгреНрдпрд╛рдЖрдзреА рддрдпрд╛рд░ рд╣реЛрдгреНрдпрд╛рд╕рд╛рдареА (warm-up) рджреЛрди-рддреАрди рдорд┐рдирд┐рдЯреЗ рд▓рд╛рдЧрддрд╛рдд тАФ рдореНрд╣рдгреВрди рдШрд╛рдмрд░реВрди рдбреЗрд╕реНрдХрдорд╛рдЧреВрди рдбреЗрд╕реНрдХ рдорд╛рдЧрд╡рдгреНрдпрд╛рдРрд╡рдЬреА рдХрд╛рд│рдЬреАрд╡рд╛рд╣рдХ рдкреБрдиреНрд╣рд╛ рдирд┐рд░реНрдгрдп рдШреЗрдгреНрдпрд╛рдкреВрд░реНрд╡реА рддреНрдпрд╛рдВрдЪреА рд╡рд╛рдЯ рдкрд╛рд╣рддреЛ.
рдЧрд░реНрджреА рдЧреЗрд▓реА рдХреА рдХрд╛рд│рдЬреАрд╡рд╛рд╣рдХ рдбреЗрд╕реНрдХ рдПрдХреЗрдХ рдХрд░реВрди, рд╣рд│реВрд╣рд│реВ рдХрд╛рдврддреЛ, рдХрд╛рд░рдг рдЦреВрдк рдШрд╛рдИрдиреЗ рдХрд╛рдврд▓реЗ рддрд░ рд░рд╛рдВрдЧ рдкреБрдиреНрд╣рд╛ рд▓рд╛рдЧрддреЗ.
рдЖрдгрд┐ рдПрдЦрд╛рджрд╛ рдбреЗрд╕реНрдХ рдореЛрдбрд▓рд╛ рддрд░ рдХрд╛рд│рдЬреАрд╡рд╛рд╣рдХ рддреЛ рджреБрд░реБрд╕реНрдд рдХрд░рдд рдирд╛рд╣реА: рддреЛ рдмрд╛рд╣реЗрд░ рдиреЗрд▓рд╛ рдЬрд╛рддреЛ рдЖрдгрд┐ recipe card рд╡рд░реВрди рдмрдирд╡рд▓реЗрд▓рд╛ рдирд╡рд╛ рдбреЗрд╕реНрдХ рддреНрдпрд╛рдЪреА рдЬрд╛рдЧрд╛ рдШреЗрддреЛ.
ЁЯЧ║я╕П рдЖрдХреГрддреА
flowchart LR
lt["ЁЯУЗ launch template"]
asg["ЁЯСп Auto Scaling group<br/>min 2 ┬╖ max 6 ┬╖ target 50% CPU"]
cw["ЁЯУИ average CPU of serving desks"]
out["ЁЯУИ CPU 80% тЖТ launch 2<br/>warm up 2 min before they count"]
inn["ЁЯУЙ CPU 33% тЖТ remove ONE desk<br/>then wait тАФ slowly, on purpose"]
heal["ЁЯТе a desk fails its health check<br/>тЖТ terminated, a fresh one launches"]
lt --> asg
cw -->|"1 above target"| out --> asg
cw -->|"2 below target"| inn --> asg
heal -->|"3 replace, never repair"| asg
azs["ЁЯПв desks spread over AZ-a, AZ-b, AZ-c"]
asg --> azs
ЁЯЧ║я╕П рдХрд╛рдврд▓реЗрд▓реА рдЖрдХреГрддреА + рдПрдХ lab: https://school-edh.pages.dev/ec2/lesson-diagrams.html#l09
тЭУ рдХрд╛рдп
- Auto Scaling group тАФ launch template рд╡рд░реВрди launch рдХреЗрд▓реЗрд▓реНрдпрд╛ instances рдЪрд╛ рд╕рдВрдЪ, рддреБрдореНрд╣реА рджрд┐рд▓реЗрд▓реНрдпрд╛ subnets (AZs) рдордзреНрдпреЗ рдкрд╕рд░рд▓реЗрд▓рд╛, min рдЖрдгрд┐ max рджрд░рдореНрдпрд╛рди рдареЗрд╡рд▓реЗрд▓рд╛, рдЖрдгрд┐ desired capacity рдХрдбреЗ рдкрд╛рд╣рдгрд╛рд░рд╛. рддреЛ AZs рдордзреНрдпреЗ рдкреБрдиреНрд╣рд╛ рд╕рдорддреЛрд▓ рд╕рд╛рдзрддреЛ.
- Scaling policies тАФ target tracking (thermostat: "рд╕рд░рд╛рд╕рд░реА CPU 50% рдареЗрд╡рд╛" тАФ рд╕рд╣рд╕рд╛ рдкрд╣рд┐рд▓реА рдирд┐рд╡рдб), step scaling (рдкреНрд░рддреНрдпреЗрдХ alarm рдкрд╛рддрд│реАрд╕рд╛рдареА рд╕реНрдкрд╖реНрдЯ рдЯрдкреНрдкреЗ), scheduled ("рд╢рд╛рд│реЗрдЪреНрдпрд╛ рджрд┐рд╡рд╢реА рд╕рдХрд╛рд│реА 8 рд╡рд╛рдЬрддрд╛ 8 рдбреЗрд╕реНрдХ"), рдЖрдгрд┐ predictive (рд░реЛрдЬрдЪреЗ рдирдореБрдиреЗ рд╢рд┐рдХреВрди рдЖрдзреАрдЪ scale рдХрд░рддреЛ).
- Warm-up тАФ рдирд╡реНрдпрд╛ instance рдЪреЗ metrics рддреНрдпрд╛рдЪрд╛ warm-up рд╡реЗрд│ рд╕рдВрдкреЗрдкрд░реНрдпрдВрдд рд╕рд░рд╛рд╕рд░реАрддреВрди рд╡рдЧрд│рд▓реЗ рдЬрд╛рддрд╛рдд (group рдЪрд╛ default instance warm-up), рдореНрд╣рдгрдЬреЗ boot рд╣реЛрдгрд╛рд░рд╛ рдбреЗрд╕реНрдХ рд░рд┐рдХрд╛рдорд╛ рджрд┐рд╕рдд рдирд╛рд╣реА рдЖрдгрд┐ рдЧрд░реНрджреА рджреЛрдирджрд╛ рдореЛрдЬрд▓реА рдЬрд╛рдд рдирд╛рд╣реА.
- Scale-in рд╕рд╛рд╡рдз рдЕрд╕рддреЛ тАФ target tracking рдкрдЯрдХрди scale out рдХрд░рддреЛ рдЖрдгрд┐ рд╣рд│реВрд╣рд│реВ scale in рдХрд░рддреЛ; рдЦреВрдк рдШрд╛рдИрдиреЗ рдХрд╛рдврд▓реНрдпрд╛рд╕ flapping рд╣реЛрддреЗ. Instance scale-in protection рдЖрдгрд┐ lifecycle hooks рдореБрд│реЗ рдбреЗрд╕реНрдХ рдЬрд╛рдгреНрдпрд╛рдЖрдзреА рдХрд╛рдо рдкреВрд░реНрдг рдХрд░рддрд╛ рдпреЗрддреЗ.
- Health checks тАФ default рдореНрд╣рдгреВрди
EC2(status checks, рдзрдбрд╛ 11), рдХрд┐рдВрд╡рд╛ELB(load balancer рдЪрд╛ health check, рдзрдбрд╛ 10) тАФ launch рдирдВрддрд░ рдПрдХрд╛ grace period рд╕рд╣. Unhealthy instances terminate рдХрд░реВрди рдмрджрд▓рд▓реЗ рдЬрд╛рддрд╛рдд. - Model рдордзрд▓реЗ рдмрд╛рд░реАрдХ рдЕрдХреНрд╖рд░ тАФ рдЦрд░реЗ target tracking рдЕрдиреЗрдХ data points рд╡рд░ CloudWatch alarms рд╡рд╛рдкрд░рддреЗ, рддреНрдпрд╛рдореБрд│реЗ рддреЗ рдПрдХрд╛ tick рдордзреНрдпреЗ рдирд╡реНрд╣реЗ рддрд░ рдХрд╛рд╣реА рдорд┐рдирд┐рдЯрд╛рдВрдд рдкреНрд░рддрд┐рд╕рд╛рдж рджреЗрддреЗ; lab рдордзрд▓реА рдард░рд▓реЗрд▓реА 3 рдорд┐рдирд┐рдЯрд╛рдВрдЪреА scale-in рдкреНрд░рддреАрдХреНрд╖рд╛ рддреНрдпрд╛ рд╕рд╛рд╡рдзрдЧрд┐рд░реАрдЪреЗ рд╕реЛрдкреЗ рд░реВрдк рдЖрд╣реЗ.
ЁЯдФ рдХрд╛
рдХрд╛рд░рдг peak рд╕рд╛рдареА рдЖрдХрд╛рд░рд▓реЗрд▓рд╛ fleet рд░рд╛рддреНрд░рднрд░ рдкреИрд╕реЗ рд╡рд╛рдпрд╛ рдШрд╛рд▓рд╡рддреЛ, рдЖрдгрд┐ рд╕рд░рд╛рд╕рд░реАрд╕рд╛рдареА рдЖрдХрд╛рд░рд▓реЗрд▓рд╛ fleet рджреБрдкрд╛рд░рдЪреНрдпрд╛ рдЬреЗрд╡рдгрд╛рдЪреНрдпрд╛ рд╡реЗрд│реА рдХреЛрд╕рд│рддреЛ. ASG рдбреЗрд╕реНрдХрдЪреА рд╕рдВрдЦреНрдпрд╛ рдорд╛рдЧрдгреАрдорд╛рдЧреЗ рдЪрд╛рд▓рд╛рдпрд▓рд╛ рд▓рд╛рд╡рддреЛ тАФ рдЖрдгрд┐ рддрд┐рддрдХреЗрдЪ рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рдореНрд╣рдгрдЬреЗ, рдХреЛрдгрд╛рд▓рд╛рд╣реА page рди рдХрд░рддрд╛ рдореЛрдбрд▓реЗрд▓реЗ рдбреЗрд╕реНрдХ рдирд╛рд╣реАрд╕реЗ рдХрд░рддреЛ.
ЁЯФз рдХрд╕реЗ (рдпрд╛ repo рдордзреНрдпреЗ)
ec2/fleet.py рдордзреАрд▓
asg(load, target, min_size, max_size, capacity, warmup, fail_at, scale_in_cooldown)
рджрд░ рдорд┐рдирд┐рдЯрд╛рдЪреА рдорд╛рдЧрдгреА рдШреЗрддреЗ (рдПрдХ рдбреЗрд╕реНрдХ 100 units рд╕реЗрд╡рд╛ рджреЗрддреЛ), рдлрдХреНрдд рд╕реЗрд╡рд╛ рджреЗрдгрд╛рд▒реНрдпрд╛ рдбреЗрд╕реНрдХрд╡рд░
CPU рдореЛрдЬрддреЗ, min рдЖрдгрд┐ max рдЪреНрдпрд╛ рдЖрдд desired рд▓рд╛ ceil(serving ├Ч CPU / target) рдареЗрд╡рддреЗ,
warm up рд╣реЛрдгрд╛рд░реЗ рдбреЗрд╕реНрдХ launch рдХрд░рддреЗ, рдерд╛рдВрдмрдд рдерд╛рдВрдмрдд рдПрдХреЗрдХ рдбреЗрд╕реНрдХ рдХрд╛рдврддреЗ, рдЖрдгрд┐ рдирд┐рд╡рдбрд▓реЗрд▓реНрдпрд╛ рдорд┐рдирд┐рдЯрд╛рд▓рд╛
рдПрдЦрд╛рджрд╛ рдбреЗрд╕реНрдХ рдирд╛рдкрд╛рд╕ рдХрд░реВ рд╢рдХрддреЗ. ec2/demo.py рдордзреАрд▓ scaling() 15 рдорд┐рдирд┐рдЯрд╛рдВрдЪреА
рд╕рдХрд╛рд│ рдЪрд╛рд▓рд╡рддреЗ, рдЬреНрдпрд╛рдд рдорд┐рдирд┐рдЯ 9 рд▓рд╛ рдПрдХ рдмрд┐рдШрд╛рдб рд╣реЛрддреЛ. Test L09 рддрдкрд╛рд╕рддреЗ рдХреА group рдХрдзреАрд╣реА 2тАУ6 рдЪреНрдпрд╛ рдмрд╛рд╣реЗрд░ рдЬрд╛рдд рдирд╛рд╣реА.
ЁЯзк рдХрд░реВрди рдкрд╛рд╣рд╛
python3 ec2/demo.py scaling
python3 - <<'EOF'
import sys; sys.path.insert(0, "ec2"); import fleet
# a lunchtime rush, with a higher target (70%) and a slower warm-up (3 min)
rush = [100, 100, 250, 400, 400, 400, 150, 100, 100, 100, 100, 100]
for r in fleet.asg(rush, target=70, warmup=3):
print(f"min {r['minute']:>2} demand {r['demand']:>3} ┬╖ desks {r['desks']} ({r['serving']} serving) ┬╖ CPU {r['cpu']:>3}% {r['note']}")
EOF
рдЦрд▒реНрдпрд╛ account рд╡рд░ (AWS credentials, рдзрдбрд╛ 03 рдордзрд▓рд╛ school-web launch template
рдЖрдгрд┐ рддреБрдордЪреЗ рд╕реНрд╡рддрдГрдЪреЗ subnet IDs рд▓рд╛рдЧрддрд╛рдд; instances рдЪрд╛рд▓реВ рдЕрд╕реЗрдкрд░реНрдпрдВрдд рдмрд┐рд▓ рд▓рд╛рдЧрддреЗ тАФ рдХрд╛рдо рдЭрд╛рд▓реНрдпрд╛рд╡рд░ min,
max рдЖрдгрд┐ desired 0 рдХрд░рд╛, рдХрд┐рдВрд╡рд╛ group delete рдХрд░рд╛):
aws autoscaling create-auto-scaling-group --auto-scaling-group-name school-web \
--launch-template 'LaunchTemplateName=school-web,Version=$Latest' \
--min-size 2 --max-size 6 --desired-capacity 2 --default-instance-warmup 120 \
--vpc-zone-identifier "subnet-0aaa1111,subnet-0bbb2222,subnet-0ccc3333"
aws autoscaling put-scaling-policy --auto-scaling-group-name school-web \
--policy-name cpu-50 --policy-type TargetTrackingScaling \
--target-tracking-configuration '{"PredefinedMetricSpecification":{"PredefinedMetricType":"ASGAverageCPUUtilization"},"TargetValue":50.0}'
aws autoscaling describe-scaling-activities --auto-scaling-group-name school-web --max-items 5
aws autoscaling delete-auto-scaling-group --auto-scaling-group-name school-web --force-delete
тЬЕ рддрдкрд╛рд╕рд╛ тАФ рддреБрдореНрд╣рд╛рд▓рд╛ рдХрд╛рдп рджрд┐рд╕рд╛рдпрд▓рд╛ рд╣рд╡реЗ
scaling рдордзреНрдпреЗ рдорд┐рдирд┐рдЯ 3 рд▓рд╛ desks 4 (2 serving) ┬╖ CPU 80% ЁЯУИ CPU 80% > target 50% тЖТ launch 2 (warming up 2 min) рджрд┐рд╕рддреЗ,
рдорд┐рдирд┐рдЯ 5 рд▓рд╛ рдЖрдгрдЦреА 2 launch рд╣реЛрдКрди рдХрдорд╛рд▓ 6 рдЧрд╛рдард▓реЗ рдЬрд╛рддреЗ, рдорд┐рдирд┐рдЯ 7 рд▓рд╛ desks 6 (6 serving) ┬╖ CPU 50%,
рдорд┐рдирд┐рдЯ 8 рд▓рд╛ ЁЯУЙ quiet тЖТ scale in ONE desk, рдорд┐рдирд┐рдЯ 9 рд▓рд╛
ЁЯТе a desk fails its health check тЖТ terminated; a fresh one launches and warms up
(5 рдбреЗрд╕реНрдХ, 4 рд╕реЗрд╡рд╛ рджреЗрдгрд╛рд░реЗ), рдЖрдгрд┐ рдорд┐рдирд┐рдЯ 11 рд╡ 14 рд▓рд╛ рд╣рд│реВ scale-in рд╣реЛрдКрди
desks 3 (3 serving) рдкрд░реНрдпрдВрдд рдпреЗрддреЗ. рддреБрдордЪреА рдЧрд░реНрджреА: рдорд┐рдирд┐рдЯ 3 рд▓рд╛ рдлрдХреНрдд 1 рдбреЗрд╕реНрдХ launch рд╣реЛрддреЛ (CPU
100% рд╡рд░ рдерд╛рдВрдмрддреЛ, рддреНрдпрд╛рдореБрд│реЗ 250 рдЪреА рдорд╛рдЧрдгреА рдХрдореА рджрд╛рдЦрд╡рддреЛ), рдорд┐рдирд┐рдЯ 4тАУ5 рддреЛ warm up рд╣реЛрдгреНрдпрд╛рдЪреА
рд╡рд╛рдЯ рдкрд╛рд╣рддрд╛рдд, рдорд┐рдирд┐рдЯ 6 рд▓рд╛ рдЖрдгрдЦреА 2 launch рд╣реЛрддрд╛рдд (desks 5 (3 serving)), рдЖрдгрд┐ scale-in рдорд┐рдирд┐рдЯ 9 рд╡ 12 рд▓рд╛
рдПрдХреЗрдХ рдбреЗрд╕реНрдХ рдХрд░реВрди рд╣реЛрддреЛ.
ЁЯПБ рддреБрдореНрд╣реА рдЖрддреНрддрд╛рдЪ рдХрд╛рдп рд╕рд┐рджреНрдз рдХреЗрд▓реЗ
рддреБрдореНрд╣реА fleet рдорд┐рдирд┐рдЯрд╛рдорд┐рдирд┐рдЯрд╛рдиреЗ рд╕рдордЬреВрди рдШреЗрдК рд╢рдХрддрд╛: рддреЛ рдЙрдбреНрдпрд╛ рдорд╛рд░рдд рдХрд╛ рд╡рд╛рдврддреЛ, warm-up рдЪреА рд╡рд╛рдЯ рдХрд╛ рдкрд╛рд╣рддреЛ, рд╣рд│реВрд╣рд│реВ рдХрд╛ рд▓рд╣рд╛рди рд╣реЛрддреЛ, рдЖрдгрд┐ рдореЛрдбрд▓реЗрд▓рд╛ рдбреЗрд╕реНрдХ рдХреЛрдгреАрд╣реА рд╣рд╛рдд рди рд▓рд╛рд╡рддрд╛ рдХрд╕рд╛ рдмрджрд▓рд▓рд╛ рдЬрд╛рддреЛ.
тЪая╕П рдиреЗрд╣рдореАрдЪреНрдпрд╛ рдЪреБрдХрд╛
- рдбреЗрд╕реНрдХрд╡рд░ sessions рдХрд┐рдВрд╡рд╛ files рдареЗрд╡рдгрд╛рд▒реНрдпрд╛ app рд▓рд╛ scale рдХрд░рдгреЗ тАФ рдЖрдзреА рддреЗ stateless рдХрд░рд╛ (sessions database рдХрд┐рдВрд╡рд╛ cache рдордзреНрдпреЗ, files S3 рдордзреНрдпреЗ)
- "рдкреИрд╕реЗ рд╡рд╛рдЪрд╡рдгреНрдпрд╛рд╕рд╛рдареА" min = max = 1 тАФ рджреБрд╕рд░рд╛ AZ рдирд╛рд╣реА, рдЬрд╛рджрд╛ рдЬрд╛рдЧрд╛ рдирд╛рд╣реА, рдЖрдкреЛрдЖрдк рдмрд░реЗ рд╣реЛрдгреЗ рдирд╛рд╣реА
- рдЦрд▒реНрдпрд╛ boot рд╡реЗрд│реЗрдкреЗрдХреНрд╖рд╛ рдХрдореА warm-up рдХрд┐рдВрд╡рд╛ grace period тАФ рд╕реБрд░реВ рд╣реЛрдд рдЕрд╕рддрд╛рдирд╛рдЪ рдбреЗрд╕реНрдХ рдорд╛рд░рд▓реЗ рдЬрд╛рддрд╛рдд
- рдЕрдбрдерд│рд╛ database рдХрд┐рдВрд╡рд╛ queue рдЕрд╕рддрд╛рдирд╛ CPU рд╡рд░ scaling рдХрд░рдгреЗ тАФ рдЬреНрдпрд╛ metric рд▓рд╛ рддреНрд░рд╛рд╕ рд╣реЛрддреЛ рддреНрдпрд╛рд╡рд░ scale рдХрд░рд╛
- рдЪрд╛рд▓реВ instance рд╣рд╛рддрд╛рдиреЗ рдмрджрд▓рдгреЗ тАФ рдкреБрдврдЪреНрдпрд╛ рдмрджрд▓реА рдбреЗрд╕реНрдХрдордзреНрдпреЗ рддреБрдордЪрд╛ рдмрджрд▓ рдирд╕реЗрд▓
ЁЯПн рдкреНрд░рддреНрдпрдХреНрд╖ рд╡рд╛рдкрд░рд╛рдд рд╣реЗ рдХрд╛ рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ: рдЬрд╡рд│рдкрд╛рд╕ рдкреНрд░рддреНрдпреЗрдХ EC2 web tier рдореНрд╣рдгрдЬреЗ load balancer рдорд╛рдЧреЗ рддреАрди AZs рдордзреНрдпреЗ рдкрд╕рд░рд▓реЗрд▓рд╛ ASG, target tracking рдЖрдгрд┐ ELB health checks рд╕рд╣. рддреНрдпрд╛рдореБрд│реЗ "рдкрд╣рд╛рдЯреЗ 3 рд╡рд╛рдЬрддрд╛ server рдореЗрд▓рд╛" рд╣рд╛ рдлреЛрди рдХреЙрд▓ рди рд░рд╛рд╣рддрд╛ activity history рдордзрд▓реА рдПрдХ рдУрд│ рдмрдирддреЛ.
тПня╕П рдкреБрдвреЗ
рд╕рд╣рд╛ рдбреЗрд╕реНрдХ, рдкрд╛рд╣реБрдгреНрдпрд╛рдВрд╕рд╛рдареА рдПрдХрдЪ рдкрддреНрддрд╛. Load balancing: рдПрдХ reception, рдЖрдгрд┐ рдлрдХреНрдд рдирд┐рд░реЛрдЧреА рдбреЗрд╕реНрдХрдирд╛рдЪ рдкрд╛рд╣реБрдгреЗ рдорд┐рд│рддрд╛рдд.
git checkout lesson-10-load-balancing