á¡á¬ážáá¯á¶ážáááºá¹ááá¬áá«! áá»áœááºá¯ááºáá¡áááºááŸá¬ Kirill ááŒá áºááŒá®ážá áá»áœááºá¯ááºááẠAdapty ááœáẠCTO ááŒá áºáááºá áá»áœááºá¯ááºááá¯á·á áááá¯áá¬áááºáá¬á¡áá»á¬ážá á¯ááẠAWS ááœááºááŸáááŒá®ážá ááá±á·áá»áœááºá¯ááºááá¯á·ááẠáá¯ááºáá¯ááºáá±ážáááºáááºážáá»ááºááœáẠá¡á ááºá¡ááŒá±á¬ááºááŒá áºáááºáá»á¬ážááá¯á¡áá¯á¶ážááŒá¯ááŒááºážááŒáá·áº áá¬áá¬áá¯ááºáá»á ááááºááᯠ3 ááá»áŸá±á¬á·áá»áááºážááŸáá·áº áááºážááá¯á·áá¡ááá¯á¡áá»á±á¬ááºá áá±ážáá»ááŒááºážááᯠáááºááá¯á·áááºááŸááºááááºááᯠááœá±ážááœá±ážáá«áááºá ááááŠážá áœá¬ áááºážááẠáááºááá¯á·á¡áá¯ááºáá¯ááºáááºááᯠááŒá¯á¶áá¯á¶áá¯á¶ážáááºááŒá®áž á áááºáááºá¡ááœáẠá¡áá±ážá áááºáááºážááœáŸááºáá»ááºáá»á¬áž áá«ááŸááá«áááºá
Spot Instances ááá¯áᬠáá¬áá²á
á¡á±á¬ááºáá±á¬áºááŒáá« áá¯á¶áá»á¬ážááẠáá±áá¬ááœááºááŒá áºáááºáá»á¬ážá¡ááœáẠá á»á±ážááŸá¯ááºážááŸááºáááºážááá¯ááŒáááá·áº áááºáá¬ážááŒááºáá¬ááºáá¯á¶á¡áá»áá¯á·ááŒá áºáááºá
m5.eu-west-1 (á¡áá¯ááºáá¬áááº) áá±áááœáẠááŒá®ážáá¬ážáááºá á á»á±ážááŸá¯ááºážááẠá¡áá»á¬ážá¡á¬ážááŒáá·áº 3 áááŒá¬áááºááŒáááºáá²á·ááŒá®áž áááºááŸáááœáẠ2.9x áááºáá¬áááºá
m5. us-east-1 áá±á (N. Virginia) ááœáẠááŒá®ážáá¬ážáááºá á á»á±ážááŸá¯ááºážááẠáááŸáááá¯ááºááŸá¯áá¯ááºáá±á«áºáá°áááºá 3x á០2.3x á¡áá áá±á¬áá±á¬ááẠ2.8 áá¡ááœááºáž á¡áááºáááŒááºááŒá±á¬ááºážáá²áá±áá«áááºá
t3. us-east-1 áá±á (N. Virginia) ááœáẠáá±ážáááºáááºá á á»á±ážááŸá¯ááºážááẠ3 áááŒá¬áááºááŒáááºáá²á·ááŒá®áž áá±á¬áá±á¬ááẠ3.4x áááºáá¬áááºá
áááºáá±á¬ááºááŸá¯áááá¯áá¬
á€áá±á¬ááºážáá«ážááœááºáá»áœááºá¯ááºááá¯á·ááŒá±á¬ááá·áºáááºáá±á¬ááºááŸá¯áá¡ááŒá±áá¶áááºáá±á¬ááºáá¯á¶á¡á¬ážá¡á±á¬ááºáá«áá¯á¶ááœááºáá±á¬áºááŒáá¬ážáááºá
Application Load Balancer â EC2 Target Group â Elastic Container Service
Application Load Balancer (ALB) ááᯠEC2 Target Group (TG) ááá¯á· áá±á¬ááºážááá¯áá»ááºáá»á¬ážááᯠáá±ážááá¯á·ááá·áº áá»áááºááœááºáá»áŸá¬á¡ááŒá Ạá¡áá¯á¶ážááŒá¯áá«áááºá TG ááẠALB áá»á¬ážá¡ááœáẠá á¶ááá°áá¬áá»á¬ážáá±á«áºááœáẠááááºáááºážáá»á¬ážááœáá·áºááŒá®áž áááºážááá¯á·á¡á¬áž Elastic Container Service (ECS) ááœááºááááºáá¬áá»á¬ážá ááááºáááºážáá»á¬ážááŸáá·áº áá»áááºáááºááŒááºážá¡ááœáẠáá¬áááºááŸááá«áááºá ECS ááẠDocker containers áá»á¬ážááᯠá á®áá¶ááá·áºááœá²ááá·áº AWS ááŸá Kubernetes á analogue áá áºáá¯ááŒá áºáááºá
á¥ááá¬áá áºáá¯ááœáẠáá°áá®áá±á¬ port áá»á¬ážáá«ááŸáááá·áº ááœááºááááºáá¬á¡áá»á¬ážá¡ááŒá¬áž áááºáááºáá±ááá¯ááºáá±á¬ááŒá±á¬áá·áº áááºážááá¯á·ááᯠá¡ááá¡áá»áááºááŸááºááááá«á ECS á áááºážááẠá¡áá¯ááºá¡áá áºáá áºáá¯ááᯠá áááºáá¯ááºáá±á¬ááºáá±ááŒá±á¬ááºáž TG á¡á¬áž ááŒá±á¬ááŒááẠ( Kubernetes áá±á«áá¬áá¡á áááºážááᯠpod áá¯áá±á«áºáááº)á áááºážááẠá¡ááá²á· port áá»á¬ážááᯠinstance ááŸá á á áºáá±ážááŒá®áž áááºážááá¯á·áá²á០áá áºáá¯ááᯠá áááºáá¯ááºáá±á¬ááºááẠáá¬áááºáá±ážá¡ááºáááºá TG ááẠáá»ááºážáá¬áá±ážá á áºáá±ážááŸá¯ááᯠá¡áá¯á¶ážááŒá¯á á¥ááá¬ááŸáá·áº API ááẠáááºážááœááºá¡áá¯ááºáá¯ááºááŒááºážááŸááááŸáááá¯áááºáž áá¯á¶ááŸááºá á áºáá±ážááŒá®áž ááŒá¿áá¬áá áºá á¯á¶áá áºáá¬ááœá±á·áá«á áááºážááẠáá±á¬ááºážááá¯áá»ááºáá»á¬ážááᯠáá±ážááá¯á·ááŒááºážá¡á¬áž áááºááœá¬ážáááºááŒá áºáááºá
EC2 á¡ááá¯á¡áá»á±á¬áẠá¡ááá¯ááºážá¡áá¬á¡ááœá²á·áá»á¬áž + ECS á áœááºážáá±á¬ááºááẠáá¶á·ááá¯ážáá±ážáá°áá»á¬áž
á¡áááºáá±á¬áºááŒáá« áá¯á¶ááẠEC2 Auto Scaling Groups (ASG) áááºáá±á¬ááºááŸá¯ááᯠáááŒáá«á áá¬áááá»á¬ážááᯠáá»á²á·ááœááºááẠáá¬áááºááŸáááŒá±á¬ááºáž á¡áááºááŒáá·áº áááºáá¬ážáááºááá¯ááºáááºá ááá¯á·áá±á¬áºáááºáž áááŒá¬áá±ážáá®á¡ááá AWS á០ECS á០áááºáááºáá±áá±á¬ á ááºá¡áá±á¡ááœááºááᯠá á®áá¶ááá·áºááœá²ááẠáááºáááºáá¬ážáá±á¬ á áœááºážááẠáááŸááá«á ECS ááẠáá¯ááºáá±á¬ááºá áá¬á¡áá±á¡ááœááºááᯠá¥ááá¬á¡á¬ážááŒáá·áº CPU á¡áá¯á¶ážááŒá¯ááŸá¯á RAM ááá¯á·ááá¯áẠáá±á¬ááºážááá¯ááŸá¯á¡áá±á¡ááœááºá¡á¬ážááŒáá·áº á¡ááá¯ááºážá¡áá¬áá áºáá¯á¡áá ááŒá¯áá¯ááºáá±ážááá¯ááºáá²á·áááºá ááá¯á·áá±á¬áº áá¯ááºáááºážáá±á¬ááºáá¬áá»á¬ážááẠá¡ááá²á·áá¬áááá»á¬ážá¡á¬ážáá¯á¶ážááᯠááááºážááá¯ááºáá«áá á ááºá¡áá áºáá»á¬ážááẠá¡ááá¯á¡áá»á±á¬áẠáááºáá®ážááá¯ááºáááºááá¯ááºáá±á
ECS á áœááºážáá±á¬ááºáááºáá¶á·ááá¯ážáá±ážáá°áá»á¬áž (ECS CP) ááœááºážáá¬ážáá¬áá±á¬á¡áá« áááºážááẠááŒá±á¬ááºážáá²ááœá¬ážáá²á·áááºá ááᯠECS ááŸá áááºáá±á¬ááºááŸá¯áá áºáá¯á á®ááẠASG áá áºáá¯ááŸáá·áº áááºá ááºááá¯ááºááŒá®áž á¡áá¯ááºáá»á¬ážááᯠáá¯ááºáá±á¬ááºáá±ááá·áº á¡ááŒá±á¡áá±áá»á¬ážááœáẠá¡áááºáááŒá±áá«á á¡áá áºáá»á¬ážááᯠááŒáŸáá·áºáááºááœá¬ážááẠ(ááá¯á·áá±á¬áº áááºááŸááºáá¬ážáá±á¬ ASG ááá·áºáááºáá»ááºáá»á¬ážá¡ááœááºáž)á ECS CP ááẠáá¯ááºáá±á¬ááºá áá¬áá»á¬ážáááŸááá² idle instance áá»á¬ážááá¯ááŒááºáá«áá áááºážááẠáááºážááá¯á·á¡á¬áž ááááºááẠASG á¡áááá·áºáá±ážáááºááŒá áºáááºá ECS CP ááẠinstance load á áá áºááŸááºáá¬ááá¯ááºááŸá¯ááºážáá áºáá¯ááᯠáááºááŸááºááá¯ááºá áœááºážááŸááááºá ááá¯á·ááŒá±á¬áá·áº á¡áá»áá¯á·áá±á¬ á ááºá¡áá±á¡ááœááºááẠáá»ááºááŒááºá áœá¬ á¡ááœááºá¡á á¬ážáá»á²á·ááœááºááẠáá¯ááºáá±á¬ááºá áá¬áá»á¬ážá¡ááœáẠá¡ááŒá²áááºážá¡ááá²á·ááŒá áºáá±á á±áááºá áááºážá¡ááŒá±á¬ááºážááᯠáá±á¬ááºá¡áááºážáááºááŒá¬á០ááŒá±á¬ááŒáá«áááºá
EC2 Launch Templates
á€á¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶ááá¯áááºáá®ážááŒááºážááŸáá·áºáááºáááºá á¡áá±ážá
áááºááá±á¬áºááŒáá® áá»áœááºá¯ááºááŒá±á¬ááá·áºáá±á¬ááºáá¯á¶ážáááºáá±á¬ááºááŸá¯ááŸá¬ EC2 Launch Templates ááŒá
áºáááºá áááºážááẠá¡áá»áááºááá¯ááºážááœáẠáááºážááᯠá¡á
ááŸááŒááºááá¯ááºá
á±ááẠá
ááºá¡á¬ážáá¯á¶ážá
áááºááá·áºá¡ááá¯ááºáž áá¯á¶á
á¶áááááºáá
áºáá¯ááᯠáááºáá®ážááá¯ááºá
á±áááºááŒá
áºáááºá á€ááœáẠáááºááẠá
áááºááẠá
ááºá¡áá»áá¯ážá¡á
á¬ážá áá¯á¶ááŒá¯á¶áá±ážá¡ááœá²á·á áá
áºááºáá¯ááºáá¯á¶ááŸáá·áº á¡ááŒá¬áž ááá·áºáááºáá»ááºáá»á¬ážá
áœá¬ááᯠááœá±ážáá»ááºááá¯ááºáááºá á
áááºáá±á¬ááºááœááºáá²á·ááá·áº ááŒá
áºáááºáá»á¬ážá¡á¬ážáá¯á¶ážááá¯á· á¡ááºáá¯ááºáááºááá·áº áá¯á¶ážá
áœá²áá°áá±áá¬ááá¯áááºáž ááẠáááºááŸááºááá¯ááºáááºá áááºá¡áá¯á¶ážááŒá¯áá°áá±áá¬ááœáẠscripts áá»á¬ážááᯠrun ááá¯ááºáááºá á¥ááá¬á áááºááẠááá¯ááºáá
áºáá¯á á¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááᯠáááºážááŒááºááá¯ááºáááºá
á€áá±á¬ááºážáá«ážá¡ááœáẠá¡áá±ážááŒá®ážáá¯á¶áž configuration parameters áá»á¬ážáá²á០áá
áºáá¯ááŒá
áºáááºá
disk - AWS áááŒá¬áá±ážáá®á
áááºáá±á¬ááºááŸá¯áá áºáá¯áááºáá®ážááŒááºážá
áá±á¬áºááŒáá¬ážáá±á¬ áááºáá±á¬ááºááŸá¯ááᯠáááºáá®ážááŒááºážááá¯á· áááºááœá¬ážááŒáá«á áá¯á·á áá¯ááºáááºážá ááºááœááºá á¡áááºááœááºáá±á¬áºááŒáá¬ážááŒááºážáááŸááá±á¬ á¡áá¯á¶ážáááºáá±á¬á¡áá»ááºáá»á¬ážá áœá¬ááᯠáááºáá¶áá±á¬áºááŒáá«áááºá áá±áá°áá»á¡á¬ážááŒáá·áºá á€á¡áá¬ááẠá¡ááá·áºááá·áºááœáŸááºááŒá¬ážáá»ááºáá áºáá¯ááŒá áºáááºá ááá¯á·áá±á¬áº á¡áá»áá¯á·áá±á¬ á¡ááœááºá¡ááŒá±áá¶áá»áá±á¬ ááá¯á·ááá¯áẠááá·áºáá»ááºáááºá¡áá±ááŒáá·áºá á¡ááœááºáááá»áá±á¬ááá á¹á áááºáá»á¬ážááᯠáá»áœááºá¯ááºááá·áºááœááºážá ááºážá á¬ážáááºááá¯ááºáá«á áá¯ááºáá±á¬ááºáá»ááºá¡á¬ážáá¯á¶ážááᯠAWS visual console ááœáẠáá¯ááºáá±á¬ááºáá±á¬áºáááºáž CloudFormation ááá¯á·ááá¯áẠTerraform ááᯠá¡áá¯á¶ážááŒá¯á áááá¯ááááºááŒáá·áº ááŒááºáááºáá¯ááºáá¯ááºááá¯ááºáá«áááºá Adapty ááœááºáá»áœááºá¯ááºááá¯á·ááẠTerraform ááá¯á¡áá¯á¶ážááŒá¯áááºá
EC2 Launch Template
á€áááºáá±á¬ááºááŸá¯ááẠá¡áá¯á¶ážááŒá¯ááá·áº á ááºáá»á¬ážá áá¯á¶á á¶ááᯠáááºáá®ážáá±ážáááºá ááá°áá¬áá»á¬ážááᯠEC2 -> Instances -> Launch templates ááá¹áááœáẠá á®áá¶ááá·áºááœá²áá«áááºá
Amazon á
ááºáá¯ááºáá¯á¶ (AMI) â ááŒá
áºáááºáá»á¬ážá¡á¬ážáá¯á¶ážááᯠá
áááºááá·áº disk áá¯á¶á¡á¬áž áááºááŸááºáá«á ECS á¡ááœááºá ááá
á¹á
á¡áá»á¬ážá
á¯ááœáẠAmazon á០á¡áá±á¬ááºážáá¯á¶ážááŒá
áºá¡á±á¬ááºááŒá¯áá¯ááºáá¬ážáá±á¬áá¯á¶ááᯠá¡áá¯á¶ážááŒá¯ááá»áá¯ážáááºáááºá áááºážááᯠáá¯á¶ááŸááºááœááºážáá¶ááŒá®áž ECS á¡áá¯ááºáá¯ááºááẠááá¯á¡ááºáá±á¬ á¡áá¬á¡á¬ážáá¯á¶áž áá«áááºáá«áááºá áááºááŸá áá¯á¶ ID ááᯠááááŸáááẠá
á¬áá»ááºááŸá¬ááá¯á· ááœá¬ážáá«á
á¥ááᬠá¡áá»áá¯ážá¡á á¬áž - á¥ááá¬á¡áá»áá¯ážá¡á á¬ážááá¯áá±á¬áºááŒáá«á ááá·áºá¡áá¯ááºááŸáá·áº á¡ááá¯ááºáá®áá¯á¶ážááᯠááœá±ážáá»ááºáá«á
áá±á¬á·ááœá² (áá±á¬á·ááºá¡ááº) â ááá¯á¡ááºáá«á SSH ááŸáá áºááá·áº ááẠinstance ááá¯á· áá»áááºáááºááá¯ááºááá·áº áááºááŸááºááᯠáááºááŸááºáá«á
ááœááºáááºáááºáááºáá»á¬áž - ááœááºáááºáá±á¬ááºáá»á¬ážááᯠáááºááŸááºáá«á ááœááºáááºáá»áááºáááºááŸá¯ááááºáá±á¬ááºáž ááá á¹á á¡áá»á¬ážá á¯ááœáẠVirtual Private Cloud (VPC) ááŸáááá·áºáááºá áá¯á¶ááŒá¯á¶áá±ážá¡á¯ááºá á¯áá»á¬áž - ááá·áºááŒá áºáááºáá»á¬ážá¡ááœáẠáá¯á¶ááŒá¯á¶áá±ážá¡ááœá²á·áá»á¬ážá áá»áœááºá¯ááºááá¯á·ááẠááŒá áºáááºáá»á¬ážááŸá±á·ááœáẠáá»áááºááœááºáá»áŸá¬ááᯠá¡áá¯á¶ážááŒá¯áááºááŒá áºáá±á¬ááŒá±á¬áá·áº áááºáá»ááºáá®ááŸáá¬áá»áŸáẠá¡áááºáá»áááºáááºááŸá¯áá»á¬ážááᯠááœáá·áºááŒá¯ááá·áº á€áá±áá¬ááœáẠá¡á¯ááºá á¯áá áºáá¯ááᯠáááºááŸááºááẠá¡ááŒá¶ááŒá¯ááá¯áá«áááºá ááá¯ááá¯áááºááŸá¬ ááá·áºááœáẠáá¯á¶ááŒá¯á¶áá±ážá¡á¯ááºá ᯠ2 áá¯ááŸááááºááŒá áºááŒá®ážá áá áºáá¯ááẠbalancer á¡á¯ááºá á¯á០áááºááá·áº ports áá»á¬ážá០á¡áááºáá»áááºáááºááŸá¯áá»á¬ážááá¯áááᯠports 80 (http) ááŸáá·áº 443 (https) ááœáẠáááºááá·áºáá±áá¬ááŸáááºáá±á¬ááºááœáá·áºááŒá¯ááá·áº inbound connections áá»á¬ážááá¯ááœáá·áºááŒá¯áá±á¬á áá¯ááááá áºáá¯ááẠmachines á¡ááœááºááŒá áºááŒá®ážá . á¡á¯ááºá á¯ááŸá áºáá¯á áá¯á¶ážááŸá ááŒááºááá»áááºáááºááŸá¯áá»á¬ážááᯠTCP áááá¯ááá¯áá±á¬ááᯠá¡áá¯á¶ážááŒá¯á ááááºá á¬á¡á¬ážáá¯á¶ážááá¯á· ááááºáááºážáá»á¬ážá¡á¬ážáá¯á¶ážááá¯á· ááœáá·áºááá«áááºá á¡ááœááºáá»áááºáááºááŸá¯áá»á¬ážá¡ááœáẠááá¯á·ááºáá»á¬ážááŸáá·áº ááááºá á¬áá»á¬ážááᯠáááºááá·áºáááºáá¬ážááá¯ááºáá±á¬áºáááºážá ááá¯á·áá±á¬ááºááœáẠááááºáá¬ážáá±á¬ port áá áºáá¯á០áá áºá á¯á¶áá áºáá¯ááᯠáááºáá±á¬ááºááẠááŒáá¯ážá á¬ážáá±ááŒááºážááá¯ááºááŒá±á¬ááºáž á¡ááŒá²á á±á¬áá·áºááŒáá·áºáá±ááẠááá¯á¡ááºáá«áááºá
ááá¯ááŸá±á¬ááºááŸá¯ (á¡ááœá²áá»á¬áž) â á ááºáá»á¬ážá¡ááœáẠdisk áá±á¬ááºáá»á¬ážááᯠáááºááŸááºáá«á áá áºááºá¡ááœááºá¡á á¬ážááẠAMI ááœáẠáááºááŸááºáá¬ážááá·áºááẠááááºážááá¯ááºáá«á ECS Optimized á¡ááœáẠáááºážááẠ30 GiB ááŒá áºáááºá
á¡ááá·áºááŒáá·áºá¡áá±ážá áááºá¡áá»ááºá¡áááºáá»á¬áž - á¡ááá¯áááºááŸááºáá»ááºáá»á¬ážááá¯áááºááŸááºáá«á
áááºáá°ááŸá¯ááœá±ážáá»ááºááŸá¯ - áá±áá¬á á¯á¶ áá¬ááááœá±ááᯠáááºáá»ááºááá¬ážá áá»áœááºá¯ááºááá¯á· ááá¯áá»ááºáááºá ááá¯á·áá±á¬áº á€á¡ááœááºááᯠá€áá±áá¬ááœáẠá¡ááŸááºááŒá áºáááºááá¯ááºáá«á áá»áœááºá¯ááºááá¯á·ááẠáááºážááᯠAuto Scaling Group ááœáẠconfigure áá¯ááºáááºááŒá áºááŒá®ážá ááá¯áá±áá¬ááœáẠáá±á¬ááºááẠááœá±ážáá»ááºá áá¬áá»á¬ážááŸááá«áááºá
IAM á¥ááᬠáááá¯ááá¯áẠâ ááŒá
áºáááºáá»á¬ážááᯠá
áááºááá·áº á¡áááºážááá¹áááᯠáá±á¬áºááŒáá«á ECS ááœáẠáá¬áááá»á¬ážááᯠáá¯ááºáá±á¬ááºáááºá¡ááœááºá áááºážááá¯á·ááẠá¡áááºážááá¹áááœáẠá¡áá»á¬ážá¡á¬ážááŒáá·áº ááœá±á·ááá±á·ááŸááá±á¬ ááœáá·áºááŒá¯áá»ááºáá»á¬áž ááá¯á¡ááºáá«áááºá ecsInstanceRole. á¡áá»áá¯á·ááá
á¹á
áá»á¬ážááœááºá ááá¯ááºáá«á á€áá±áá¬ááœáẠáááºáá®ážááá¯ááºáááºá
áá±á¬ááºáá
áºáá¯ááá±á¬á· ááá·áºáááºáá»ááºááœá± á¡áá»á¬ážááŒá®ážááŸááá«áááºá á¡ááŒá±áá¶á¡á¬ážááŒáá·áº áááºá áá±áá¬ááá¯ááºážááŸá¬ áá¯á¶áá±áááºááá¯ážááœá±ááᯠáá»ááºáá¬ážááá¯ááºáá±ááá·áº áá
áºáá¯áá»ááºážá
á®ááŸá¬ ááŸááºážááŸááºážáááºážáááºáž áá±á¬áºááŒáá»ááºááŸááá«áááºá á¡áá¯á¶ážááŒá¯áá«á EBS-optimized instance ááŸáá·áº T2/T3 Unlimited options áá»á¬ážááᯠá¡ááŒá²ááœáá·áºáá«áááºá
á¡áá¯á¶ážááŒá¯áá°á¡áá»ááºá¡ááẠ- á¡áá¯á¶ážááŒá¯áá°áá±áá¬ááá¯áá±á¬áºááŒáá«á ááá¯ááºááᯠáááºážááŒááºáá«áááºá /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
â á¡á
ááºá¡ááŒá±á¬áẠáá¬áááá
áºáá¯ááᯠááááºááẠá¡áá»ááºááŒááŸá¯ááᯠáááºáá¶áááŸááá±á¬á¡áá«á áááºážááŸá áá¯ááºáá±á¬ááºá
áá¬á¡á¬ážáá¯á¶ážááᯠDraining á¡ááŒá±á¡áá±ááá¯á· ááœáŸá²ááŒá±á¬ááºážááá·áºáááºáᯠááá·áºáááºáá»ááºá áááºááŸááºáááºá
ECS_CONTAINER_STOP_TIMEOUT=1m
- SIGINT á¡áá»ááºááŒááŸá¯ááᯠáááºáá¶áááŸáááŒá®ážáá±á¬ááºá áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážá¡á¬ážáá¯á¶ážááᯠááááºáá® 1 áááá
áºá¡ááá¯ááœáẠáááºááŸááºáá±ážáá«áááºá
ECS_ENGINE_AUTH_TYPE=docker
â ááá·áºáááºáá»ááºááẠDocker á¡á
á®á¡á
ááºááᯠááœáá·áºááŒá¯áá»ááºááá¹ááá¬ážá¡ááŒá
Ạá¡áá¯á¶ážááŒá¯ááŒá±á¬ááºáž ááœáŸááºááŒáááºá
ECS_ENGINE_AUTH_DATA=...
â áááºá Docker áá¯á¶áá»á¬ážááᯠááááºážáááºážáá¬ážááá·áº áá®ážááá·áºááœááºááááºáᬠááŸááºáá¯á¶áááºááŒááºážááá¯á· áá»áááºáááºááŸá¯ ááá·áºáááºáá»ááºáá»á¬ážá á¡áá»á¬ážáá°ááŸá¬ááŒá
áºáá«á áááºááá·áºá¡áá¬ááá¯áá»áŸ áááºááŸááºáááºáááá¯á¡ááºáá«á
á€áá±á¬ááºážáá«ážááááºááœááºáá»ááºá¡ááœááºá áá»áœááºá¯ááºááẠDocker Hub á០á¡áá»á¬ážáá°ááŸá¬áá¯á¶áá
áºáá¯á¶ááᯠá¡áá¯á¶ážááŒá¯áááºá ááá¯á·ááŒá±á¬áá·áº ááá·áºáááºáá»ááºáá»á¬ážááᯠáááºááŸááºáá«á ECS_ENGINE_AUTH_TYPE
О ECS_ENGINE_AUTH_DATA
áá«áá¬áááá¯á¡ááºáá«áá°ážá
áááááºá¡áá¯á¶ážáááºáá±á¬- áá¬ážááŸááºážá¡áá
áºáá»á¬ážááẠDockerá Linuxá ECS á¡á±ážáá»áá·áºá
áááºááŒáá·áº áá¬ážááŸááºážá¡áá
áºáá»á¬ážááᯠá¡ááºááááºáá¯ááºáá¬ážáá±á¬ááŒá±á¬áá·áº AMI ááᯠáá¯á¶ááŸááºááœááºážáá¶ááẠá¡ááŒá¶ááŒá¯áá¬ážáááºá áááºážááᯠááá±á·áááºá áááºáá¯ááºááá¯ááºáááº
EC2 Auto Scaling Group
Auto Scaling Group ááẠááŒá áºáááºáá»á¬ážááᯠá áááºááŒááºážááŸáá·áº áá»áááºááŸáááŒááºážá¡ááœáẠáá¬áááºááŸááááºá á¡ááœá²á·áá»á¬ážááᯠEC2 -> Auto Scaling -> Auto Scaling Groups ááá¹áááœáẠá á®áá¶ááá·áºááœá²áá«áááºá
ááá°áá¬áá¯á¶á á¶ááᯠá áááºáá«á â ááááºá¡ááá·áºááœáẠáááºáá®ážáá¬ážáá±á¬ áá¯á¶á á¶ááᯠááœá±ážáá»ááºáá«á áá»áœááºá¯ááºááá¯á·ááẠáá°áááºážáá¬ážááŸááºážááᯠáá»ááºáá¬ážáá²á·áááºá
áááºáá°ááŸá¯ááœá±ážáá»ááºá áá¬áá»á¬ážááŸáá·áº á¥ááá¬á¡áá»áá¯ážá¡á á¬ážáá»á¬áž â á¡á á¯á¡áá±ážá¡ááœáẠááŒá áºáááºá¡áá»áá¯ážá¡á á¬ážáá»á¬ážááᯠáááºááŸááºáá«á Launch Template á០instance á¡áá»áá¯ážá¡á á¬ážááᯠá¡áá¯á¶ážááŒá¯ááŒá®áž Launch Template ááá¯ááá¯ááºáá¬áá«á áááºáá°ááŸá¯ááœá±ážáá»ááºá áá¬áá»á¬ážááᯠáá±á«ááºážá ááºááŒá®áž áá¬ááá¡áá»áá¯ážá¡á á¬ážáá»á¬ážááẠááá·áºá¡á¬áž á á¶ááá°áá¬á¡áá»áá¯ážá¡á á¬ážáá»á¬ážááᯠááá¯ááºáá»á±á¬áá®ááœá±ááŒá áºá¡á±á¬áẠá á®á ááºáááºááŸááºááá¯ááºá á±áá«áááºá á¡á²áá«ááᯠáá¯á¶ážáááºá
ááœá±ážáá»ááºááá¯ááºáá±á¬ On-Demand á¡ááŒá±áᶠ- á¡ááŒá²á¡áá¯ááºáá¯ááºááá·áº áá¯á¶ááŸááºááá¯ááºáá±á¬ ááŒá áºáááºá¡áá±á¡ááœááºá
á¡ááŒá±áá¶á¡áááºáááºááá¯á¡á¬áž áá¬ááá¯ááºááŸá¯ááºáž - áá¯á¶ááŸááºááŒá áºáááºáá»á¬ážá áá¬ááá¯ááºááŸá¯ááºážá¡áá»áá¯ážá¡á á¬ážá 50-50 ááᯠá¡áá®á¡áá»áŸ ááœá²áá±áá±ážáááºááŒá áºááŒá®áž áá¯á¶ááŸááºáá¬áááá áºáá¯á á®á¡ááœáẠ20-80 ááᯠááŒáŸáá·áºáááºáááºááŒá áºáááºá á€á¥ááá¬ááááºááœááºáá»ááºáá»á¬ážá¡ááœááºá áá»áœááºá¯ááºááẠ4-50 ááá¯ááœáŸááºááŒáááºááŒá áºáá±á¬áºáááºáž áááºááœá±á·ááœáẠáá»áœááºá¯ááºááá¯á·á¡áá»á¬ážá á¯ááẠ50-20á á¡áá»áá¯á·áá±á¬ááá á¹á áá»á¬ážááœáẠ80-0 ááŒá áºáááºá
ááá°áá¬áá¯á¶á á¶áá»á¬áž â á€áá±áá¬ááœáẠá¡á á¯á¡áá±ážááœááºá¡áá¯á¶ážááŒá¯ááá·áº áá±á¬ááºáááºá¥ááá¬á¡áá»áá¯ážá¡á á¬ážáá»á¬ážááᯠáááºáááºááŸááºááá¯ááºáááºá áá¬ááºáááºážáá²á· á¡áááá¹áá«ááºááᯠááááºáá¬ážááááºááá¯á· ááá¯á¶ážáá°ážáá«áá°ážá áááºážááẠáááºááŸááºáá¬ážáá±á¬ áá¬ááá¡áá»áá¯ážá¡á á¬ážáá»á¬ážá¡áá±á«áº ááá·áºáááºáá»ááºáá»á¬ážááŒá±á¬áá·áº ááŒá áºááá¯ááºáá±á¬áºáááºáž áááºážááá¯á·ááᯠáá¶á·ááá¯ážááŸá¯ááŸáá áºááá·áº á¡ááœááºááá° ááá¯ážááŒáŸáá·áºááá¯ááºáááºá á¡ááá®áá±ážááŸááºážááᯠááááẠcomment ááŸá¬ áááºááá¯á· áááºážáá¬áá«áááº)
Network â ááœááºáááºáááºáááºáá»á¬ážá á ááºáá»á¬ážá¡ááœáẠVPC ááŸáá·áº subnets ááá¯ááœá±ážáá»ááºáá«á ááá á¹á á¡áá»á¬ážá á¯ááœáẠáááºáááŸáááá¯ááºááá·áº ááœááºáááºááœá²á¡á¬ážáá¯á¶ážááᯠááœá±ážáá»ááºááá·áºáááºá
áááºáá»áááºááœáẠ- áá»áááºááœááºáá»áŸá¬áááºáááºáá»á¬ážá ááá¯á·áá±á¬áº áá»áœááºá¯ááºááá¯á·ááẠáááºážááᯠáá®ážááŒá¬ážáá¯ááºáá±á¬ááºáááºááŒá áºááŒá®ážá áá»áœááºá¯ááºááá¯á·ááẠá€áá±áá¬ááœáẠáááºááá·áºá¡áá¬ááá¯áá»áŸ ááááá«á áá»ááºážáá¬áá±ážá á áºáá±ážááŒááºáž áá±á¬ááºááŸáááºáž configure áá¯ááºáá«áááá·áºáááºá
á¡á¯ááºá á¯á¡ááœááºá¡á á¬áž â áá»áœááºá¯ááºááá¯á·ááẠá¡á á¯á¡áá±ážááŸá á ááºá¡áá±á¡ááœááºááŸáá·áº á áááºáá»áááºááœáẠá¡ááá¯ááŸááá±á¬ á ááºá¡áá±á¡ááœááºá¡áá±á«áº ááá·áºáááºáá»ááºáá»á¬ážááᯠááœáŸááºááŒáá«áááºá áááºááá áºáá»á¬ážá¡ááá¯ááºáž ááá¯ááºážáá¬ááŸá¯ááŒá¯áá¯ááºááá·áºáá±á¬áºáááºáž á¡á á¯á¡áá±ážááŸá á ááºá¡áá±á¡ááœááºááẠá¡áááá·áºáá¯á¶áž áááºááŸááºáá¬ážááá·áº á¡áááá·áºáá¯á¶ážááŸáá·áº á¡ááŒáá·áºáá¯á¶ážááẠáááá¯á á±ááá«á
á¡ááá¯ááºážá¡áᬠáá°áá«ááá»á¬áž â á¡ááá¯ááºážá¡áá¬ááá·áºáááºáá»ááºáá»á¬ážá ááá¯á·áá±á¬áº áá»áœááºá¯ááºááá¯á·áá¯ááºáá±á¬ááºáá±ááá·áº ECS ââáá¯ááºáá±á¬ááºááŸá¯áá»á¬ážá¡áá±á«áºá¡ááŒá±áá¶á á áá±ážáá»áá±ážáááºááŒá áºáá±á¬ááŒá±á¬áá·áº áá±á¬ááºááá¯ááºážááœáẠá áá±ážááá¯ááŒááºáááºáá«áááºá
á¥ááá¬-á áá±áž-á¡ááœááºážáá¬ááœááºááŸá¯ - á¡ááœááºá¡á á¬ážáá»áŸá±á¬á·ááá·áºá¡áá« áá»ááºááŒááºážá០áá¬áááá»á¬ážááᯠá¡áá¬á¡ááœááºáá±ážáááºá áá»áœááºá¯ááºááá¯á·ááẠáááºážááá¯ááœáá·áºáá¬ážáá±á¬ááŒá±á¬áá·áº ASG ááẠáá¯ááºáá±á¬ááºáá±ááá·áºá¡áá¯ááºáá»á¬ážááᯠáá»ááºáá áºáááºááá¯ááºáá«á ECS Capacity Provider ááẠáá¯ááºáá±á¬ááºá áá¬áá»á¬ážáááŸááá±á¬ ááá á¹á áááºáá»á¬ážá¡ááœáẠá¡áá¬á¡ááœááºááᯠááááºáá«áááºá
tags ááá·áºáá« â áááºááẠáá¬áááá»á¬ážá¡ááœáẠáááºáá»á¬ážááᯠáááºááŸááºááá¯ááºááẠ(ááá¯á¡ááœááºá Tag new instances checkbox ááᯠá¡ááŸááºááŒá áºáá¬ážááááº)á á¡áááºáááºááºááᯠáááºááŸááºááẠáá»áœááºá¯ááºá¡ááŒá¶ááŒá¯ááá¯áá«áááºá ááá¯á·áá±á¬áẠá¡ááœá²á·á¡ááœááºážááœáá·áºáá¬ážááá·áº ááŒá áºáááºáá»á¬ážá¡á¬ážáá¯á¶ážááẠá¡áááºáá°ááŒá áºáᬠáááºážááá¯á·ááᯠááœááºááá¯ážááºááœáẠááŒáá·áºááŸá¯ááẠá¡áááºááŒá±áá«áááºá
á¡ááœá²á·ááá¯áááºáá®ážááŒá®ážáá±á¬ááºá áááºážááá¯ááœáá·áºááŒá®áž Advanced configurations ááá¹áááá¯á·ááœá¬ážáá«á áááºáá®ážááŸá¯á¡ááá·áºááœáẠconsole ááœáẠááœá±ážáá»ááºá áá¬á¡á¬ážáá¯á¶ážááᯠá¡áááºááŒá±á¬áá·áºáááŒááºáááááºážá
áááºá á²áá±ážáá°áá«ááá»á¬áž â ááŒá áºáááºáá»á¬ážááᯠáá»ááºáá¬ááœáẠááá·áºááœááºážá ááºážá á¬ážáááá·áº á ááºážáá»ááºážáá»á¬ážá á¡áááá·áºááŸáááŸá áá»áŸá±á¬ááºáá¬ážááŒáááºá á¡á±á¬ááºáá±á¬áºááŒáá«áá¯á¶ááœáẠáá»áœááºá¯ááºááá¯á·á¡áá¯á¶ážááŒá¯áá±á·ááŸááá«áááºá ááŸá±ážáŠážá áœá¬á ááŸá±ážá¡áá»áá¯á¶áž Launch Template áá«áá±á¬ ááŒá áºáááºáá»á¬ážááᯠáá»ááºááá¯ááºááẠ(á¥ááá¬á áá»áœááºá¯ááºááá¯á·ááẠAMI ááᯠááœááºážáá¶áá«áá áá»áœááºá¯ááºááá¯á·ááẠáá¬ážááŸááºážá¡áá áºááᯠáááºáá®ážáá¬ážáá±á¬áºáááºáž ááŒá áºáááºá¡á¬ážáá¯á¶ážááᯠáááºážááá¯á· ááŒá±á¬ááºážááá¯ááºáááº)á ááá¯á·áá±á¬áẠáá±á¬ááºáá¬ááá·áºááœá±áá±ážáá»á±ááá·áºáá¬áá®ááŸáá·áº á¡áá®ážáá¯á¶ážááŒá áºáááºáá»á¬ážááᯠááœá±ážáááºá ááá¯á·áá±á¬áẠááœáŸáá·áºáááºááá·áºáááºá áœá²áá±á«áºáá°áááºá á¡áááºá¡ááŒá®ážáá¯á¶ážáá»á¬ážááᯠááœá±ážáá»ááºáááºá
áááááºá¡áá¯á¶ážáááºáá±á¬: á¡áá¯á¶ážááŒá¯ááẠá¡áááºááŒá±áá±á¬ á¡á
á¯á¡áá±ážáá
áºáá¯á¡ááœááºážááŸá á
ááºá¡á¬ážáá¯á¶ážááᯠá¡ááºááááºáá¯ááºáááº
á¡ááá®áá±ážááŸááºáž Load Balancer ááŸáá·áº EC2 áá áºááŸááºá¡á¯ááºá á¯
áá»áááºááœááºáá»áŸá¬ááᯠá¡ááá¯ááºáž EC2 â Load Balancing â Load Balancers ááœáẠáááºáá®ážáá¬ážáááºá áá»áœááºá¯ááºááá¯á·ááẠApplication Load Balancer ááá¯á¡áá¯á¶ážááŒá¯áá«áááºá ááá°áá®áá±á¬ balancers á¡áá»áá¯ážá¡á
á¬ážáá»á¬ážá ááŸáá¯ááºážááŸááºáá»ááºááᯠááœááºáááºááŸá¯ááá¯ááºáá«áááºá
áá¬ážáá±á¬áẠ- áá±á¬ááºááá¯ááºážááœáẠbalancer á ááºážáá»ááºážáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯á ports 80 ááŸáá·áº 443 ááá¯ááŒá¯áá¯ááºááŒá®áž 80 á០443 ááá¯á·ááŒááºááœáŸááºážááŒááºážááẠá¡áááá¹áá«ááºááŸááá«áááºá
áááŸáááá¯ááºááá·áºáá¯ááºáá»á¬áž â ááá á¹á á¡áá»á¬ážá á¯ááœááºá áá°ááá¯ááºážá¡ááœáẠáááºáá±á¬ááºááá¯ááºááŸá¯áá¯ááºáá»á¬ážááᯠáá»áœááºá¯ááºááá¯á· ááœá±ážáá»ááºáá«áááºá
áá¯á¶ááŒá¯á¶áá±ážáááºáááºáá»á¬ážááᯠá
á®á
ááºáááºááŸááºáá«á â Balancer á¡ááœáẠSSL áááºááŸááºááᯠá€áá±áá¬ááœáẠááœáŸááºááŒáá¬ážááŒá®ážá á¡áááºááŒá±áá¯á¶áž ááœá±ážáá»ááºááŸá¯ááŸá¬ ELBSecurityPolicy-2016-08
. Balancer ááá¯áááºáá®ážááŒá®ážáá±á¬ááºá áááºáááºáááºážááá¯ááœá±á·áááá·áºáááºá DNS á¡áááºááá·áºááá¯ááááºážá¡ááœáẠCNAME ááᯠconfigure áá¯ááºááẠááá¯á¡ááºáá±á¬á á¥ááá¬á¡á¬ážááŒáá·áºá áááºážááẠCloudflare ááœááºáá¯á¶ááŒá
áºáááºá
áá¯á¶ááŒá¯á¶áá±ážá¡ááœá²á· â áá»áááºááœááºáá»áŸá¬á¡ááœáẠáá¯á¶ááŒá¯á¶áá±ážá¡ááœá²á·áá áºáá¯ááᯠáááºáá®ážáá« ááá¯á·ááá¯áẠááœá±ážáá»ááºáá«á EC2 Launch Template â ááœááºáááºáááºáááºáá»á¬ážááá¹áááœáẠá€á¡ááŒá±á¬ááºážááᯠá¡áááºááœááºáá±ážáá²á·áááºá
áá áºááŸááºá¡á¯ááºá á¯áá áºá ᯠâ áá»áœááºá¯ááºááá¯á·ááẠáá»áááºááœááºáá»áŸá¬á០á ááºáá»á¬ážááá¯á· áá±á¬ááºážááá¯ááŸá¯áá»á¬ážááᯠáááºážááŒá±á¬ááºážááŒá±á¬ááºážáá±ážááẠáá¬áááºááŸááá±á¬ á¡ááœá²á·áá áºááœá²á·ááᯠáááºáá®ážááŒá®áž ááŒá¿áá¬áá»á¬ážááŸááá¬áá«á áááºážááá¯á·ááᯠá¡á á¬ážááá¯ážáááºá¡ááœáẠáááºážááá¯á·ááááŸáááá¯ááºááŸá¯ááᯠá á áºáá±ážááŒááºážá áá áºááŸááºá¡áá»áá¯ážá¡á á¬áž Instance ááŒá áºáááºá áááá¯ááá¯áá±á¬ О ááááºáááºáž áá»áŸááŒá±ááŸáá·áº áá¬áááá»á¬ážááŒá¬áž áááºááœááºáá±ážá¡ááœáẠHTTPS ááᯠáááºá¡áá¯á¶ážááŒá¯áá«áá ááá¯á·áá±á¬áẠáááºážááá¯á·áá¶ááá¯á· áááºááŸááºáá áºáᯠá¡ááºáá¯ááºáá¯ááºááẠááá¯á¡ááºáááºá á€á¥ááá¬ááááºááœááºáá»ááºáá»á¬ážá¡ááœááºá áá»áœááºá¯ááºááá¯á·áááºá€á¡áá¬ááá¯áá¯ááºáá±á¬ááºáááºááá¯ááºáá«á áá»áœááºá¯ááºááá¯á·ááẠport 80 ááá¯ááá¯ážááŸááºážá áœá¬áá¬ážáá²á·áá«áááºá
áá»ááºážáá¬áá±ážá á áºáá±ážááŒááºáž - áááºáá±á¬ááºááŸá¯á áá¯ááºáá±á¬ááºááá¯ááºá áœááºážááᯠá á áºáá±ážáááºá¡ááœáẠáá±á¬ááºáá»á¬ážá á á áºááŸááºáá±á¬áááºáá±á¬ááºááŸá¯áá áºáá¯ááœááºá áááºážááẠáá¯ááºáááºážáá¯áá¹áááá±ááá¡áá±ážááŒá®ážáá±á¬á¡á áááºá¡ááá¯ááºážáá»á¬ážááá¯á¡áá±á¬ááºá¡áááºáá±á¬áºááá·áºáá®ážááŒá¬ážáá±á¬ááºážááá¯ááŸá¯ááŒá áºááá·áºáááºá á€á¥ááá¬ááááºááœááºáá»ááºá¡ááœááºá áá»áœááºá¯ááºááẠáá¯á¶áá±áááºáááºáá»á¬ážááá¯áá¬ážáá²á·áá«áááºá ááá¯á·áá±á¬ááºá áááºááẠáá±á¬ááºážááá¯ááŸá¯ááŒá¬ážáá¬áá á¡áá»áááºáá¯ááºáá¯á¶ážááŸá¯á á¡á±á¬ááºááŒááºááŸá¯áá¯ááºáá»á¬ážá áááºááŒáá·áº ááœá±ážáá»ááºááá¯ááºáááºá áá»áœááºá¯ááºááá¯á·áá¥ááá¬ááœááºá á¡áá¯á¶ážááŒá¯ááá·áº Docker áá¯á¶ááẠ200 áá¯ááºááᯠááŒááºáá±ážáá±á¬ááŒá±á¬áá·áº áá»áœááºá¯ááºááá¯á·áá¥ááá¬ááœááºá áá»áœááºá¯ááºááá¯á·ááẠá¡á±á¬ááºááŒááºááŸá¯áá¯áẠ399-304 ááá¯ááœáŸááºááŒáá«áááºá
áá áºááŸááºáá»á¬ážááᯠá á¬áááºážááœááºážáá«á â á€áá±áá¬ááœáẠá¡ááœá²á·á¡ááœáẠáá¬ážáá»á¬ážááᯠááœá±ážáá¬ážáá±á¬áºáááºáž áá»áœááºá¯ááºááá¯á·á á¡ááŒá±á¡áá±ááœáẠáááºážááᯠECS á០áá¯ááºáá±á¬ááºáááºááŒá áºáá±á¬ááŒá±á¬áá·áº á€á¡ááá·áºááᯠáá»á±á¬áºááœá¬ážáá¯á¶áá¬ááŒá áºáááºá
áááááºá¡áá¯á¶ážáááºáá±á¬: balancer á¡ááá·áºááœáẠS3 ááœáẠááááºážáááºážááá·áº ááŸááºáááºážáá»á¬ážááᯠáááºááœáá·áºááá¯ááºáááºá
ECS Task á¡áááá¹áá«ááº
ááááºá¡ááá·áºáá»á¬ážááœááºá áá»áœááºá¯ááºááá¯á·ááẠáááºáá±á¬ááºááŸá¯á¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶ááŸáá·áºáááºáááºááá·áºá¡áá¬á¡á¬ážáá¯á¶ážááᯠáááºáá®ážáá²á·ááŒá®ážá ááá¯áá»áœááºá¯ááºááá¯á·á áááºáá±á¬ááºážáá»ááá·áºááœááºááááºáá¬áá»á¬ážááá¯áá±á¬áºááŒááẠáááºááœá¬ážáá«áááºá áááºážááᯠECS â Task Definitions ááá¹áááœáẠáá¯ááºáá±á¬ááºáááºá
á¡áá»áá¯ážá¡á á¬ážááá¯ááºáááºáá®ááŸá¯ááá¯ááœáá·áºáá«á - EC2 ááá¯ááœá±ážáá»ááºáá«á
Task execution IAM á¡áááºážááá¹á - ááœá±ážáá»ááºáá«á ecsTaskExecutionRole
. áááºážááá¯á¡áá¯á¶ážááŒá¯á ááŸááºáááºážáá»á¬ážáá±ážáá¬ážááŒááºážá áá»áŸáá¯á·ááŸááºááááºážááŸááºáá»á¬ážáᶠáááºáá±á¬ááºááœáá·áº á
áááºááá¯á·ááᯠáá±ážáá¬ážáááºá
ááœááºááááºáᬠá¡áááá¹áá«ááºááœáá·áºááá¯áá»ááºááá¹áááœáẠAdd Container ááá¯ááŸáááºáá«á
image ááᯠâ ááá±á¬áá»ááºáá¯ááºááŒáá·áº áá¯á¶ááᯠááá·áºááºáá»áááºáá«á á€á¥ááá¬á¡ááœáẠáá»áœááºá¯ááºááẠDocker Hub á០á¡áá»á¬ážáá°ááŸá¬ áá¯á¶áá
áºáá¯ááᯠá¡áá¯á¶ážááŒá¯áá«áááºá
ááŸááºáá¬ááºááá·áºáááºáá»ááºáá»á¬áž - ááœááºááááºáá¬á¡ááœáẠááŸááºáá¬ááºááá·áºáááºáá»ááºáá»á¬ážá Hard Limit - ááá·áºáááºááá·áºáááºáá»ááºá ááœááºááááºáá¬ááẠáááºááŸááºáá¬ážááá·áºáááºááá¯ážááẠáá»á±á¬áºááœááºááœá¬ážáá«áá docker kill command ááᯠáá¯ááºáá±á¬ááºáááºááŒá áºááŒá®ážá ááœááºááááºáá¬ááẠáá»ááºáá»ááºážáá±áá¯á¶ážááœá¬ážáááºááŒá áºáááºá Soft Limit - áá»á±á¬á·áá»á±á¬ááºážáá±á¬ááá·áºáááºáá»ááºá ááœááºááááºáá¬ááẠáááºááŸááºáá¬ážáá±á¬áááºááá¯ážáááºáá»á±á¬áºááœááºááœá¬ážááá¯ááºáá±á¬áºáááºáž á ááºáá»á¬ážááœáẠá¡áá¯ááºáá»á¬ážáááºááá·áºá¡áá«ááœáẠá€ááá·áºáááºáá»ááºááᯠááá·áºááœááºážá ááºážá á¬ážáááºááŒá áºáááºá á¥ááá¬á¡á¬ážááŒáá·áºá á ááºáá áºáá¯ááœáẠRAM 4 GiB ááŸáááŒá®áž ááœááºááááºáá¬áá áºáá¯á áá»á±á¬á·áá»á±á¬ááºážáá±á¬ááá·áºáááºáá»ááºááŸá¬ 2048 MiB ááŒá áºáá«áá á€á ááºááœáẠá€ááœááºááááºáá¬ááŒáá·áº áá¯ááºáá±á¬ááºáá±ááá·áº á¡áá¯ááºá¡áá»á¬ážáá¯á¶áž 2 áá¯ááŸááááºá áááºááœá±á·ááœááºá RAM 4 GiB ááẠ4096 MiB ááẠá¡áááºážáááºáááºážáááºá áááºážááᯠá¡á á¯á¡áá±ážááŸá ECS Instances áááºááºááœáẠááŒáá·áºááŸá¯ááá¯ááºáá«áááºá Soft limit ááẠhard limit ááẠáááá¯ááá¯ááºáá«á á¡áá¯ááºáá áºáá¯ááœáẠááœááºááááºáá¬áá»á¬ážá áœá¬ááŸááá»áŸáẠáááºážááá¯á·á ááá·áºáááºáá»ááºáá»á¬ážááᯠá¡áá»ááºážáá»á¯á¶á·áá¬ážááŒá±á¬ááºáž áá¬ážáááºááẠá¡áá±ážááŒá®ážáá«áááºá
ááááºáááºážááŒá±áá¯á¶áá»á¬áž - in áááºáá¶ááááºáááºáž áá»áœááºá¯ááºááá¯á·ááẠ0 ááᯠááœáŸááºááŒáááºá ááá¯ááá¯áááºááŸá¬ ááááºáááºážááᯠá¡ááºááá¯ááºá¡á¬ážááá¯áẠáá¬áááºáá±ážáááºááŒá
áºááŒá®áž áá
áºááŸááºá¡á¯ááºá
á¯á á
á±á¬áá·áºááŒáá·áºáá±áááºááŒá
áºáááºá ááœááºááááºáá¬ááááºáááºáž â ááá·áºá¡ááá®áá±ážááŸááºážáááºáááºááá·áº port ááᯠexecution command ááœáẠáááŒá¬áááááºááŸááºáá¬ážáááºá ááá¯á·ááá¯áẠááá·áºáá»áŸá±á¬ááºááœáŸá¬áá¯ááºá Dockerfile á
áááºááá¯á·ááœáẠáááºááŸááºáá¬ážáááºá áá»áœááºá¯ááºááá¯á·áá¥ááá¬á¡ááœáẠ3000 ááá¯á¡áá¯á¶ážááŒá¯áááºááŒá
áºáá±á¬ááŒá±á¬áá·áº áááºážááœááºá
á¬áááºážááœááºážáá¬ážáááºá
áá»ááºážáá¬áá±ážá á áºáá±ážááŸá¯ â Target Group ááœáẠááŒááºáááºáá¬ážáá±á¬ ááœááºááááºáᬠáá»ááºážáá¬áá±áž á á áºáá±ážááŸá¯ ááá·áºáááºáá»ááºáá»á¬áž ááŸáá·áº ááá±á¬ááœá±ážá á±áááºá
áááºáááºážáá»áẠ- áááºáááºážáá»ááºáááºáááºáá»á¬ážá CPU áá°áá áºáá»á¬áž - áááá¯áááºáá¬ááŸáá·áº áááºáááºááá·áºáá¬áááºááá¯áá®ááá·áºáááºáá»ááºáá»á¬ážááŸáá·áº áááºáá°áááºá áááá¯áááºáᬠcore áá áºáá¯á á®ááẠ1024 áá°áá áºááŒá áºáááºá ááá¯á·ááŒá±á¬áá·áº áá¬áá¬ááœáẠdual-core áááá¯áááºáá¬ááŸáááŒá®áž ááœááºááááºáá¬ááᯠ512 áᯠáááºááŸááºáá«áá á€ááœááºááááºáá¬áá«ááŸááá±á¬ áá¯ááºáá±á¬ááºá áᬠá áá¯ááᯠáá¬áá¬áá áºáá¯ááœáẠá áááºáá¯ááºáá±á¬ááºááá¯ááºáááºá CPU áá°áá áºáá»á¬ážááẠcores á¡áá±á¡ááœááºááŸáá·áº á¡ááŒá²áááºááá¯ááºáááºá áááºááá¯áá®áá²á·ááá¯á·ááẠáááºážááá¯á·áá²á០á¡áááºážáááºáááºážá áááá«á
á¡áááá·áº - ááœááºááááºáá¬á¡ááœááºáž áááºáá±á¬ááºááŸá¯áá
áºáá¯á
áááºááẠááœáŸááºááŒá¬ážáá»ááºáá
áºáá¯á áá±á¬ááºá¡á¬ážáá¯á¶ážááᯠáá±á¬áºáá¬áá»á¬ážááŒáá·áº ááœá²ááŒá¬ážáááºááŸááºáá¬ážáááºá áááºážááẠáá±áááºá npm á
áááºááŒáá·áº ááŒá
áºááá¯ááºáááºá ááááºááŸááºáá¬ážáá«á Dockerfile á០CMD áááºážááœáŸááºáááºááá¯ážááᯠá¡áá¯á¶ážááŒá¯áá«áááºá áá»áœááºá¯ááºááá¯á·ááœáŸááºááŒáááºá npm,start
.
áááºáááºážáá»ááºááŒá±á¬ááºážáá²ááŸá¯áá»á¬áž - ááœááºááááºáá¬áááºáááºážáá»ááºááŒá±á¬ááºážáá²ááŸá¯áá»á¬ážá áááºážááẠááá¯ážááŸááºážáá±á¬ á
á¬áá¬ážáá±áᬠááá¯á·ááá¯áẠáá»áŸáá¯á·ááŸááºááŒá±á¬ááºážááœá²ááŸá¯áá»á¬áž ááŒá
áºááá¯ááºáááºá
ááá¯ááŸá±á¬ááºááŸá¯ááŸáá·áº áá áºáá¯ááºáá¯ááºáá±áž â á€áá±áá¬ááœáẠáá»áœááºá¯ááºááá¯á·ááẠCloudWatch Logs (AWS á០ááŸááºáááºážáá»á¬ážá¡ááœáẠáááºáá±á¬ááºááŸá¯áá áºáá¯) ááœáẠáá±á¬á·ááºáá¯ááºááŒááºážááᯠáááºááŸááºáá«áááºá áá«ááá¯áá¯ááºááá¯á·á Auto-configure CloudWatch Logs ááᯠá¡ááŸááºááŒá áºáá±ážááá¯ááºáá«á Task Definition ááá¯áááºáá®ážááŒá®ážáá±á¬ááºá ááŸááºáááºážá¡á¯ááºá á¯áá áºá á¯ááᯠCloudWatch ááœáẠá¡ááá¯á¡áá»á±á¬ááºáááºáá®ážáá±ážáááºááŒá áºáááºá áá°áááºážá¡á¬ážááŒáá·áºá ááŸááºáááºážáá»á¬ážááᯠáááºážááœáẠá¡ááá·áºá¡áááºáááŸá ááááºážáááºážáá¬ážáá«áááºá ááááºážááááºážáá¬ážáá»áááºáá¬áááᯠNever Expire á០ááá¯á¡ááºáá±á¬áá¬áááá¯á· ááŒá±á¬ááºážáá²ááẠá¡ááŒá¶ááŒá¯ááá¯áá«áááºá áááºážááᯠCloudWatch Log á¡ááœá²á·áá»á¬ážááœáẠáá¯ááºáá±á¬ááºááŒá®ážá áááºááẠáááºááŸááá¬áááᯠááŸáááºááŒá®áž á¡áá áºáá áºáá¯ááᯠááœá±ážáá»ááºááẠááá¯á¡ááºáááºá
ECS Cluster ááŸáá·áº ECS á áœááºážáá±á¬ááºááẠáá¶á·ááá¯ážáá±ážáá°
á¡á á¯á¡áá±ážáá áºáá¯áááºáá®ážááẠECS â á¡á á¯á¡áá±ážáá»á¬ážááá¹áááá¯á· ááœá¬ážáá«á áá»áœááºá¯ááºááá¯á·ááẠáá¯á¶á á¶áááááºá¡ááŒá ẠEC2 Linux + Networking ááᯠááœá±ážáá»ááºáááºá
á¡á
á¯á¡ááœá²á·á¡ááẠ- á¡ááœááºá¡áá±ážááŒá®ážáá«áááºá áá»áœááºá¯ááºááá¯á·ááẠá€áá±áá¬ááœáẠLaunch Template áá«áá¬áá®áá¬ááœáẠáááºááŸááºáá¬ážááá·áºá¡ááá¯ááºáž á¡áááºáá°ááŒá¯áá¯ááºáá¬ážáááºá ECS_CLUSTER
áá«ááá¯á·ááá
á¹á
ááŸá¬á DemoApiClusterProd
. Create an empty cluster checkbox ááá¯á
á
áºáá±ážáá«á ááœá±ážáá»ááºááá¯ááºáá±á¬á¡á¬ážááŒáá·áºá áááºááẠCloudWatch ááŸááááºáá±á¬ááºááŸá¯áá»á¬ážá¡ááœáẠáááºááá
áºáá»á¬ážááá¯ááŒáá·áºááŸá¯ááẠContainer Insights ááá¯ááœáá·áºááá¯ááºáááºá áááºá¡áá¬á¡á¬ážáá¯á¶ážááᯠááŸááºáááºá
áœá¬áá¯ááºáá±á¬ááºáá²á·áá«á ECS Instances ááá¹áááœáẠAuto Scaling á¡á¯ááºá
á¯ááœáẠáááºáá®ážáá¬ážááá·áº á
ááºáá»á¬ážááᯠáááºááœá±á·ááá«áááºá
áááºááºááá¯á·ááœá¬ážáá«á á áœááºážáá±á¬ááºááẠáá¶á·ááá¯ážáá±ážáá°áá»á¬áž á¡áá áºáá áºáá¯áááºáá®ážáá«á ECS áá¯ááºáá±á¬ááºááá·áº á¡áá±á¡ááœááºáá±á«áºáá°áááºá á ááºáá»á¬ážááᯠáááºáá®ážááŒááºážááŸáá·áº ááááºááŒááºážááá¯á·ááᯠááááºážáá»á¯ááºááẠááá¯á¡ááºááŒá±á¬ááºáž ááááá±ážáá«áá á±á áááºáá±á¬ááºááŸá¯áá±ážáá°áá áºáŠážááᯠá¡ááœá²á·áá áºáá¯ááœááºáᬠáááºááŸááºáá±ážááá¯ááºááŒá±á¬ááºáž áááááŒá¯ááẠá¡áá±ážááŒá®ážáá«áááºá
á¡á±á¬áºááá¯á áá±ážááŸááºážá¡ááœá²á· â ááááºáááºáá®ážáá¬ážáá±á¬á¡ááœá²á·ááᯠááœá±ážáá«á
á¡ááá¯ááºážá¡áá¬ááᯠá á®áá¶ááá·áºááœá²áááºá â áááºáá±á¬ááºááŸá¯áá±ážáá°ááẠáááºáá±á¬ááºááŸá¯ááᯠá¡ááá¯ááºážá¡áá¬ááŒáá·áº áá¯ááºáá±á¬ááºááá¯ááºá á±ááẠáááºážááᯠááœáá·áºáá«á
áá áºááŸááºá áœááºážááẠ% - á¡áá¯ááºáá»á¬ážáááºáá±á¬ááºáá¬ážáá±á¬ á ááºáá»á¬ážá áá¬ááá¯ááºááŸá¯ááºážáááºáá»áŸááá¯á¡ááºááááºážá 100% áááºááŸááºáá«á á ááºá¡á¬ážáá¯á¶ážááẠá¡ááŒá²áááºáž áá¯ááºáá±á¬ááºáá±áá±á¬ á¡áá¯ááºáá»á¬ážááŸáá·áº á¡áá¯ááºáá»á¬ážáá±áááá·áºáááºá 50% áááºááŸááºáá«á áá¬ážáá»á¬ážá áááºáááºááẠá¡ááŒá²áááºáž á¡ááá²á·ááŒá áºáááºá á€á¡ááŒá±á¡áá±ááœááºá á¡ááŸáááºá¡áá¯ááºááŒáá·áº áá¯ááºáááºááœá¬ážáá«áá á¡ááŸá¬ážáá¬ááºá¡áá áºáá»á¬ážááẠáá±áá¬áá»áá¬ážááẠá á±á¬áá·áºááá¯ááºážá áᬠáááá¯áá² á¡ááá¬ážáá¬ážáá»á¬áž áá»ááºáá»ááºážáááá¯ááºáááºááŒá áºáááºá
áááºá á²ááŒááºážáá¬ááœááºáá±ážááᯠá á®áá¶ááá·áºááœá²áááºá â ááœáá·áºáá«á á€ááá·áºáááºáá»ááºááẠáááºáá±á¬ááºááŸá¯áá±ážáá°ááᯠáá»ááºááŒááºážá០áá¬áááá»á¬ážá á¡áá¬á¡ááœááºááᯠáááºááŸá¬ážááẠááœáá·áºááŒá¯áááºá á ááºááœáẠáááºááŒáœáá±á¬áá¯ááºáá±á¬ááºá áá¬áá»á¬ážáááŸáá áá áºááŸááºá áœááºážááẠáá¬ááá¯ááºááŸá¯ááºážááᯠááœáá·áºááŒá¯ááá·áºá¡áá« áááºážááẠááŒá áºáá±á«áºáááºá
ECS áááºáá±á¬ááºááŸá¯ ááŸáá·áº á¡ááá¯ááºážá¡áᬠáááºááŸááºááŸá¯
áá±á¬ááºáá¯á¶ážá¡ááá·áº :) áááºáá±á¬ááºááŸá¯áá áºáá¯áááºáá®ážáááºá áááºáá±á¬ááºááŸá¯áá»á¬ážáááºááºááŸá ááááºáááºáá®ážáá¬ážáá±á¬ á¡á á¯á¡áá±ážááá¯á· ááœá¬ážáááºááá¯á¡ááºáááºá
áá áºááœáŸááºá¡áá»áá¯ážá¡á á¬áž â áááºááẠSwitch to capacity provider strategy ááá¯ááŸáááºááŒá®áž ááááºáááºáá®ážáá¬ážááá·áº áá¶á·ááá¯ážáá±ážáá°áá»á¬ážááᯠááœá±ážááẠááá¯á¡ááºáááºá
Task Definition â ááááºá áááºáá®ážáá¬ážáá±á¬ Task Definition ááŸáá·áº áááºážá ááŒááºáááºááŒááºáááºááŸá¯ááᯠááœá±ážáá»ááºáá«á
áááºáá±á¬ááºááŸá¯á¡ááẠ- á áááºááŸá¯ááºááœá±ážááŸá¯ááᯠááŸá±á¬ááºááŸá¬ážáááºá áá»áœááºá¯ááºááá¯á·ááẠTask Definition áá²á·ááá¯á· á¡ááŒá²ááœáŸááºááŒáá«áááºá
áááºáá±á¬ááºááŸá¯á¡áá»áá¯ážá¡á á¬áž - á¡ááŒá²áá¯á¶áá°á
á¡áá¯ááºá¡áá±á¡ááœáẠ- áááºáá±á¬ááºááŸá¯ááœáẠá¡ááá¯ááŸááá±á¬ á¡áá¯ááºáá»á¬áž á¡áá±á¡ááœááºá á€ááá·áºáááºáá»ááºá¡á¬áž á¡ááá¯ááºážá¡áá¬ááŒáá·áº ááááºážáá»á¯ááºáá¬ážáá±á¬áºáááºáž áááºááŸááºááááºááŒá áºáá«áááºá
á¡áááºážáá¯á¶áž áá»ááºážáá¬áá±á¬ áá¬ááá¯ááºááŸá¯ááºáž О á¡áá»á¬ážáá¯á¶ážáá¬ááá¯ááºááŸá¯ááºáž - ááŒáá·áºáá»ááºá ááºá¡ááœááºáž áá¯ááºáááºážáá±á¬ááºáá¬áá»á¬ážá á¡ááŒá¯á¡áá°ááᯠáá¯á¶ážááŒááºáá«á áá¯á¶áá±áááºááá¯ážáá»á¬ážááẠ100 ááŸáá·áº 200 ááŒá áºááŒá®ážá ááŒáá·áºáá»ááºáá»áááºááœáẠáá¯ááºáá±á¬ááºá áá¬á¡áá±á¡ááœááºááẠá¡ááá»á¬ážá áœá¬ááá¯ážáá¬ááŒá®áž ááá¯áá»ááºáá±á¬áááºááá¯ážááá¯á· ááŒááºááœá¬ážáááºááŒá áºááŒá±á¬ááºáž ááœáŸááºááŒáááºá á¡áááºá ááá·áºááœáẠáá¯ááºáá±á¬ááºáá±áá±á¬ áá¯ááºáá±á¬ááºá áᬠ1 áá¯á min=0 ááŸáá·áº max=100 ááŸááá«áá ááá¯á·áá±á¬áẠá¡áá¯á¶ážááŒá¯áá±á ááºá¡ááœááºáž áááºážááᯠáááºáá áºáááºááŒá áºááŒá®áž áááºážáá±á¬ááºááœáẠá¡áá áºáá áºáᯠáááºáá¬áááºááŒá áºáááºá ááá¯ááá¯áááºááŸá¬ áááºážááẠá ááºáááºááœá¬ážáááºááŒá áºáááºá á¡áá¯áẠ1 áᯠáá¯ááºáá±á¬ááºáá±áá«áá min=50á max=150á áá¯ááºáá±á¬ááºáá»áẠá áá¯ááᯠááááºááœá²á ááá¯á·ááá¯áẠááááœá² ááá¯ážááááá±á¬ááŒá±á¬áá·áº ááŒáá·áºáá»ááºááŸá¯ áá¯á¶ážáááŒá áºáá¬áááºááá¯ááºáá«á
ááŒáá·áºáá»ááºááŸá¯ á¡áá»áá¯ážá¡á á¬áž â Rolling update ááᯠáá»ááºáá¬ážáá«á
áá±áá¬áá»áá¬ážááŸá¯ áá¯á¶á á¶áá»á¬áž - á ááºáá»á¬ážáá±á«áºááœááºá¡áá¯ááºáá»á¬ážáá¬ážáááºá ááºážáá»ááºážáá»á¬ážá áá°áááºážááŸá¬ AZ Balanced Spread ááŒá áºááẠ- ááá¯ááá¯áááºááŸá¬ á¡áá¯ááºá¡áá áºáá áºáá¯á á®ááᯠáááŸáááá¯ááºááŸá¯áá¯ááºá¡á¬ážáá¯á¶ážááŸá á ááºáá»á¬ážáááºáá¬áááºá¡áá á á¶ááá°áá¬á¡áá áºáá áºáá¯ááœáẠáá¬ážááŸááááºááŒá áºáááºá áá»áœááºá¯ááºááá¯á· áá»á¬ážáá±á¬á¡á¬ážááŒáá·áº BinPack - CPU ááŸáá·áº Spread - AZ ááá¯á·ááᯠáá¯ááºáá±á¬ááºáá±á·ááŸááááºá á€áá°áá«áááŒáá·áº áá¯ááºáá±á¬ááºáá»ááºáá»á¬ážááᯠCPU áá áºáá¯áá»áŸáẠá ááºáá áºáá¯á¶ážááœáẠáááºááá¯ááºááá»áŸ áá°áááºá áœá¬áá»áá¬ážáá«áááºá á ááºá¡áá áºáááºáá®ážááẠááá¯á¡ááºáá«á áááºážááᯠáááŸáááá¯ááºááŸá¯áá¯ááºá¡áá áºááœáẠáááºáá®ážáá¬ážáááºá
Load balancer á¡áá»áá¯ážá¡á á¬áž â Application Load Balancer ááᯠááœá±ážáá«á
áááºáá±á¬ááºááŸá¯ IAM á¡áááºážááá¹á - ááœá±ážáá»ááºáá«á ecsServiceRole
.
Load Balancer á¡ááẠâ ááááºáááºáá®ážáá¬ážáá±á¬ áá»áááºááœááºáá»áŸá¬ááᯠááœá±ážáá»ááºáá«á
áá»ááºážáá¬áá±ážá á áºáá±ážááá·áºáá¬á â á¡áá¯ááºá¡áá áºáá áºáá¯á áááºááŒá®ážáá±á¬áẠáá»ááºážáá¬áá±ážá á áºáá±ážááŸá¯áá»á¬ážááá¯ááºáá±á¬ááºáá® áá±áá¹ááááºáá«á áá»áœááºá¯ááºááá¯á·á áááºážááᯠá áá¹ááá·áº 60 áá¬ážáá±á·ááŸááááºá
áááºáá»ááºáááºááẠááœááºááááºáᬠâ áá áºááŸááºá¡á¯ááºá á¯á¡áááºá¡ááŒá±á¬ááºážá¡áá¬ááœááºá ááááºáááºáá®ážáá¬ážáá±á¬á¡ááœá²á·ááᯠááœá±ážáá«á ááŒá®ážáá«á á¡áá¬á¡á¬ážáá¯á¶ážááẠá¡ááá¯á¡áá»á±á¬ááºááŒáá·áºáááºááŒá áºáááºá
áááºáá±á¬ááºááŸá¯ á¡á±á¬áºááá¯á áá±ážáá»ááŒááºážá - áááºáá±á¬ááºááŸá¯ á¡ááá¯ááºážá¡áᬠááá·áºáááºáá»ááºáá»á¬ážá ááá·áºáááºáá±á¬ááºááŸá¯áá¡ááá¯ááŸááá±á¬á¡áá±á¡ááœááºááᯠáá»áááºááŸáááẠConfigure Service Auto Scaling ááá¯ááœá±ážáá»ááºáá«á á áá±ážáá»á²á·áá±á¬á¡áá«ááœáẠáá»áœááºá¯ááºááá¯á·ááẠá¡áááá·áºáá¯á¶ážááŸáá·áº á¡áá»á¬ážáá¯á¶áž áá¯ááºáá±á¬ááºá áᬠá¡áá±á¡ááœááºááᯠáááºááŸááºáááºá
Service Auto Scaling á¡ááœáẠIAM á¡áááºážááá¹á - ááœá±ážáá»ááºáá«á AWSServiceRoleForApplicationAutoScaling_ECSService
.
á¡ááá¯á¡áá»á±á¬áẠáá¯ááºáááºážá áá±ážáá»á²á·ááŒááºáž áá°áá«ááá»á¬áž - á¡ááá¯ááºážá¡áá¬á¡ááœááºá ááºážáá»ááºážáá»á¬ážá á¡áá»áá¯ážá¡á á¬áž 2 áá»áá¯ážááŸááá«áááº:
- áá áºááŸááºááŒá±áá¬áᶠâ áá áºááŸááºáááºááá áºáá»á¬ážááᯠááŒá±áá¬áá¶ááŒááºáž (CPU/RAM á¡áá¯á¶ážááŒá¯ááŸá¯ ááá¯á·ááá¯áẠáá¯ááºáááºážáá áºáá¯á á®á¡ááœáẠáá±á¬ááºážááá¯áá»ááºá¡áá±á¡ááœááº)á á¥ááá¬á¡á¬ážááŒáá·áºá áá»áœááºá¯ááºááá¯á·ááẠáá»ááºážáá»áŸáááá¯áááºáá¬áááºá¡á¬áž 85% ááŒáá·áºáá¬ážáá¬áá±á¬á¡áá«á áááºážááẠáá áºááŸááºáááºááá¯ážááá¯á·áá±á¬ááºááŸááááºá¡áá áá¯ááºáá±á¬ááºá áá¬á¡áá áºáá»á¬ážááᯠáá±á«ááºážááá·áºáááºááŒá áºáááºá áááºááá¯áááá·áºáá«áá ááá·áºáá»ááºáááºá¡áá±ááŸáá·áºá á¡ááá¯ááºážá¡áá¬áá»áŸá±á¬á·áá»ááŒááºážá¡á¬áž á¡áá¬á¡ááœááºááá±ážáá¬ážáá«áá á¡áá¯ááºáá»á¬ážááᯠáááºááŸá¬ážááẠ(á áá±ážáááºááŒááºážááᯠááááºáá«á).
- á¡ááá·áº á¡ááá¯ááºážá¡áᬠ- áááá¬ážáá±á¬ á¡ááŒá áºá¡áá»ááºááᯠáá¯á¶á·ááŒááºááŒááºážá á€ááœáẠáááºááẠáááºááá·áºááŒá áºááẠ(CloudWatch Alarm) ááá¯áááᯠáá¯á¶á·ááŒááºááŸá¯áá áºáá¯ááᯠá á®á ááºáááºááŸááºááá¯ááºáááºá áááºážááẠááŒá áºáá±á«áºáá¬áá±á¬á¡áá«á áááºááẠáááºááŸááºáá¬ážáá±á¬ á¡áá¯ááºá¡áá±á¡ááœááºááᯠááá·áºááá¯áẠááá¯á·ááá¯áẠáááºááŸá¬ážááá¯ááºáááºá ááá¯á·ááá¯áẠáá¯ááºáá±á¬ááºá áá¬á¡áá±á¡ááœááºá¡ááá¡áá»ááᯠáááºááŸááºááá¯ááºáááºá
áááºáá±á¬ááºááŸá¯áá áºáá¯ááœáẠá áá±ážáá»á²á·ááŒááºážááá¯ááºáᬠá ááºážáá»ááºážáá»á¬ážá áœá¬ááŸáááá¯ááºáááºá áááºážááẠá¡áá¯á¶ážáááºááá¯ááºáááºá á¡áááá¡áá»ááºááŸá¬ áááºážááá¯á·ááẠáá áºáá¯ááŸáá·áºáá áºáᯠáááœá²ááœá²á á±ááẠáá±áá»á¬á á±áááºááŒá áºáááºá
áá±á¬ááºáá»ááº
á¡áááºá áááºááẠááœáŸááºááŒá¬ážáá»ááºáá»á¬ážááᯠááá¯ááºáá¬ááŒá®áž áá°áá®áá±á¬ Docker áá¯á¶ááᯠá¡áá¯á¶ážááŒá¯áá«áá ááá·áºáááºáá±á¬ááºááŸá¯ááẠá€áá²á·ááá¯á·áá±á¬ á á¬áá»ááºááŸá¬ááᯠááŒááºáá±ážááá«áááºá
- áá»áœááºá¯ááºááá¯á·ááẠáááºáá±á¬ááºááŸá¯ááŸá á ááºá¡á¬ážáá¯á¶ážááᯠá áááºá¡áá¯á¶ážááŒá¯ááá·áºá¡ááá¯ááºáž áá¯á¶á á¶áááááºáá áºáá¯ááᯠáááºáá®ážáá¬ážáá«áááºá ááá°áá¬áá¯á¶á á¶ááŒá±á¬ááºážááá·áºá¡áá« á ááºáá»á¬ážááᯠá¡ááºááááºáá¯ááºáááºážááá¯áááºáž áá±á·áá¬áá²á·áááºá
- áá»áœááºá¯ááºááá¯á·ááẠspot instance stop signal ááá¯ááºáá±á¬ááºááŒááºážááᯠconfigure áá¯ááºáá¬ážááŒá®ážá ááá¯á·ááŒá±á¬áá·áº áááºážááá¯áááºáá¶áááŸáááŒá®ážáá áºáááá áºá¡ááœááºážá áá¯ááºáá±á¬ááºáá±áá±á¬á¡áá¯ááºáá»á¬ážá¡á¬ážáá¯á¶ážááᯠá ááºááŸáááºááŸá¬ážááá¯ááºáá±á¬ááŒá±á¬áá·áº áááºááá·áºá¡áá¬áá»áŸ áá»á±á¬ááºáá¯á¶ážááŒááºáž ááá¯á·ááá¯áẠá¡ááŸá±á¬áá·áºá¡ááŸááºáááŸááá«á
- á ááºáá»á¬ážáá áºáá»áŸá±á¬áẠáááºááᯠá¡áá®á¡áá»áŸ ááŒáá·áºáá±ááẠáá»áááºááœááºáá»áŸá¬ááᯠáá»áœááºá¯ááºááá¯á· ááŒáŸáá·áºáááºáá²á·áááºá
- á ááºáá¯ááºáá»á áááẠá áááá·áº áá»áŸá±á¬á·áá»áá±ážááá·áº á¡ááŒá áºá¡áá»ááºáá»á¬ážááᯠá¡ááá¡áá» áá¯ááºáá±á¬ááºááá¯ááºáá±á¬ áááºáá±á¬ááºááŸá¯ááᯠáá»áœááºá¯ááºááá¯á· áááºáá®ážáá¬ážáá«áááºá
- á ááºáááºá ááááºáá»á¬áž áááá¯á¡ááºáá² áá»á¬ážááŒá¬ážáá¬áá±á¬ á¡áá¯ááºáá»á¬ážááᯠááá¯ááºááœááºááẠáááºážááŒá±á¬ááºáž ááŸá áºáá¯á áá¯á¶ážááœáẠá¡ááá¯á¡áá»á±á¬áẠá¡ááœááºá¡á á¬áž ááŒá±á¬ááºážáá²ááŒááºážááᯠáá»áœááºá¯ááºááá¯á· á á®á ááºáááºááŸááºáá¬ážáá«áááºá
- á¡ááá®áá±ážááŸááºážááẠá¡ááŒá±áá¶á¡áá±á¬ááºá¡áŠ (á ááºáá»á¬áž) ááᯠá á®áá¶ááá·áºááœá²ááẠá¡ááŒá¬ážáááºážáááºážááá¯ááºáá² Capacity Provider ááᯠáá»áœááºá¯ááºááá¯á· á¡áá¯á¶ážááŒá¯áá«áááºá
- áá»áœááºáá±á¬áºááá¯á· á¡áááºážáá±á¬ááºážáááºá
ááá·áºááœáẠááŒáá¯áááºááŸááºážáááá¯ááºáá±á¬ spikes áá»á¬ážááŸááá«á á¥ááá¬á¡á¬ážááŒáá·áº áááºááẠááŒá®ážáá¬ážáá±á¬ á¡á®ážáá±ážááºáááºááááºážááœáẠááŒá±á¬áºááŒá¬áá±áááºá á¡ááá¯ááºážá¡áá¬á¡á¬ážááŒáá·áº áááºááŸááºááá¯ááºáááºá
ááá·áºá
áá
áºá ááá°áá®áá±á¬ á¡á
áááºá¡ááá¯ááºážáá»á¬ážá០áá±áá¬áá»á¬ážááᯠá¡ááŒá±áá¶ááááºáž á¡ááá¯ááºážá¡áá¬ááᯠááŒá¯áá¯ááºááá¯ááºáááºá á¥ááá¬á¡á¬ážááŒáá·áºá áá»áœááºá¯ááºááá¯á·ááœáẠáá¯ááºáá±á¬ááºááá¯ááºá
áœááºážááŸááááºá
Spot instances ááŸáá·áº ECS ááá¯á·ááá¯áẠscaling ááŸáá·áº áááºáááºáá±á¬ áá áºáá¯áá¯ááᯠá¡áá¯á¶ážááŒá¯ááŒááºážá á áááºáááºá á¬ážá áá¬áá±á¬ááºážáá±á¬ ááá á¹á áááºáá»á¬ážááᯠááŸááºáá»ááºáá»á¬ážááœáẠááŒá±á¬ááŒáá«á áááºážááŒá±á¬ááºáááá«áááºá
áá»á¬ážáááŒá¬áá®ááœáẠáá¬áá¬áá²á·á¡á á¯á¡áá±áž (ááá¯ááºáá¶ááŒáá·áº) áá áºá áá¹ááá·áºáá»áŸáẠáá±á¬ááºáá±á«ááºážáá»á¬ážá áœá¬áá±á¬ ááœá²ááŒááºážá áááºááŒá¬ááŸá¯ááŒá áºáááºáá»á¬ážááᯠáá»áœááºá¯ááºááá¯á· áááºááá¯á·áá¯ááºáá±á¬ááºáá¯á¶ááŸáá·áº GitLab CI ááŸáá·áº Terraform Cloud ááᯠá¡áá¯á¶ážááŒá¯á áááºáá±á¬ááºááŸá¯áá»á¬áž ááŒáá·áºáá»ááºáá¯ááºáá±á¬ááºáá¯á¶á¡ááŒá±á¬ááºáž áá±á¬ááºážáá«ážáá»á¬áž ááŸááá¬áá«áááºá
áá»áœááºá¯ááºááá¯á·ááᯠá á¬áááºážááœááºážáá«á á áááºáááºá á¬ážá áá¬ááŒá áºáá«áááºá
á
á¬áááºážááœááºážá¡áá¯á¶ážááŒá¯áá°áá»á¬ážáᬠá
á
áºáááºážááœáẠáá«áááºááá¯ááºáá«áááºá
áá¯ááºáá¯ááºááŸá¯ááœáẠáá¬áááá»á¬ážááᯠáááºá¡áá¯á¶ážááŒá¯áá«ááá¬ážá
-
22,2%áá¯ááºáááº6
-
66,7%áá¶áá«áẠááá
-
11,1%á¡á²áá«ááœá±ááᯠáá±á¬ááºážáá«ážáá áºáá¯ááºááá± áá±á·áá¬áá²á·ááŒá®áž á¡á²áá«ááœá±ááᯠáá¯á¶ážááá¯á· á á®á ááºáá²á·áááºá
á¡áá¯á¶ážááŒá¯áá° 27 áŠáž áá²áá±ážáá²á·áááºá á¡áá¯á¶ážááŒá¯áá° 5 ááŸá±á¬ááºáá±áá²á·áá«áááºá
source: www.habr.com