á°áá ááá˝áá! áľá áŞáŞá áĽáŁáááᣠáĽá á Adapty CTO ááᢠá áĽááá á¨á á ááá´áá¸á á AWS áá ááᣠáĽá áᏠá á ááŤá˝ á áŤáŁá˘ áŤá áŚáłáá˝á á áá áá á¨á áááá ááŞáá˝á á 3 áá áĽáá´áľ áĽáá°áááľá áĽá áĽáá˛áá á ááśáá˛áŤááá áĽáá´áľ áĽáá°ááŤááá áĽáááŤáá ᢠá ááááŞáŤ áĽáá´áľ áĽáá°áá°áŤ á á ááá áĽááł áĽá á¨ááŤá ááááá áááá áááŞáŤáá˝ áááŤá.
áľááľ á ááŁááá˝ áááľá áá¸á?
ááŚáł áááłáá˝ á¨áá áłáŞáá á¨ááŤáłáŠ áĽááľ á á˝á áłá áá˝ áĽááłáá˝ á¨áá á áłá˝ á áá˘
á eu-west-5 (á á¨ááááľ) ááá ááľáĽ m1.áľáá . ááá á á áĽááá á3 ááŤáľ á¨á°á¨áá á˛áá á á áá áá 2.9x áááĽáŁáá˘
m5.áľáá á áŠá¤áľ-ááľáŤá -1 ááá (á¤á. á¨ááááŤ). ááá á¨3 ááŤáľ á áá á á¨ááá áĽá¨á°áá¨á¨ ááᣠá á áá áá á¨2.3x áá° 2.8x á á°ááááľ áá á áá áááĽáŁáá˘
t3.small á áŠá¤áľ-ááľáŤá -1 ááá (á¤á. á¨ááááŤ)ᢠááá á3 ááŤáľ á¨á°á¨áá á˛áá á á áá áá 3.4x áááĽáŁáá˘
á¨á áááááľ á ááá´áá¸á
á áá á˝áá ááľáĽ á¨áááááá¨á á¨á áááááą áá°á¨áłá á ááá´áá¸á á¨áá á áłá˝ áŁáá áľáĽá ááľáĽ ááłáŤá.
á¨áá°áá áŞáŤ áááľ ááá â EC2 ááá áĄáľá â ááľá˛á áŽáá´ááá á áááááľ
á¨áá°áá áŞáŤ ááľ áŁáááľ (ALB) áĽáá° áááá áĽá á áá ááááᣠáĽáąá áĽáŤááá˝á áá° EC2 Target Group (TG) áááŤáᢠTG áá¤.á¤á.á˘.áá˝ áá°áŚá˝á á¨ááááľ áĽá á¨ááľá˛á áŽáá´ááá á áááááľ (á˘á˛á¤áľ) áŽáá´áááŽá˝ áá°áŚá˝ á¨áááááľ áááááľ á áá áľá˘ ECS Docker áŽáá´áááŽá˝á á¨ááŤáľá°áłáľá¨á á AWS ááľáĽ á¨áŠá áááľáľ á ááá ááá˘
á ááľ ááłá á ááŤáł á¨áŠáŤ áŽáá´áááŽá˝ á¨á°ááłáłá áá°áŚá˝ áá áááŠáľ áá˝áááŁáľááá áááľáááŁá¸á á áá˝ááᢠá˘.á˛.á¤áľ áá˛á á á˛áľ á°ááŁá áĽá¨ááᨠáááá áááá¨áá (á áŠá áááľáľ á¨áááľ á ááŁáĽ áá ááľ ááŁáá) á ááłáá áá áá áá°áŚá˝á áááľáťá áĽá á¨ááŤá¨áá¸á á ááąá áá°ááá¨á á°ááŁá áááľáŁáᢠá˛á á á°á¨ááŞá á¨á¤á ááááŤá á°á á áá áááłá á¤áá áą áĽá á¤áá á áĽá¨á°áŠ áááá¸áá á á¨ááá áááľáťáᣠáĽá ááá á áááľ á˝áá áŤá¨áŁ áá°á፠ááá áŤáááá˘
EC2 áŤáľ-á°á áááŞáŤ áĄáľáá˝ + ECS á á á á á áŤá˘áá˝
á¨áá áŤáá áĽááá ááá፠á¨EC2 Auto Scaling Groups (ASG) á áááááľá á áŤáłááᢠá¨áľá áá¨áłáľ á¨ááťáá áá ááŁááá˝ áááá á°á áŤá ááᢠááá ááᣠáĽáľá¨ á áἠáá áľá¨áľáŁ AWS á¨á˘á˛á¤áľ á¨áŠáŤ áá˝áá˝á áĽááľ áááľá°áłá°á á áĽáŽ á¨á°á°áŤ á˝ááł á ááá á¨ááᢠECS á¨á°ááŁáŽá˝á áĽááľ ááááŤáľ á áľá˝ááᣠáááłáᣠá á˛áአá á áááᣠRAM ááá á áĽáŤááá˝ áĽááľá˘ ááá áá á°ááŁáŤáľ áááá áá á ááŁááá˝ á¨áŤá ᣠá¨á፠á áłá˛áľ áá˝áá˝ á áŤáľ-á°á á áá°áá áŠáá˘
áá á¨á˘á˛á¤áľ á á á á á áŤá˘áá˝ (ECS CP) áááŁáľ á°ááá§áᢠá áá á ECS ááľáĽ áŤáá áĽáŤááłááą á ááááᾠᨠASG áá áááá áá˝áá, áĽá á°ááŁáŽáš á áŠáŤ áááłáá˝ áá á¨áááŁáŁá á¨áá, á á˛áśáš áááłá (ááá áá á á°áááá ASG áá°áŚá˝ ááľáĽ). áá á°áá á á°ááŤáá á á áŁáŤ áá°áŤáᣠECS CP áľáŤ ááľ á¨áá áááłáá˝á áŤá á°ááŁá áŤá¨áŁ á¨ááŤá áĽáá˛ááá¸á ᨠASG áľááá áá°áŁáᢠECS CP á¨áłáááá á¨á áĽááľ áááľ ááśá á¨áááá˝ á˝ááł á ááᣠáľááá á á¨á°áá°á ááĽá áŤáá¸á áá˝áá˝ áá áá á ááĽááľ ááá°áŠ áľáŤáá˝ áá ááááᤠáľááá ááłá áľáá˝ áááś áĽáááŤááá˘
EC2 á áĽááśá˝á á áľááá
áá
áá áá á¨á° áááľ áľáááá á á áááá á¨áááŁá´ á ááľ á¨áááŤá á¨áá¨á¨áťá á áááááľ EC2 Launch Templates ááᢠáá
áá áááá á¨áŁáś ááááľáá, ááá áá˝áá˝ á¨ááááŠá áľ á áĽááľ áĽáá˛ááĽáŠ ááá
áľáááłá. áĽáá
ááááá á¨áá˝á á áááľ, á¨á°á
áááľ áĄáľá, á¨á˛áľá ááľá áĽá ááá˝ áĽá áááŞáŤáá˝ ááá¨áĽ áá˝áá. áĽáá˛áá áá° ááá á¨á°ááአá ááŁááá˝ á¨áá°áá á¨á°á áá ááἠáááá˝ áá˝ááᢠá á°á áá ááἠááľáĽ áľááŞááśá˝á áááľ áá˝ááᣠáááłá á¨áááá áááľ áááľá áá˝ááá˘
ááá
á˝áá á áŁá á áľááá á¨áá á¨áá
á¨áľ áááŞáŤáá˝ á ááą áá
á˛áľáá á á°ááá¨á° - AWS á á
ááĄ
á áááááľ ááá á
á¨á°ááá¸áá á áááááľ áá° ááá á áĽáááľá˘ á áá°áą ááľáĽáŁ á¨áá á áá áŤáá°á ááą á ááŤáł á áá ááĽáŚá˝á á á°á¨á᪠áĽáááťááᢠá á á ááá, áá á¨á°á¨á á á°á¨á áááŞáŤ áá, ááá áá á ááłááľ á áŁá áá á¨áłá á¨áááľá ááá, á á°ááŤáá, á áŁá á¨á°áአááłáŽá˝á á ááľáĽá. ááá áľáááśá˝ á AWS áŞáĽáá áŽááśá ááľáĽ áá¨ááááᣠááá áá CloudFormation ááá Terraformá á áá áá ááŽááŤáá á áá ááááľ ááŁá áá˝ááᢠá Adapty á´áŤáááá áĽáá ááááá˘
EC2 á áľááá á áĽááľ
áá á áááááľ áĽá á áá á¨ááá áá˝áá˝á áá á áááĽáŤá. á áĽááśá˝ á¨áá°áłá°áŠáľ á EC2 -> áááłáá˝ -> á¨á áĽááľ ááľáááŞáŤ ááá ááá˘
á¨á ááá áá˝á ááľá (á¤á¤áá á) - ááá áááłáá˝ á¨ááááŠá áľá á¨á˛áľá ááľá áááášá˘ áá˘á˛á¤áľáŁ á á áĽááááš á ááŁááá˝ á¨á ááá á¨á°áááá á¨á°ááťá¸ ááľá áá áá á°áᢠááᢠá áá°á áááľ á°áááá áĽá ECS áĽáá˛á°áŤ á áľááá á¨áááľá áá áááᢠá¨á ááá ááľá ááłáá፠áááá
áá° ááš áááą
á¨á áĽááľ á áááľ - á¨ááłááá á áááľ áŤááááąá˘ ááĽááľá á°ááŁá á á°áťá á¨ááľáááá ááá¨áĄá˘
á¨ááá áĽááľ (ááá˘áŤ) - á áľááá á¨áá á á¤áľá¤áľá¤á˝ á áŠá á¨ááłáá áá áááááľ á¨áá˝áá áľá á¨ááľáá áá¨ááľ ááĽááąá˘
á¨á ááłá¨ áá¨áĽ á ááĽáŽá˝ - á¨á ááłá¨ áá¨áĽ áááŞáŤáá˝á ááááš. á¨á ááłá¨ áá¨áĽ ááľá¨á á á áĽááááš áááłáá˝ á¨áášáá á¨áá ááááľ (VPC) ááá á áá áľá˘ á¨á°á áááľ áĄáľáá˝ - á¨á°á áááľ áĄáľáá˝ ááĽááľá ááłáŽá˝á˘ á¨áááłáá˝ ááľ áááľ áááá áľáááá áá, áᢠáááááśá˝á á¨ááá áĽáť á¨ááá áľ áĄáľá áĽáá áĽáá˛áááš áĽáááŤáá. áááľáᣠ2 á¨á°á áááľ áĄáľáá˝ áááŠááłáᣠá ááą ááŁá áááᣠá¨á¨áľááá áá°áŚá˝ 80 (http) áĽá 443 (https) á¨ááľá -áááááľ áááááśá˝á á¨ááá á°á áĽá ááá°áá ááá˝áá˝ á˛áá áá á á¨á°ááá áĄáľá áá°áŚá˝ ááľáĽ áᢠáááááśá˝á ááá áłáᢠ. á áááąá áĄáľáá˝ ááľáĽ áŤá á¨á᪠áááááśá˝ ᨠTCP ááŽáśáŽáá á áá áá áá° ááá áá°áŚá˝ áá° ááá á áľáŤáťáá˝ áá¨ááľ á ááŁá¸áᢠáá᪠áááááśá˝ áá°áŚá˝á áĽá á áľáŤáťáá˝á ááá°áĽ áá˝áá ᣠáá á¨á፠á á°áá áá°áĽ áá á¨áá ááá áááľá¨áľ áĽá¨áá¨áŠ áĽááłááá áŤáááá¨áĽ áá¨áłá°á áŤáľáááááłáá˘
áá¨ááť (áĽáŤáá˝) - ááá˝ááš á¨á˛áľá áááŞáŤáá˝á ááááš. á¨á˛áľá áá á á á¤á¤áá á ááľáĽ á¨á°ááá¸á áŤáá° ááá á áá˝ááᤠá ECS Optimized 30 GiB ááá˘
á¨áá ááááŽá˝ - á°á¨á᪠áááŞáŤáá˝á ááááš.
á¨áᢠá ááŤá - á¨áŚáł áááłáá˝á ááááľ áĽááááᢠáĽááááááᣠááá áá áĽáá áłáĽá áá ááááľ á áááá áľáᤠá á ááśááľáŤááá áĄáľá ááľáĽ áĽááá á¨áááᣠáĽá፠á°á¨á᪠á ááŤáŽá˝ á áá˘
ᨠIAM ááłá ááá፠- ááłáŽá˝ á¨ááááŠá áľá áá áŤááááąá˘ áááłáá˝ á ECS ááľáĽ áĽáá˛á°áŠáŁ áááśá˝ áŤáľáááá¸ááᣠáĽáąá á áĽáááá áá á áá ááľáĽ ááááᢠecsInstanceRole. á á ááłááľ áááłáá˝ ááá á áá˝áá, áŤááá, á¨á፠áĽáá
ááĽá áĽá áááŞáŤáá˝ á á ᣠá áá á¨áą ááŁáŞ áĽá´áśá˝á á ááá áŚáł áá°á áá˝áá ᣠáá áĽáŤááłááłá¸á ááá˝ ááá፠á áá¸áᢠáĽá áááá EBS-á¨á°ááťá¸ ááłá áĽá T2/T3 Unlimited á ááŤáŽá˝á á¨á°á áá á ááááá˘
á¨á°á áá ááἠ- á¨á°á áá áááĽá áŤááááąá˘ áááá áĽááľá°áŤáááá /etc/ecs/ecs.config
ᨠECS ááŞá áá
áá á¨áŤáá˘
á¨á°á áá ááἠáá áááľá áĽáá°áá˝á á¨ááŤáłá ááłááĄ-
#!/bin/bash
echo ECS_CLUSTER=DemoApiClusterProd >> /etc/ecs/ecs.config
echo ECS_ENABLE_SPOT_INSTANCE_DRAINING=true >> /etc/ecs/ecs.config
echo ECS_CONTAINER_STOP_TIMEOUT=1m >> /etc/ecs/ecs.config
echo ECS_ENGINE_AUTH_TYPE=docker >> /etc/ecs/ecs.config
echo "ECS_ENGINE_AUTH_DATA={"registry.gitlab.com":{"username":"username","password":"password"}}" >> /etc/ecs/ecs.config
ECS_CLUSTER=DemoApiClusterProd
â áááŞáŤá á¨ááŤáááá°á ááłáá á¨á°á°á¨áá áľá áŤáá á¨áááľá°á á áŤá áááá ááᣠáŤá áá
áááľá°á á°ááŁáŤáśášá á áá
á áááá áá ááľááἠáá˝ááᢠáááľá°á áĽáľáŤáá á ááá áááᣠááá áá áá
á áľá áľáááĽá¨á áĽáá ááááá˘
ECS_ENABLE_SPOT_INSTANCE_DRAINING=true
- áááŞáŤá áŚáłáá áááĽááľ ááááľ á˛á°áá°á á áĽáą áá áŤááľ ááá á°ááŁáŤáľ áá° ááłá˝ áááł áá°ááá á ááŁá¸á.
ECS_CONTAINER_STOP_TIMEOUT=1m
- áááŞáŤá á¨SIGINT ááááľ á¨á°áá á á áá ááá á°ááŁáŤáľ á¨ááá°áá¸á á ááľ 1 á°áá áĽááłáá¸á ááááťáá˘
ECS_ENGINE_AUTH_TYPE=docker
- áááŞáŤá á¨ááŤáááá°á á¨áśá¨á áĽá
áľ áĽáá° á¨áááľ áá´ áĽá
á áá áááá
ECS_ENGINE_AUTH_DATA=...
- á¨áśáá°á ááľáá˝á áá° ááááĄá áľ á¨áá ááŤáŁ áááἠá¤áľ á¨áááááľ áááŞáŤáá˝á˘ ááá á¨áá ááá ááá áááá˝ á áŤáľáááááľáá˘
ááá
á˝áá ááá á¨Docker Hub á¨áá ááľá áĽá ááááᣠáľááá
áááŞáŤáášá ááááš ECS_ENGINE_AUTH_TYPE
и ECS_ENGINE_AUTH_DATA
á áŤáľáááá.
ááá
áĽáŠ ááá˘: á¤á¤áá áá á áá°á áááľ áááá ááá¨áŤá ᣠááááŤáąá á á˛áľ áľáŞáśá˝ á¨áśá¨á ᣠáááᾠᣠá˘á˛á¤áľ ááŞá ᣠááá° áľáŞáśá˝á áŤáťá˝áá ᢠáá
áá áááááłáľ ᣠáá˝áá á˘
EC2 áŤáľ-áááŞáŤ áĄáľá
á ááśáá˛á ááá áĄáľá á ááŁááá˝á ááááá áĽá ááááŤáľ áááááľ á áá áľá˘ áĄáľáá˝ á¨áá°áłá°áŠáľ á EC2 -> á ááśáá˛á ááá -> áŤáľ-áááŞáŤ áĄáľáá˝ ááá ááľáĽ ááá˘
á áĽááľ á áľááá - áŁááá á°á¨á á¨á°áá á¨áá á áĽááľ ááá¨áĄá˘ ááŁáŞáá áľáŞáľ áĽáá°ááá.
á¨áᢠá ááŤáŽá˝ áĽá á¨á áĽááľ ááááśá˝ - ááááľá°á á¨á áĽááľ ááááśá˝á áááášá˘ á¨ááľáááŞáŤáá á áĽááľ áá¨á°á á¨á ááĽá á áĽááľ á¨á áĽááľ á áááľá áá áááᢠá¨áᢠá ááŤáŽá˝á áĽá á¨á áĽááľ ááááśá˝á áŤáŁáአá¨á áĽááľ ááááśá˝á á á°áááá áĽáá˛áŤáá አáŤáľá˝áááłáᢠáĽáá áááá.
á ááŤá á ááááľ áá°á¨áľ - áááá á¨áá°áŠ áá°á á ᣠáŚáł áŤááá á ááŁááá˝ áĽááľá˘
á ááááľ ááśá á¨áá á¨áľ á áá - á¨áá°á á áĽá á¨áŚáł á ááŁááá˝ ááśá áŹážáŁ 50-50 áĽáŠá áá°áŤáŤáᣠ20-80 ááĽáŤááłááą áá°á á ááłá 4 áľááá˝ áááłáᢠááá ááłá ááá 50-50 áĽá áááá ᣠáá á áĽáááą áĽá áĽááá áá 20-80 áĽáá°áááá ᣠá á ááłááľ áááłáá˝ 0-100á˘
á¨á áĽááľ ááááśá˝ - áĽáá á áááľá°á ááľáĽ áĽá á áá á¨ááá á°á¨á᪠á¨á áĽááľ ááááśá˝á áááá˝ áá˝ááᢠá¨áłáŞáŠá áľááá á áľááá áľááááŁá á áášá á áá°á áááá áľáᢠááááŁáľ áá á á°áá°á á¨á áĽááľ ááááśá˝ áá áŁáá áá°áĽ ááááŤáľ áá, ááá áá á áľáá á ááá áá¨áአáá˝áá. áááá¨áťáá áŤáá á á áľá°áŤá¨áśáš ááľáĽ áłáἠá°áľ áááá)
á ááłá¨ áá¨áĽ â á¨á ááłá¨ áá¨áĽ ááźáśá˝áŁ ááá˝áá˝ VPC áĽá áááľ á ááłá¨ áá¨áŚá˝á ááá¨áĄáŁ á á áĽááááš áááłáá˝ áááá á¨ááááľá áááľ á ááłá¨ áá¨áŚá˝ ááá¨áĽ á ááĽááľá˘
áááľ áááľ - áááá á áá áśá˝ ᣠáá áá áá á á°ááĽá áĽáá°áááá ᣠáĽáá ááá ááá á áááŤáᢠá¨á¤á ááááŤáá˝ á ááá ááááŤáá˘
á¨áĄáľá áá á - á áááľá°á ááľáĽ áŁááľ á¨áá˝áá˝ áĽááľ áá áŤááá áá°áĽ áĽá á á áá áá á¨áááááľá áá˝áá˝ áĽááľ áĽáá ááááᢠá áááľá°á ááľáĽ áŤááľ á¨áá˝áá˝ áĽááľ á¨á°á áá°á áá á°á áĽá á¨áá°áá á ááŤá˝ áŤáá° á ááááᣠááá áĽááłá á áááŞáŤááš áá°á¨áľ áááá á˘áá ááá˘
á¨áááŞáŤ ááá˛áá˝ - á¨áááŞáŤ áááŞáŤáὠᣠáá á áá°áŠáľ ᨠECS á°ááŁáŤáľ áá á áááľá¨áľ áĽáááŤáá ᣠáľááá ááŹáąá á áá áĽááá áŤááá˘
á¨ááłá ááŹáľ-ááľáĽ áĽá á - á ááááąá áľ áá áááłáá˝á á¨áá°á¨á áá¨áá¨áᢠASG á¨áá°áŠ áľáŤáá˝ áŤááá áá˝á áĽááłáá°áá áĽáá°áŤáááᢠá¨ECS á á á á á áŤá˘ á°ááŁá áááá¸á ááłáŽá˝ áĽá áá áŤá°ááááá˘
áááŤáá˝á áŤáá - áá áĽááľ áááŤáá˝á áááá˝ áá˝áá (ááá ᣠá á˛áľ áááŤáá˝ á áááŤá˝ áłáĽá ááá°á˝ á áá áľ)ᢠá¨áľá áááŤáá áĽáá˛áááš áĽáááŤáá, á¨á፠á áĄáľá ááľáĽ á¨á°ááአááá á ááŁááá˝ á°ááłáłá áľá áááŤá¸áá, áĽá á áŽááśá ááľáĽ ááá¨áľ ááš áá.
áĄáľáá á¨áá አá áá ááááąáľ áĽá áá° á¨áá áá áŽá˝ ááá áááąá˘ááá ááá á ááŤáŽá˝ á áŽááśá ááľáĽ á ááĽá¨áľ á°á¨á á ááłáŠáá˘
á¨ááá¨áĽ ááá˛áá˝ - áááłáá˝á á áá°ááá áľ áá áááľ ááľáĽ á¨ááᥠá áá˝á˘ áĽááą á á á°á á°á¨á°á áá°áá áŤá. áĽááá áá á¨áłá˝ á ááľá áá áŤááľá áĽáá áááá. á ááááŞáŤáŁ á áŁá áĽááłáá á¨ááľáááŞáŤ á áĽááľ áŤáá¸á ááłááá˝ áá°á¨áá (áááłáᣠá¤á¤áá áá áŤáááá á á˛áľ áľáŞáľ áá áá ᣠáá ááá áááłáá˝ áá° áĽáą ááá¨áŠ á˝ááá)ᢠá¨á፠ááááĽáá á¨áá፠á°ááľ á áŁá á áἠá¨áááľ áááłáá˝ á°ááá ááᢠáĽá á¨á፠á áŁá áĽááłáááš á¨ááá¨áĄáľ á á°ááłá áľ áá áá á áááľá¨áľ ááá˘
ááá
áĽáŠ ááá˘áááá áá˝áá˝ á áááľá°á ááááá ᣠááá áá ááš
á¨áá°áá áŞáŤ áááľ ááá áĽá EC2 ááá áĄáľá
ááá á¨á°áá á¨á á ááá EC2 â Load Balance â Load Balancers ááľáĽ ááᢠá¨á áááŹá˝á ááľ áŁáááľ áĽáá ááááá¤á¨á°ááŤáŠ á¨ááłáĽ á°áŞáá˝ áá˝á˝á á áá ááá ἠááťááá˘
á áľááŽá˝ - áá°áŚá˝ 80 áĽá 443 ááľáŤáľ áĽá ᨠ80 áá° 443 á á áŁáŤ ááá ááááŤáłá áá á áá ááá á áá˝á á áá ááá˘
á°ááááľ ááá˝ - á á áĽááááš á ááŁááá˝ áááá á°á á¨á°á°áŤá˝ááľ ááá˝á áĽááááŁáá.
á¨á°á
áááľ á
ááĽáŽá˝á áŤáá
አ- áá°ááŁáŁá á¨á¤áľ á¤áľ á¤á á¨ááľáá áá¨ááľ áĽáá
á°á ááá ᣠá áŁá áášá á ááŤá ááᢠELBSecurityPolicy-2016-08
. áááá á¨áá አá áá áŤáŠáłá á¨á˛ á¤á á¤áľ áľáCNAMEá áááŤá
ááááá á¨ááŤáľáááá
ᢠáááłáᣠá Cloudflare ááľáĽ áĽáá°áá
áááľááá˘
á¨á°á áááľ áĄáľá â ááŁá ááá á¨á°á áááľ áĄáľá áá á ááá áá¨áĽáŁ áľááá ááłá á¨áá á EC2 Launch Template â Network settings ááá ááľáĽ á¨á áá á˝ááŤááá˘
ááá áĄáľá - áĽáŤááá˝á á¨á°ááŁáŁá áá˝á áá° áá˝áá˝ á¨ááá áĽá á á˝ááŽá˝ áá áĽááąá ááá°áŤáľ áŤáá¸áá á°ááááľ á¨ááŁáŤáľ áááááľ áŤáá áĄáľá áĽáááĽáŤááᢠGetáá ááááľ ááłá ááá á áá ᾠᣠááŽáśáŽá и áá°áĽ áááááᣠá á°ááŁáŁá áĽá á áááłáá˝ ááŤá¨á ááááá HTTPS á¨áá áá á¨ááᣠá¨ááľáá áá¨ááľ ááĽááą ááľáá áŤáľáááááłáᢠááá ááłá ááá áá áá á áá°ááá, á ááá áá°áĽ 80 áĽáá°áááá.
á¨á¤á ááááŤáá˝ - á¨á áááááąá á°ááŁáŤáááľ áááá°á˝ áááŞáŤáá˝. á áĽááá°á á ááááᾠᣠáá á¨áááľ áĽáŤ á áááᎠá áľááá áááá˝á á¨áá°áá á á¨á°áᨠáĽáŤá ááá á áá ᾠᣠááá ââááłá ááá ᣠááŁáŞ á ááĽáŽá˝á áĽá°ááááᢠá ááá á á¨áĽáŤááá ááá°áľ áŁá¨áá ááĽá፠áŁá¨áľáŹáľ áŽáśá˝á ááá° ááá¨áĽ áá˝ááá˘á áĽá ááłá ááľáĽ á¨áľáŹáľ áŽáśá˝ 200-399 áĽáá áááá ááááŤáąá áĽá á áá á¨áááá Docker ááľá 304 áŽáľ ááááłáá˘
ááááá˝á ááááᥠ- áĽáá á¨áĄáľá ááŞáá˝ á°ááá áá, ááá áá á áĽá áááł áá á ECS áá¨áááá, áľááá áá á á°á¨á áĽáť áĽáááááá.
ááá
áĽáŠ ááá˘: á á°ááŁáŁá á°á¨á á á°áá°áá ááľáĽ á S3 ááľáĽ á¨áááᥠáááἠááľáłááťáá˝á ááááľ áá˝áá
ECS á°ááŁá áľááá
á áá°ááľ á°á¨ááá˝ á¨á áááááľ áá á¨á° áááľ áá á¨á°áŤáŤá áááá áááŽá˝ áá áá, á áá á¨ááááłáŁá¸áá áŽáá´áááŽá˝ áá° áááá˝ áĽáááĽááá. áá á ECS â á¨á°ááŁá ááááŤáá˝ ááá ááľáĽ áá¨áááá.
á¨ááľáááŞáŤ á áááľ á°áłááááľ - EC2 á ááá¨áĄá˘
á¨á°ááŁá á áááá IAM áá - ááá¨áĄ ecsTaskExecutionRole
. áĽáąá á áá áá, áááἠááľáłááťáá˝ á°á˝ááá, ááľáĽáŤá á°ááááŽá˝ ááłá¨áť á°á°áĽáˇá, ááá°.
á áŽáá´ááá ááşáá˝ ááá ááľáĽ áŽáá´ááá á áá á¨áááá á á áŤáľááá˘
ááľá â ááľáá á¨ááŽáááľ áŽáľ áá áááááľá¤ ááá
ááłá á¨Docker Hub á¨áá ááľá áĽá ááááá˘
á¨ááľáłááľ áá°áŚá˝ - áááŤáŁá á¨áá á°á¨ áľááľáł áá°áŚá˝. á¨áŁáľ áá°áĽ - á ááŤáŤ áá°áĽ, ááŤáŁá á¨á°á áá°á áĽá´áľ á áá á¨áá°, á¨áśá¨á ááľáŤ áľááá ááá¸áá, ááŤáŁá áá˛áŤáá áááłá. ááľááł áá°á - ááľááł áá°áĽ, ááŤáŁá á¨á°á áá°á áĽá´áľ á áá áááľ áá˝áá, ááá áá áá áá¤áľ á áá˝áá˝ áá áľáŤáá˝á á˛áá áááľ ááľáĽ áááŁá. áááłá á ááľ áá˝á 4 áᢠáŤá áŤáá áĽá á¨áĽá ááŤáŁá ááľááł áá°áĽ 2048 áᢠá¨áá áá áá˝á á áá áŽáá´ááá á˘á á 2 á¨áŠáŤ áľáŤáá˝ áááŠáľ áá˝ááᢠáĽáá° áĽáááą á¨áá 4 áᢠáŤá á¨4096 áᢠá áľááš áŤáá° ááᣠáá á áááľá°á ááľáĽ áŁáá ᨠECS á ááŁááá˝ áľá áá ááłá áá˝ááᢠááľááł áá°áĽ á¨á ááŤáŤ áá°áĽ ááĽáἠá áá˝áá. á á ááľ á°ááŁá ááľáĽ áĽá áŽáá´áááŽá˝ áŤá, áá°áŚáťá¸á áá áááá á¨áááá áá¨áłáľ á áľááá áá.
áá°áĽ áŤááłáá˝ - ááľáĽ á áľá°ááá
áá°áĽ áĽá 0 áĽáá áááá, áá
áááľ áá°áĄ á á°ááááááľ ááá°áŁá áĽá á ááá áĄáľá ááĽáĽá áá°á¨áá áłá áááľ áá. á¨ááŤáŁ áá°áĽ - áááá¨áťá á¨áá áŤá áľ áá°áĽ áĽááá áá á á áááá áľááá ááľáĽ ááááťá ááá á áá°áá áŞáŤ áŽáľá ᣠDockerfile ᣠááá° ááľáĽ ááá°áŁá ᢠááĽá ááłá 3000 áĽáá áááá ááááŤáąá á ááľáĄ á°ááááŻá
á¨á¤á ááá፠- á¨ááŤáŁ á¤á áá°áť áááŞáŤáá˝áŁ á ááá áĄáľá ááľáĽ á¨á°ááá¨á áá áááłáłáľ á¨áá áľáá˘
á áŤáŁá˘ - á¨á áŤáŁá˘ á ááĽáŽá˝. á¨á˛áአáááá˝ - á¨áá á°á¨ áľááľáł áá°áŚá˝ áá á°ááłáłá ᣠáľá ááŽá°á°á áĽáťá˘ áĽáŤááłááą ááŽá°á°á áŽá 1024 á ááśá˝ áá áľááá á áááአáŁááááľ áŽá ááŽá°á°á áŤáá áĽá áĽáá áá° 512 á¨á°ááᨠá áá áŽáá´ááá 4 áľáŤáá˝ á á ááľ á áááá áá áááአáá˝ááᢠá¨á˛áአá ááśá˝ áá áá á¨áŽáŽá˝ áĽááľ áá ááááłá ᣠáĽáá° áá á°á¨ áľááľáł áá áľáá˝ áľáá˝ ááá á áá˝ááá˘
áľáĽáá - á ááŤáŁá ááľáĽ á áááááľ ááááá áľáĽáá ᣠááá áááŞáŤáá˝ á áá á á°á¨áá˝ á°ááá°ááᢠáá
gunicornᣠnpmᣠááá° ááá áá˝ááᢠáŤáá°ááá¸áŁ á¨Dockerfile á¨CMD áááŞáŤ áá áĽá
á áá ááááᢠáĽáá ááááᢠnpm,start
.
á¨á áŤáŁá˘ á°ááááŽá˝ - ááŤáŁ á áŤáŁá˘ á°ááááŽá˝. áá
ááá á¨á˝áá ááἠááá ááľáĽáŤá á°ááááŽá˝ ᨠááá áá˝ááá˘
áá¨ááť áĽá áááἠááľáłááť - áĽáá á CloudWatch Logs (á¨AWS á¨áááἠááľáłááťáá˝ á áááááľ) ááľáĽ áááŁáľá áĽááááááᢠáá áá áááľá¨á ᨠCloudWatch Logs á áááŤá˝ áłáĽáá á áŤáľ-áááá áĽáť áŤááᢠá¨á°ááŁá ááşáá á¨áá አá áá á¨áááἠááľáłááťáá˝ áĄáľá á áŤáľ-á°á á CloudWatch ááľáĽ ááá áŤáᢠá ááŁáŞ áŁ áááἠááľáłááťáá˝ á áĽáą ááľáĽ ááá°áá°á áá áá¨ááťá ᣠá¨áá፠áááá ᨠNever Expire áá° á áľáááá áá áĽáá˛ááአáĽáááŤáá ᢠáá á CloudWatch Log áĄáľáá˝ ááľáĽ áá¨áááá, á áá áŤááá áá á á ááľá¨á áĽá á á˛áľ ááá¨áĽ áŤáľáááááłá.
á¨ECS áááľá°á áĽá á¨ECS á á á á á áŤá˘
ááá áááá á áá° ECS â ááááá˝ ááá áááąá˘ áĽáá° á áĽááľ EC2 Linux + Networking áĽááááŁááá˘
á¨áááľá°á áľá - á áŁá á áľáááᣠá á áĽááľ ááľáááŞáŤ áá¤áľ ááľáĽ á¨á°ááá¸á áá á ááľ á áááľ áľá áĽáá
áĽáá°áááá ECS_CLUSTER
á áĽá áááł - DemoApiClusterProd
. áŁáś áááľá°á áá á á áááŤá˝ áłáĽá áá ááááľ áŤáľááᢠá á ááŤáᣠá CloudWatch ááľáĽ á¨á áááááśá˝ áááŞáŤáá˝á ááá¨áľ Container Insightsá ááááľ áá˝ááᢠáááá ááá á áľááá áŤá°á¨ááľ, á ECS ááłááá˝ ááá ááľáĽ á á ááśáá˛á áááŞáŤ áĄáľá ááľáĽ á¨á°áá አáá˝áá˝á áŤáŤá.
áá° áľá áááą á á á á á áŤá˘áá˝ áĽá á á˛áľ ááá áŠ. áĽáá° ECS á°ááŁáŤáľ áĽááľ áá á áááľá¨áľ á¨áá˝áá˝á ááá á áĽá ááááľ ááááŁá á áĽáá°ááŤáľááá ááľáłááľáᢠá á áŤá˘á áá ááľ áĄáľá áĽáť ââááá°áĽ áĽáá°áá˝á áἠááŁá á¨áááŁá ááłá ááá˘
áŤáľ-á°á áááŞáŤ áĄáľá - áá°á á˛á á¨á°áá á¨áá áĄáľá ááá¨áĄá˘
á¨áá°áłá°á ááŹáľ - á á áŤá˘á á áááááąá áĽáá˛áŤáłáľá ááááľá˘
á¨ááá á á á % - áá áŤá á á ááśá á á°ááŁáŽá˝ á¨á°áŤá áá˝áá˝ áĽááááááᢠ100% á¨áááš ááá áá˝áá˝ áá áá á á°ááŁáŤá áľáŤáá˝ áá ááłáᢠáĽááľá 50% á¨áááš, á¨á፠áááš ááŞáá˝ áááá ááť áááá. á áá áááł, á áááľ ááľáĽ áľááłá ááá áŤá, á á˛áľ áłáá˛áá˝ áá˛áŤáá áá° ááŞááá˝ ááť áááá, áááłáá˝á ááááááľ áá á á áłáŤáľáááá¸á.
á¨áá°áłá°á á¨ááá¨áŤ áĽá á - á ááᣠáá áá¤áľ á á áŤá˘á á¨á ááŁááá˝á áĽá á á¨áá°á¨á áĽáá˛áŤáľáááľ áŤáľá˝áááᢠáá á¨áááá á áá˝á áá ááá áá á°ááŁáŤáľ á¨áá áĽá á¨ááá á á áá á˛áá áľ áá.
ECS á áááááľ áĽá ááŹáľ áááá
á¨áá¨á¨áťá á°á¨á :) á áááááľá áááá á áá°á á˛á á á áááááľ áľá áá áá° á°áá ᨠáááľá°á áááľ áŤáľáááááłáá˘
á¨ááľáááŞáŤ ááááľ â áá° á á á á á áŤá˘ áľáľáŤá´á ááá á¨áááá á á ááľá¨á áĽá áá°á á˛á á¨á°áá áŠáľá á á áŤá˘áá˝á ááá¨áĽ áŤáľáááááłáá˘
á¨á°ááŁá ááş - á¨áá áá°á á¨á°áá á¨áá á¨á°ááŁá áľááá áĽá ááťáťáŤáá ááá¨áĄá˘
á¨á áááááľ áľá - á፠áááŁáľá áááľáááľ áááá á¨á°ááŁá ááş áá á ááľ á áááľ áĽáá ááááá˘
á¨á áááááľ ááááľ - áááá áááŁáá˘
á¨á°ááŁáŽá˝ áĽááľ - á á áááááą ááľáĽ á¨áááááá á¨áá á°ááŁáŤáľ áĽááľ. áá áá¤áľ á¨áááŁá á¨á á áá á ááᣠáá á ááá áááá˝ á áá áľá˘
á˘áŤááľ á¤áá ááśá и á¨áá°áá ááśá - á áá°ááŠá áľ áá á¨á°ááŁáŽá˝á áŁá ᪠ááá°á ᢠááŁáŞ áááá˝ 100 áĽá 200 áá¸á, áá á á á°á°ááŠá áľ áá á¨á°ááŁáŽá˝ áĽááľ áĽá áá áĽáá°áá¨áá áĽá á¨ááŤá áá° á°áááá áĽá´áľ ááááłá. 1 á°ááŁá áĽá¨áŽá ᣠmin=0 áĽá max=100 áŤáá áŁá áá°ááŤáą áá áľ ááá°áááŁá¨ááŤá á áá á á˛áľ áááłááŁáá á á¨áĽá¨ááľ áá ááááᢠ1 á°ááŁá áĽá¨áá° á¨áá min = 50, max=150, á¨á፠áá°ááŤáľ á ááŤá˝ á áááá, ááááŤáąá 1 á°ááŁá á ááá˝ áá¨ááá ááá á á ááľ á°áŠá áá áá¨áá á ááťáá.
á¨áá°ááŤáľ á áááľ - á¨áŽááá áááá áá°ááľá˘
á¨á áááἠá áĽááśá˝ - áľáŤáá˝á á áá˝áá˝ áá áááľááἠá°ááŚá˝. ááŁáŞá AZ Balanced Spread áá - áá áááľ á ááá á°á°áŤá˝ ááá˝ ááľáĽ áŤá áá˝áá˝ áĽáľáŞááą áľá¨áľ áĽáŤááłááą á á˛áľ á°ááŁá á á á˛áľ ááłá áá ááááŁá áááľ ááᢠáĽá áĽááá áá BinPack - CPU áĽá Spread - AZ áĽáá°áŤááᤠá áá ááᲠá á°áťá áá á á°ááŁáŤáľ á áĽáŤááłááą á˛áአáá á á ááľ áá˝á áá ááááŁáᢠá á˛áľ áá˝á áááá á á áľááá á¨áá á á á˛áľ á°á°áŤá˝ áá ááľáĽ ááá áŤá.
á¨ááŤá ááá á áááľ - á¨áá°áá áŞáŤ áááľ áááá ááá¨áĄá˘
á¨á áááááľ IAM áá - ááá¨áĄ ecsServiceRole
.
áŤá ááá á áŁá áľá - áá°á á˛á á¨á°áá á¨áá ááá ááá¨áĄá˘
á¨á¤á ááá፠á¨áĽáááł áá - á á˛áľ áĽáŤ á¨á áŤá á áá á¨á¤á ááá፠á¨ááľá¨áá á ááľ áá áá á ᣠáĽááá áá áá° 60 á°á¨ááľ áĽáááááá á˘
ááá áááŤá ááŤáŁ - á ááá áĄáľá áľá ááĽá ááľáĽ, áá°á á˛á á¨á°áá á¨áá áĄáľá ááá¨áĄ, áĽá ááá ááá á áŤáľ-á°á áááá.
á¨á áááááľ áŤáľ-áá á - á¨á áááááľ ááŹáľ áááŞáŤáá˝. á¨áĽááľáá á áááááľ á¨áááááá áá ፠áááľá°áŤá¨á á áááááľá á áá á á¨áááá ááá¨áĄá˘ á áááŤá áľ áá áá á°ááá áĽá á¨áá°ááá á¨á°ááŁá áĽááľ áĽááááááá˘
á¨IAM áá áá áááááľ áŤáľ-áá á - ááá¨áĄ AWSServiceRoleForApplicationAutoScaling_ECSService
.
áŤáľ-á°á á¨á°ááŁá ááŹáľ áááŞáŤáá˝ - á¨áá á á áá˝á˘ 2 ááááśá˝ á á-
- á¨ááá ááľáľá - á¨ááá áááŞáŤáá˝á áá¨áłá°á (á¨á˛ááŠ/áŤá á á ááá ááá ááĽáŤááłááą á°ááŁá á¨áĽáŤááá˝ áĽááľ)ᢠáááłá, á¨á ááŤá ááŽá°á°á áááľ 85% áĽáá˛áá áĽáááááá, á¨á áŤá á˛áá, á¨áłááá áĽá´áľ áá áĽáľáŞá°ááľ áľá¨áľ á áłá˛áľ áľáŤáá˝ áá¨ááŤá. áááą áá á°á á¨áá, á¨ááŤá á°ááŁáŽáš ááááłá, á á°ááŤáá, áá° áłá˝ ááá¨áľ áá¨áá¨áŤ áŤááá á áľá°áá (ááááá á á°ááá).
- á¨á°á¨á ááŹáľ - á¨áááá° ááľá°áľ ááá˝á˘ áĽáá áááááá ááľá°áľ (CloudWatch Alarm) ááá˝á áááá áá˝áá, á˛á¨á°áľ, á¨á°ááášáľá á¨á°ááŁáŽá˝ áĽááľ áá¨á ááá ááľáááľ ááá áľáááááá á¨á°ááŁá áĽááľ áááá˝ áá˝áá.
á ááľ á áááááľ áĽá á¨áááŞáŤ á áá˝ áááŠáľ áá˝áá, áá á áá ááá áá˝áá, ááá ááá áĽááľ á áĽááłá¸á áĽááłááአáá¨ááἠáá.
áá°áá°ááŤ
áááŞáŤáášá á¨á°á¨á°á áĽá á°ááłáłáŠá Docker ááľá á¨á°á áá á áááááľá áĽáá°áá áŤá áá˝ ááááľ á áá áľá˘
- á á áááááą ááľáĽ áŤá ááá áá˝áá˝ á¨ááááŠá áľ á áĽááľ áá ááᢠá áĽááľ á˛áá¨á áá˝áá˝á áĽáá´áľ áááá áĽáá°ááá˝áá á°áá¨ááá˘
- á¨áľááľ áááłá á¨ááá፠á˛ááá áá°áľá á áá á¨áááᣠáľááá á¨á°á¨á°á á áá á á ááľ á°áá ááľáĽ ááá á¨ááľáŹáľ áľáŤáá˝ á¨áá˝á áá áľáááááą ááá á áá áá ááá á ááá¨áĽáá˘
- á¸ááá á áá˝ááš áá áĽáŠá ááá¨ááá áááá á ááłá.
- á¨áá˝á ááŞá á 3 áá áŤá á á¨ááááľ á áááááľ á áŚáł áááłáá˝ áá ááĽá¨ááá˘
- á¨á°á¨áአá¨áľáŤ áŤááá˝á áááľá°áááľ á áááąá á á áŁáŤ á ááśáá˛áá á áá á¨á á¨á°á áľ á᪠áłáááŁá˘
- á áááŹá˝á á¨áá á¨á° áááľ á ááłáŽá˝á (áá˝áá˝á) áĽáá˛áŤáľá°áłáľá á á á á á áŤá˘á áĽáá áááá áĽáá á á°ááŤáá á áá°ááá˘
- ááἠááá˘
ááááą á¨áá˝á áááśá˝ áŤáááľáŁ áááłá á áľáá
á¨á˘áá áááť áá áĽáŤáľá°ááá ááᣠááŹáąá á
áĽáá˛áá á¨á°ááŤáŠ á¨áľáááľá áááá˝ á á°áá áá¨á áá á áááľá¨áľ ááŹáľ ááľá¨á áá˝ááᢠáááłá, á°ááŁáŤáááľ á áá
á á áľá°áŤá¨áśáš ááľáĽ áĽáľáááŠá á°áľ áááá áľááľ á ááŁááá˝á áĽá á˘á˛á¤áľá ááá áľá áľáŹá á ááľ ááá áá ááá˘
á á´áŽááľ á áşáá˝ á¨ááá አá¨áľááłá ááľá°áśá˝á á áĽááľ á áááá á ááá ááá (á ááááĽ) áĽá á¨á áááááśá˝ ááááł GitLab CI áĽá Terraform Cloud áĽáá´áľ áĽáá°áá°áŤ á¨ááááš á˝ááá˝ á á áᥠáááŤáá˘
áĽáá áááááĄ, á áľá°áłá˝ áááá!
á áłá°áł áĽááą ááľáĽ á¨á°áááᥠá°á áááá˝ áĽáť ááłá°á áá˝ááá˘
á áááľ ááľáĽ á¨áŚáł ááłááá˝á áľá áááá ?
-
22,2%á á 6
-
66,7%No18
-
11,1%áľáááą á¨á ááľ ááŁáĽá á°áááŠá áĽá áĽááąá ááá áá áĽá áľ á áá3
27 á°á áááá˝ áľáá˝ á°áĽá°ááᢠ5 á°á áááá˝ áľáá á°á á
ጠá áľááááá˘
ááá: hab.com