ЁЯЫ╡ рдзрдбрд╛ 02 тАФ Instance types: рдХрд╛рдорд╛рд╕рд╛рдареА рдпреЛрдЧреНрдп рд╡рд╛рд╣рди
ЁЯУН рддреБрдореНрд╣реА рдЗрдереЗ рдЖрд╣рд╛рдд: 12 рдкреИрдХреА рдзрдбрд╛ 02 ┬╖ рдорд╛рдЧреЗ: lesson-01-why-ec2 ┬╖ рдкреБрдвреЗ: lesson-03-amis-launch
ЁЯУж рдпрд╛ рдмреНрд░рдБрдЪрдордзреНрдпреЗ рдХрд╛рдп рдЖрд╣реЗ
рдзрдбрд╛ 01, рдЖрдгрд┐ m7g.large рд╕рд╛рд░рдЦреЗ рдирд╛рд╡ рдХрд╕реЗ рд╡рд╛рдЪрд╛рдпрдЪреЗ, рд░реЛрдЬ рднреЗрдЯрдгрд╛рд▒реНрдпрд╛ рдЪрд╛рд░ families,
Graviton рд╕реНрд╡рд╕реНрдд рдХрд╛ рдЖрд╣реЗ, рдЖрдгрд┐ CPU credits рдЪреА burstable рдЗрдВрдзрди рдЯрд╛рдХреА, рдЬрд┐рдЪреНрдпрд╛рдореБрд│реЗ
t3.micro рдПрдХ рддрд╛рд╕ рд╡реЗрдЧрд╡рд╛рди рдЪрд╛рд▓рддреЛ рдЖрдгрд┐ рддреНрдпрд╛рдирдВрддрд░ рдордВрдж рд╣реЛрддреЛ.
ЁЯзТ 5 рд╡рд░реНрд╖рд╛рдВрдЪреНрдпрд╛ рдореБрд▓рд╛рд▓рд╛ рд╕рдордЬрд╛рд╡рд▓реНрдпрд╛рд╕рд╛рд░рдЦреЗ
рд╢рд╛рд│рд╛ рд▓реЛрдХрд╛рдВрдирд╛ рдХрд╛рдорд╛рд╕рд╛рдареА рдмрд╛рд╣реЗрд░ рдкрд╛рдард╡рддреЗ. Post office рдордзреНрдпреЗ рдкрддреНрд░ рдЯрд╛рдХрд╛рдпрдЪреЗ? Scooter ЁЯЫ╡. рдЖрдард╡рдбреНрдпрд╛рдЪрд╛ рдмрд╛рдЬрд╛рд░? Family car ЁЯЪЧ. рд╡реЗрд│реЗрд╢реА рд╢рд░реНрдпрдд? Racing car ЁЯПОя╕П. рдЧреНрд░рдВрдерд╛рд▓рдп рд╣рд▓рд╡рд╛рдпрдЪреЗ? рдЯреНрд░рдХ ЁЯЪЪ. рдкрддреНрд░рд╛рд╕рд╛рдареА рдЯреНрд░рдХ рд╡рд╛рдкрд░рд▓рд╛ рддрд░ рдкреИрд╕реЗ рд╡рд╛рдпрд╛ рдЬрд╛рддрд╛рдд; рдЧреНрд░рдВрдерд╛рд▓рдпрд╛рд╕рд╛рдареА scooter рд╡рд╛рдкрд░рд▓реА рддрд░ рдХрд╛рдо рдХрдзреАрдЪ рд╕рдВрдкрдд рдирд╛рд╣реА.
EC2 рдбреЗрд╕реНрдХрдЪреЗрд╣реА рддрд╕реЗрдЪ рдЖрд╣реЗ: рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдХрд╛рдорд╛рдВрд╕рд╛рдареА рдмрдирд╡рд▓реЗрд▓реНрдпрд╛ families, рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ sizes рдордзреНрдпреЗ.
Scooter рдордзреНрдпреЗ рдПрдХ рдЧрдВрдордд рдЖрд╣реЗ. рддрд┐рдЪреА рдПрдХ рдЫреЛрдЯреА рдЗрдВрдзрди рдЯрд╛рдХреА тЫ╜ рдЖрд╣реЗ, рдЬреА рддреБрдореНрд╣реА рд╣рд│реВ
рдЪрд╛рд▓рд╡рддрд╛ рддреЗрд╡реНрд╣рд╛ рд╣рд│реВрд╣рд│реВ рднрд░рддреЗ. рдкреВрд░реНрдг рд╡реЗрдЧрд╛рдиреЗ рдЪрд╛рд▓рд╡рд╛ рдЖрдгрд┐ рддреА рд░рд┐рдХрд╛рдореА рд╣реЛрддреЗ; рдПрдХрджрд╛ рд░рд┐рдХрд╛рдореА рдЭрд╛рд▓реА рдХреА
рдЯрд╛рдХреА рдкреБрдиреНрд╣рд╛ рднрд░реЗрдкрд░реНрдпрдВрдд scooter рдлрдХреНрдд рдЪрд╛рд▓рдгреНрдпрд╛рдЪреНрдпрд╛ рд╡реЗрдЧрд╛рдиреЗ рд░реЗрдВрдЧрд╛рд│рддреЗ. рддреА рдЯрд╛рдХреА рдореНрд╣рдгрдЬреЗ
CPU credits, рдЖрдгрд┐ рдореНрд╣рдгреВрдирдЪ рддрд╛рд╕рднрд░ рдЙрдбрдгрд╛рд░рд╛ t3.micro рдЕрдЪрд╛рдирдХ
рд░реЗрдВрдЧрд╛рд│реВ рд▓рд╛рдЧрддреЛ.
ЁЯЧ║я╕П рдЖрдХреГрддреА
flowchart LR
name["ЁЯП╖я╕П m7g.large"]
fam["m = family<br/>general ЁЯЪЧ"]
gen["7 = generation"]
attr["g = Graviton (ARM)"]
size["large = size<br/>2 vCPU ┬╖ 8 GiB"]
name --> fam
name --> gen
name --> attr
name --> size
t3["ЁЯЫ╡ t3.micro: tank of CPU credits<br/>earn 12/h ┬╖ hold 288"]
full["hour 1 at 100% тЖТ 36 credits left"]
empty["hour 2 тЖТ 0 credits тЖТ throttled to 10% baseline"]
t3 -->|"1 burst"| full -->|"2 tank empty"| empty
ЁЯЧ║я╕П рдХрд╛рдврд▓реЗрд▓реА рдЖрдХреГрддреА + рдПрдХ lab: https://school-edh.pages.dev/ec2/lesson-diagrams.html#l02
тЭУ рдХрд╛рдп
- рдирд╛рд╡ рд╡рд╛рдЪрдгреЗ
m7g.large: familym, generation7, attributesg(Graviton / ARM), рдордЧ рдмрд┐рдВрджреВрдирдВрддрд░ size. рддреБрдореНрд╣рд╛рд▓рд╛ рджрд┐рд╕рддреАрд▓ рдЕрд╢реА рдЗрддрд░ attribute рдЕрдХреНрд╖рд░реЗ:iIntel,aAMD,dlocal NVMe instance store (рдзрдбрд╛ 04),nрдЬрд╛рд╕реНрддреАрдЪрд╛ network bandwidth. - Families:
tburstable ЁЯЫ╡ (рдЫреЛрдЯреА, рдЕрдзреВрдирдордзреВрди рд╡рд╛рдврдгрд╛рд░реА рдХрд╛рдореЗ),mgeneral purpose ЁЯЪЧ (рд╕рдВрддреБрд▓рд┐рдд тАФ рдкрд╣рд┐рд▓рд╛ рдЕрдВрджрд╛рдЬ рд╣рд╛рдЪ),ccompute optimised ЁЯПОя╕П (рдкреНрд░рддреНрдпреЗрдХ GiB рдорд╛рдЧреЗ рдЬрд╛рд╕реНрдд CPU),rmemory optimised ЁЯЪЪ (рдкреНрд░рддреНрдпреЗрдХ CPU рдорд╛рдЧреЗ рдЬрд╛рд╕реНрдд GiB). рдЖрдгрдЦреАрд╣реА рдЖрд╣реЗрдд:istorage,g/pGPUs,xрдЦреВрдк рдореЛрдареА memory. - Sizes рдкреНрд░рддреНрдпреЗрдХ рдкрд╛рдпрд░реАрд╡рд░ рд╕рд╛рдзрд╛рд░рдг рджреБрдкреНрдкрдЯ рд╣реЛрддрд╛рдд:
large(2 vCPU) тЖТxlarge(4) тЖТ2xlarge(8) тАж рдЖрдгрд┐ рдХрд┐рдВрдорддрд╣реА рд╕реЛрдмрдд рджреБрдкреНрдкрдЯ рд╣реЛрддреЗ. рдПрдХ vCPU рдореНрд╣рдгрдЬреЗ рдПрдХ hardware thread. - Graviton (
g) тАФ AWS рдЪреЗ рд╕реНрд╡рддрдГрдЪреЗ ARM processors. рдпрд╛ lab рдЪреНрдпрд╛ рдЕрдВрджрд╛рдЬреЗ рдХрд┐рдорддреАрдВрдиреБрд╕рд╛рд░m7g.largeрд╣рд╛m7i.largeрдкреЗрдХреНрд╖рд╛ рджрд░ рддрд╛рд╕рд╛рд▓рд╛ рд╕реБрдорд╛рд░реЗ 19% рд╕реНрд╡рд╕реНрдд рдЖрд╣реЗ, рдЖрдгрд┐ рдмрд▒реНрдпрд╛рдЪрджрд╛ рдкреНрд░рддрд┐ dollar рдЬрд╛рд╕реНрдд рд╡реЗрдЧрд╡рд╛рди тАФ рдкрдг рддреБрдордЪреЗ software рдЖрдгрд┐ AMIarm64рд╕рд╛рдареА build рдХреЗрд▓реЗрд▓реЗ рдЕрд╕рд▓реЗ рдкрд╛рд╣рд┐рдЬреЗрдд. - Burstable (T family) тАФ рдХрдореА baseline (
t3.microрд╕рд╛рдареА рдкреНрд░рддрд┐ vCPU 10%) рдЖрдгрд┐ CPU credits:t3.microрддрд╛рд╕рд╛рд▓рд╛ 12 credits рдХрдорд╛рд╡рддреЛ, рдЬрд╛рд╕реНрддреАрдд рдЬрд╛рд╕реНрдд 288 рд╕рд╛рдард╡рддреЛ, рдЖрдгрд┐ 1 credit = 1 vCPU 100% рд╡рд░ 1 рдорд┐рдирд┐рдЯ. Standard mode рдордзреНрдпреЗ balance рд░рд┐рдХрд╛рдорд╛ рдЭрд╛рд▓рд╛ рдХреА рддреБрдореНрд╣рд╛рд▓рд╛ baseline рдкрд░реНрдпрдВрдд throttle рдХреЗрд▓реЗ рдЬрд╛рддреЗ. Unlimited mode рдордзреНрдпреЗ (T3 рдЖрдгрд┐ T4g рд╕рд╛рдареА default) throttle рд╣реЛрдд рдирд╛рд╣реА тАФ рддреНрдпрд╛рдРрд╡рдЬреА рдЬрд╛рд╕реНрддреАрдЪреНрдпрд╛ рд╡рд╛рдкрд░рд╛рдЪреЗ рд╡реЗрдЧрд│реЗ рдкреИрд╕реЗ рднрд░рддрд╛. рдЯрд╛рдХреА рддреБрдореНрд╣рд╛рд▓рд╛ рджрд┐рд╕рд╛рд╡реА рдореНрд╣рдгреВрди lab standard mode рдЪреЗ model рд╡рд╛рдкрд░рддреЗ. - рдкреНрд░рддреНрдпреЗрдХ type рдкреНрд░рддреНрдпреЗрдХ Region рдХрд┐рдВрд╡рд╛ AZ рдордзреНрдпреЗ рдЕрд╕рддреЛрдЪ рдЕрд╕реЗ рдирд╛рд╣реА тАФ design рдХрд░рдгреНрдпрд╛рдЖрдзреА рддрдкрд╛рд╕рд╛.
ЁЯдФ рдХрд╛
рдХрд╛рд░рдг instance type рдореНрд╣рдгрдЬреЗрдЪ рдмрд┐рд▓рд╛рдЪрд╛ рдЖрдгрд┐ performance рдЪрд╛ рдореЛрдард╛ рднрд╛рдЧ, рдЖрдгрд┐ рддреЛ
launch screen рд╡рд░ рджрд╣рд╛ рд╕реЗрдХрдВрджрд╛рдВрдд рдирд┐рд╡рдбрд▓рд╛ рдЬрд╛рддреЛ. рдЪреБрдХреАрдЪреА family рджрд░ рддрд╛рд╕рд╛рд▓рд╛ рдкреИрд╕реЗ рд╡рд╛рдпрд╛ рдШрд╛рд▓рд╡рддреЗ
(memory рдЪреА рднреВрдХ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ cache рд╕рд╛рдареА c рдбреЗрд╕реНрдХ) рдХрд┐рдВрд╡рд╛ bug рд╕рд╛рд░рдЦреНрдпрд╛ рджрд┐рд╕рдгрд╛рд▒реНрдпрд╛ рдкрджреНрдзрддреАрдиреЗ
рдЕрдкрдпрд╢реА рдард░рддреЗ (рджреБрдкрд╛рд░рдирдВрддрд░ "рдЙрдЧрд╛рдЪрдЪ" рдордВрдж рд╣реЛрдгрд╛рд░рд╛ t3).
ЁЯФз рдХрд╕реЗ (рдпрд╛ repo рдордзреНрдпреЗ)
ec2/demo.py рдордзрд▓реЗ types() ec2/costs.py рдордзрд▓реА
lab рдЪреА рдХрд┐рдВрдордд-рдпрд╛рджреА рдкреНрд░рддреНрдпреЗрдХ family рдЪреНрдпрд╛ рд╡рд╛рд╣рдирд╛рд╕рд╣ рдЫрд╛рдкрддреЗ, рдордЧ
ec2/fleet.py рдордзрд▓реЗ fleet.credits(3) рдЪрд╛рд▓рд╡рддреЗ: 144 credits рдкрд╛рд╕реВрди рд╕реБрд░реВ рд╣реЛрдгрд╛рд░рд╛,
рддреАрди рддрд╛рд╕ 100% рд╡рд░ рдЪрд╛рд▓рдгрд╛рд░рд╛ t3.micro, рдорд┐рдирд┐рдЯрд╛-рдорд┐рдирд┐рдЯрд╛рдиреЗ.
ЁЯзк рдХрд░реВрди рдкрд╛рд╣рд╛
python3 ec2/demo.py types
python3 - <<'EOF'
import sys; sys.path.insert(0, "ec2"); import costs, fleet
# price per GiB of memory: which family is the cheap way to buy RAM?
for t, (v, m, p) in costs.PRICE_PER_HOUR.items():
print(f"{t:<11} ${p / m:.4f} per GiB-hour")
# a gentle load: 10% on both vCPUs is exactly the baseline тЖТ the tank never empties
print("10% busy:", fleet.credits(3, busy_pct=10))
# 30% busy spends 0.6 credits a minute but earns only 0.2 тЖТ it drains 24 an hour
for h, bal, got in fleet.credits(8, busy_pct=30):
print(f"30% busy ┬╖ hour {h}: {bal:>5} credits ┬╖ CPU {got}%")
EOF
рдЦрд▒реНрдпрд╛ account рд╡рд░ (AWS credentials рд▓рд╛рдЧрддрд╛рдд; рдлрдХреНрдд рд╡рд╛рдЪрдгреЗ, рдореЛрдлрдд):
aws ec2 describe-instance-types --instance-types t3.micro m7g.large r7g.large \
--query 'InstanceTypes[].[InstanceType,VCpuInfo.DefaultVCpus,MemoryInfo.SizeInMiB,ProcessorInfo.SupportedArchitectures[0]]' \
--output table
aws ec2 describe-instance-type-offerings --location-type availability-zone \
--filters Name=instance-type,Values=m7g.large --region us-east-1 --output table
тЬЕ рддрдкрд╛рд╕рд╛ тАФ рддреБрдореНрд╣рд╛рд▓рд╛ рдХрд╛рдп рджрд┐рд╕рд╛рдпрд▓рд╛ рд╣рд╡реЗ
types рдЖрда types рдЪреА рдпрд╛рджреА рджрд╛рдЦрд╡рддреЗ, t3.micro 2 vCPU 1 GiB burstable ЁЯЫ╡ ~$0.0104/h
рдкрд╛рд╕реВрди r7g.large 2 vCPU 16 GiB memory ЁЯЪЪ ~$0.1071/h рдкрд░реНрдпрдВрдд, рдордЧ рдЯрд╛рдХреА:
hour 1: balance 36.0 credits ┬╖ you get 100% CPU рдЖрдгрд┐, рддрд╛рд╕ 2 рдкрд╛рд╕реВрди,
balance 0.0 credits ┬╖ you get 10% CPU тЖР tank empty: throttled to the 10% baseline.
рддреБрдордЪрд╛ snippet рджрд╛рдЦрд╡рддреЛ рдХреА RAM рд╡рд┐рдХрдд рдШреЗрдгреНрдпрд╛рдЪрд╛ рд╕реНрд╡рд╕реНрдд рдорд╛рд░реНрдЧ memory families рдЖрд╣реЗрдд (r7g.large
$0.0067 per GiB-hour рд╡рд░, рдЖрдгрд┐ рд╕рд░реНрд╡рд╛рдд рдорд╣рд╛рдЧ c7i.xlarge $0.0223 рд╡рд░), 10% рдЪрд╛ run
рджрд░ рддрд╛рд╕рд╛рд▓рд╛ 144.0 credits рд╡рд░ рд╕реНрдерд┐рд░ рд░рд╛рд╣рддреЛ, рдЖрдгрд┐ 30% рдЪрд╛ run
рддрд╛рд╕рд╛рд▓рд╛ 24 рдиреЗ рдХрдореА рд╣реЛрдд рдЬрд╛рддреЛ (120.0, 96.0, тАж 0.0), рдЬреЛрдкрд░реНрдпрдВрдд рддрд╛рд╕ 7 рд▓рд╛ CPU 10% рд╡рд░ рдпреЗрдд рдирд╛рд╣реА.
ЁЯПБ рддреБрдореНрд╣реА рдЖрддреНрддрд╛рдЪ рдХрд╛рдп рд╕рд┐рджреНрдз рдХреЗрд▓реЗ
рддреБрдореНрд╣реА рдХреЛрдгрддреЗрд╣реА instance рдирд╛рд╡ рд╡рд╛рдЪреВ рд╢рдХрддрд╛, рдкрд╣рд┐рд▓рд╛ рдЕрдВрджрд╛рдЬ рдХреЛрдгрддреНрдпрд╛ family рдЪрд╛ рдХрд░рд╛рдпрдЪрд╛ рддреЗ рддреБрдореНрд╣рд╛рд▓рд╛ рдорд╛рд╣реАрдд рдЖрд╣реЗ, рдЖрдгрд┐ рддреБрдореНрд╣реА burstable рдбреЗрд╕реНрдХрдЪреЗ рдЗрдВрдзрди рд╕рдВрдкрддрд╛рдирд╛ рдкрд╛рд╣рд┐рд▓реЗ тАФ рдкреВрд░реНрдг load рд╡рд░ рджреЛрди рддрд╛рд╕рд╛рдВрдЪреНрдпрд╛ рдЖрдд, 30% load рд╡рд░ рд╕рд╣рд╛ рддрд╛рд╕рд╛рдВрдд.
тЪая╕П рдиреЗрд╣рдореАрдЪреНрдпрд╛ рдЪреБрдХрд╛
- рд╕реНрдерд┐рд░, рд╕рддрдд рд╡реНрдпрд╕реНрдд workload
tinstance рд╡рд░ рдЪрд╛рд▓рд╡рдгреЗ тАФ рддреА scooter рдЖрд╣реЗ, car рдирд╛рд╣реА CPUCreditBalanceрдХрдбреЗ рджреБрд░реНрд▓рдХреНрд╖ рдХрд░реВрди рдордВрдж рджреБрдкрд╛рд░реАрд╕рд╛рдареА code рд▓рд╛ рджреЛрд╖ рджреЗрдгреЗ (рдзрдбрд╛ 11)- software рдЪрд╛
arm64build (рдЖрдгрд┐arm64AMI) рдирд╕рддрд╛рдирд╛ Graviton рдирд┐рд╡рдбрдгреЗ - "рд╕реБрд░рдХреНрд╖рд┐рдд рд░рд╛рд╣рд╛рд╡реЗ" рдореНрд╣рдгреВрди рд╕рд░реНрд╡рд╛рдд рдореЛрдард╛ size рдирд┐рд╡рдбрдгреЗ тАФ рдЖрдзреА рдореЛрдЬрд╛, рдордЧ size рдХрдореА рдХрд░рд╛
- рдЬреБрдиреА generation рд╕реНрд╡рд╕реНрдд рдЕрд╕реЗрд▓ рдЕрд╕реЗ рдЧреГрд╣реАрдд рдзрд░рдгреЗ; рдирд╡реНрдпрд╛ generations рдмрд▒реНрдпрд╛рдЪрджрд╛ рд╕реНрд╡рд╕реНрдд рдЖрдгрд┐ рд╡реЗрдЧрд╡рд╛рди рдЕрд╕рддрд╛рдд
ЁЯПн рдкреНрд░рддреНрдпрдХреНрд╖ рд╡рд╛рдкрд░рд╛рдд рд╣реЗ рдХрд╛ рдорд╣рддреНрддреНрд╡рд╛рдЪреЗ: рдкреНрд░рддреНрдпреЗрдХ cost review рдЪреА рдкрд╣рд┐рд▓реА рдУрд│ right-sizing рдЕрд╕рддреЗ. AWS Compute Optimizer рд╕рд╛рд░рдЦреА tools рддреБрдордЪреЗ рдЦрд░реЗ CPU рдЖрдгрд┐ memory graphs рд╡рд╛рдЪреВрди рд▓рд╣рд╛рди рдХрд┐рдВрд╡рд╛ Graviton type рд╕реБрдЪрд╡рддрд╛рдд тАФ рддреА рдмрдЪрдд рджрд░ рддрд╛рд╕рд╛рд▓рд╛, рдХрд╛рдпрдордЪреА, рд╣реЛрдд рд░рд╛рд╣рддреЗ.
тПня╕П рдкреБрдвреЗ
рдХреЛрдгреА рдмрд╕рдгреНрдпрд╛рдЖрдзреА рдкреНрд░рддреНрдпреЗрдХ рдбреЗрд╕реНрдХрд╡рд░ рдХрд╛рд╣реАрддрд░реА рд╣рд╡реЗ. рдбреЗрд╕реНрдХрдЪрд╛ рд╕рд╛рдЪрд╛ рдЖрдгрд┐ recipe card тАФ AMIs рдЖрдгрд┐ launch templates.
git checkout lesson-03-amis-launch