ЁЯЦея╕П рдзрдбрд╛ 07 тАФ EC2 рдореНрд╣рдгрдЬреЗ рдХрд╛рдп: screen рдирд╕рд▓реЗрд▓рд╛ рднрд╛рдбреНрдпрд╛рдЪрд╛ рдмрд╛рдХ-computer
ЁЯУН рддреБрдореНрд╣реА рдЗрдереЗ рдЖрд╣рд╛рдд: 12 рдкреИрдХреА рдзрдбрд╛ 07 тАФ рднрд╛рдЧ 2 рд╕реБрд░реВ! ┬╖ рдорд╛рдЧреЗ: lesson-06-iam-hygiene ┬╖ рдкреБрдвреЗ: lesson-08-types-pricing
ЁЯУж рдпрд╛ рдмреНрд░рдБрдЪрдордзреНрдпреЗ рдХрд╛рдп рдЖрд╣реЗ
рдзрдбреЗ 01тАУ06, рдЖрдгрд┐ рддреНрдпрд╛рд╕реЛрдмрдд: рдЬреНрдпрд╛рд╡рд░ рд╕рдЧрд│реЗ рдЪрд╛рд▓рддреЗ рддреНрдпрд╛ рдЧреЛрд╖реНрдЯреАрдЪреЗ рдЧреВрдв рдЙрдХрд▓рдгреЗ тАФ EC2 instance. рдЦрд░реА file:
- ec2/ec2.tf тАФ code рд╕реНрд╡рд░реВрдкрд╛рддрд▓рд╛ рдПрдХ рдкреВрд░реНрдг рднрд╛рдбреНрдпрд╛рдЪрд╛ computer (рд╕рдВрдкреВрд░реНрдг рднрд╛рдЧ 2 рдордзреНрдпреЗ рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рддреЛ)
ЁЯзТ 5 рд╡рд░реНрд╖рд╛рдВрдЪреНрдпрд╛ рдореБрд▓рд╛рд▓рд╛ рд╕рдордЬрд╛рд╡рд▓реНрдпрд╛рд╕рд╛рд░рдЦреЗ
Amazon computers рдиреЗ рднрд░рд▓реЗрд▓реНрдпрд╛ рдкреНрд░рдЪрдВрдб рдЕрднреНрдпрд╛рд╕рд┐рдХрд╛ ЁЯПл рдЪрд╛рд▓рд╡рддреЗ тАФ рдЬрдЧрднрд░рд╛рддрд▓реНрдпрд╛ рдЗрдорд╛рд░рддреАрдВрдордзреНрдпреЗ рд▓рд╛рдЦреЛ рдмрд╛рдХ. EC2 рдореНрд╣рдгрдЬреЗ рднрд╛рдбреНрдпрд╛рдЪрд╛ рдХрд╛рдЙрдВрдЯрд░:
"рдПрдХ рдмрд╛рдХ рджреНрдпрд╛. рд▓рд╣рд╛рди. Linux. рдореА рджрд░ second рдЪреЗ рдкреИрд╕реЗ рджреЗрдИрди рдЖрдгрд┐ рд╣рд╡реЗ рддреЗрд╡реНрд╣рд╛ рдкрд░рдд рдХрд░реЗрди." тАФ рдЖрдгрд┐ ~40 seconds рдирдВрддрд░, рдПрдХ рдмрд╛рдХ рддреБрдордЪрд╛.
рдмрд╛рдХ (instance) рд╣рд╛ рдЦрд░рд╛ computer рдЖрд╣реЗ: CPU, RAM, рдПрдХ disk, Linux. рддреБрдордЪреНрдпрд╛ рд╕рдореЛрд░рдЪреНрдпрд╛ laptop рдкреЗрдХреНрд╖рд╛ рддреЛ рддреАрди рдЧреЛрд╖реНрдЯреАрдВрдордзреНрдпреЗ рд╡реЗрдЧрд│рд╛ рдЖрд╣реЗ:
- Screen рдирд╛рд╣реА, keyboard рдирд╛рд╣реА. ЁЯЪлЁЯЦея╕П рддреБрдореНрд╣реА рддреНрдпрд╛рдЪреНрдпрд╛рд╢реА рдлрдХреНрдд network рд╡рд░реВрди рдмреЛрд▓рддрд╛ (SSH, HTTP тАФ рдзрдбреЗ 09тАУ10). "Server рдореНрд╣рдгрдЬреЗ screen рдирд╕рд▓реЗрд▓рд╛ рднрд╛рдбреНрдпрд╛рдЪрд╛ Linux computer" тАФ рд╕реБрд░реБрд╡рд╛рддреАрдкреВрд░реНрд╡реАрдЪреНрдпрд╛ guide рдиреЗ рд╕рд╛рдВрдЧрд┐рддрд▓реЗ рд╣реЛрддреЗ; рдЖрддрд╛ рддреЛ рддреБрдордЪрд╛ рдЖрд╣реЗ.
- рддреЛ рдПрдХрд╛ рдард░рд╛рд╡рд┐рдХ рдард┐рдХрд╛рдгреА рд░рд╛рд╣рддреЛ. рдПрдХ region (рд╢рд╛рд│рд╛ рдЬрд┐рд▓реНрд╣рд╛ тАФ
ap-south-1= Mumbai) рдЬреНрдпрд╛рдд availability zones рдЕрд╕рддрд╛рдд (рд╡реЗрдЧрд│реА рд╡реАрдЬ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╡реЗрдЧрд│реНрдпрд╛ рдЗрдорд╛рд░рддреА). рдЧрдВрднреАрд░ setups рдмрд╛рдХ рдЗрдорд╛рд░рддреАрдВрдордзреНрдпреЗ рдкрд╕рд░рд╡рддрд╛рдд, рдореНрд╣рдгрдЬреЗ рдПрдХ рдЖрдЧ тЙа рд╕рдЧрд│реЗ рдмрдВрдж. - рддреЛ рдореБрджреНрджрд╛рдорд╣реВрди рд╡рд╛рдкрд░реВрди рдЯрд╛рдХрдгреНрдпрд╛рдЬреЛрдЧрд╛ рдЖрд╣реЗ. рднрд╛рдбреНрдпрд╛рдиреЗ рдШреНрдпрд╛, рд╡рд╛рдкрд░рд╛, рдкрд░рдд рджреНрдпрд╛. рд╕рдВрдкреВрд░реНрдг cloud рдорд╛рдирд╕рд┐рдХрддрд╛ рдПрдХрд╛ рд╕рд╡рдпреАрдд: рдмрд╛рдХ cattle рдЖрд╣реЗрдд, pets рдирд╛рд╣реАрдд тАФ k8s course рдордзреНрдпреЗ pods рдиреЗ рд╢рд┐рдХрд╡рд▓реЗрд▓рд╛ рддреЛрдЪ рдзрдбрд╛, рдПрдХ рдерд░ рдЦрд╛рд▓реА.
ЁЯЧ║я╕П рдЖрдХреГрддреА
flowchart LR
subgraph region["ЁЯМП region ap-south-1 - the district"]
subgraph aza["ЁЯПл AZ-a - one building"]
desk["ЁЯЦея╕П i-0abcтАж your desk<br/>2 vCPU ┬╖ 1GB ┬╖ Linux<br/>no screen, network only"]
end
subgraph azb["ЁЯПл AZ-b - another building"]
note["spread desks here too:<br/>one fire тЙа everything down"]
end
end
you["ЁЯзСтАНЁЯТ╗ you, at home"]
you -->|"1 SSH / HTTP over the network"| desk
desk -->|"2 pay per second<br/>stop or hand back anytime"| desk
тЭУ рдХрд╛рдп
- Instance = AWS рдЪреНрдпрд╛ hardware рд╡рд░рдЪреЗ virtual machine. AMI = рддреЗ рдЬреНрдпрд╛рддреВрди boot рд╣реЛрддреЗ рддреЗ (рдзрдбрд╛ 11). Instance type = рддреНрдпрд╛рдЪрд╛ рдЖрдХрд╛рд░ (рдзрдбрд╛ 08).
- рдЬреАрд╡рдирдЪрдХреНрд░:
running(billing!) тЖТstopped(CPU billing рдмрдВрдж, disk рдЪреЗ рдЕрдЬреВрдирд╣реА рдХрд╛рд╣реА рдкреИрд╕реЗ) тЖТterminated(рд╕рдВрдкрд▓реЗ). Stop тЙа terminate. - рдЗрддрд░ courses рдЪреА рддреНрдпрд╛рдЪреНрдпрд╛рд╢реА рднреЗрдЯ рдХреБрдареЗ рд╣реЛрддреЗ: k8s course рдордзрд▓рд╛ рдкреНрд░рддреНрдпреЗрдХ EKS node рдПрдХ EC2 instance рдЖрд╣реЗ; "$73/month + EC2 nodes" рд╣реА bill рдордзрд▓реА рдУрд│ рдЕрдХреНрд╖рд░рд╢рдГ рд╣реЗрдЪ рдмрд╛рдХ рдЖрд╣реЗрдд. Fargate/Lambda рдореНрд╣рдгрдЬреЗ AWS рддреБрдордЪреНрдпрд╛рд╕рд╛рдареА рдмрд╛рдХ рднрд╛рдбреНрдпрд╛рдиреЗ рдШреЗрдКрди рд▓рдкрд╡рддреЗ.
ЁЯдФ рдХрд╛
Pods рди рд╕рдордЬрддрд╛ рддреБрдореНрд╣реА EKS рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛ тАФ рд╡рд╛рдИрдЯ рдкрджреНрдзрддреАрдиреЗ. AWS рдЖрдгрд┐ EC2 рдЪреЗрд╣реА рддрд╕реЗрдЪ: bills, incidents, capacity, "рдорд╛рдЭрд╛ node NotReady рдХрд╛ рдЖрд╣реЗ" тАФ рд╕рдЧрд│реЗ рд╢реЗрд╡рдЯреА рдХреБрдард▓реНрдпрд╛рддрд░реА рднрд╛рдбреНрдпрд╛рдЪреНрдпрд╛ рдмрд╛рдХрд╛рд╡рд░ рдпреЗрдКрди рдерд╛рдВрдмрддреЗ. рднрд╛рдЧ 2 рддреЛ рдмрд╛рдХ рдХрдВрдЯрд╛рд│рд╡рд╛рдгрд╛ рдЖрдгрд┐ рд╕рдордЬрдгреНрдпрд╛рдЬреЛрдЧрд╛ рдХрд░рддреЛ.
ЁЯзк рдХрд░реВрди рдкрд╛рд╣рд╛ (~10 рдорд┐рдирд┐рдЯреЗ, ~1┬в)
# rent one desk, fully wired (SG + role + boot script), from this repo:
cd ec2 && terraform init
terraform apply -var my_ip=$(curl -s ifconfig.me)/32 # review, type yes
# what did we just rent?
aws ec2 describe-instances --filters Name=tag:Name,Values=school-desk \
--query 'Reservations[].Instances[].{id:InstanceId,type:InstanceType,az:Placement.AvailabilityZone,state:State.Name,ip:PublicIpAddress}'
# it's already a web server (lesson 12 explains how):
curl http://$(terraform output -raw public_ip)
# ЁЯз╣ THE LAB RULE тАФ always, before you leave:
terraform destroy -var my_ip=$(curl -s ifconfig.me)/32
тЬЕ рддрдкрд╛рд╕рд╛ тАФ рддреБрдореНрд╣рд╛рд▓рд╛ рдХрд╛рдп рджрд┐рд╕рд╛рдпрд▓рд╛ рд╣рд╡реЗ
aws ec2 describe-instances running рджрд╛рдЦрд╡рддреЛ; curl http://PUBLIC_IP user-data рдордзреВрди рдЖрд▓реЗрд▓реЗ рд╕реНрд╡рд╛рдЧрдд рдкрд╛рди рдкрд░рдд рджреЗрддреЛ.
ЁЯз╣ рд╕рд╛рдлрд╕рдлрд╛рдИ тАФ рдХрд╛рд╣реАрд╣реА рдЪрд╛рд▓реВ рдареЗрд╡реВ рдирдХрд╛
terraform destroy тАФ рдордЧ describe-instances рдиреЗ terminated рджрд╛рдЦрд╡рд╛рдпрд▓рд╛рдЪ рд╣рд╡реЗ (stopped рдмрд╛рдХрд╛рдЪреНрдпрд╛ рдбреНрд░реЙрд╡рд░рдЪреЗ bill рдЪрд╛рд▓реВрдЪ рд░рд╛рд╣рддреЗ)
тЪая╕П рдиреЗрд╣рдореАрдЪреНрдпрд╛ рдЪреБрдХрд╛
- рд░рд╛рддреНрд░рднрд░ рдмрд╛рдХ рд╡рд┐рд╕рд░рдгреЗ тАФ ~1┬в/рддрд╛рд╕ рдЬреЗ $7 рд╣реЛрддрд╛рдд
- terminate рдРрд╡рдЬреА stop, рдЖрдгрд┐ рдордЧ EBS рдбреНрд░реЙрд╡рд░рдЪреЗ рдкреИрд╕реЗ рдХрд╛рдпрдо рднрд░рдд рд░рд╛рд╣рдгреЗ
- рддреБрдордЪреНрдпрд╛рдкрд╛рд╕реВрди рджреВрд░рдЪрд╛ region рдирд┐рд╡рдбрдгреЗ рдЖрдгрд┐ SSH рдХрд╛ рд░реЗрдВрдЧрд╛рд│рддреЗ рдпрд╛рдЪреЗ рдЖрд╢реНрдЪрд░реНрдп рдХрд░рдгреЗ
тПня╕П рдкреБрдвреЗ
рдмрд╛рдХ рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдЖрдХрд╛рд░рд╛рдВрдд рдЖрдгрд┐ payment plans рдордзреНрдпреЗ рдпреЗрддрд╛рдд тАФ scooters, trucks, season tickets рдЖрдгрд┐ standby seats. рд╣реБрд╢рд╛рд░реАрдиреЗ рдирд┐рд╡рдбрдгреНрдпрд╛рддрдЪ рдкреИрд╕рд╛ рдЖрд╣реЗ.
git checkout lesson-08-types-pricing