ื‘ื ื™ื™ืช API ืœื”ืจื—ื‘ื” ื‘ืžื•ืคืขื™ AWS Spot

ืฉืœื•ื ืœื›ื•ืœื! ืฉืžื™ ืงื™ืจื™ืœ, ืื ื™ CTO ื‘-Adapty. ืจื•ื‘ ื”ืืจื›ื™ื˜ืงื˜ื•ืจื” ืฉืœื ื• ื”ื™ื ื‘-AWS, ื•ื”ื™ื•ื ืื“ื‘ืจ ืขืœ ืื™ืš ื”ื•ืจื“ื ื• ืืช ืขืœื•ื™ื•ืช ื”ืฉืจืช ืคื™ 3 ืขืœ ื™ื“ื™ ืฉื™ืžื•ืฉ ื‘ืžื•ืคืขื™ื ื ืงื•ื“ืชื™ื™ื ื‘ืกื‘ื™ื‘ืช ื™ื™ืฆื•ืจ, ื›ืžื• ื’ื ืื™ืš ืœื”ื’ื“ื™ืจ ืืช ื”ืฉื™ื ื•ื™ ื”ืื•ื˜ื•ืžื˜ื™ ืฉืœื”ื. ืชื—ื™ืœื” ืชื”ื™ื” ืกืงื™ืจื” ื›ืœืœื™ืช ืฉืœ ืื™ืš ื–ื” ืขื•ื‘ื“, ื•ืœืื—ืจ ืžื›ืŸ ื”ื ื—ื™ื•ืช ืžืคื•ืจื˜ื•ืช ืœืชื—ื™ืœืช ื”ืขื‘ื•ื“ื”.

ืžื”ื ืžื•ืคืขื™ ืกืคื•ื˜?

ืœึฐื–ึทื”ื•ึนืช ืžื•ืคืขื™ื ื”ื ืฉืจืชื™ื ืฉืœ ืžืฉืชืžืฉื™ AWS ืื—ืจื™ื ืฉืื™ื ื ืคืขื™ืœื™ื ื›ืจื’ืข, ื•ื”ื ืžื•ื›ืจื™ื ืื•ืชื ื‘ื”ื ื—ื” ื’ื“ื•ืœื” (ืืžื–ื•ืŸ ื›ื•ืชื‘ืช ืขื“ 90%, ืžื ื™ืกื™ื•ื ื ื• ~3x, ืžืฉืชื ื” ื‘ื”ืชืื ืœืื–ื•ืจ, AZ ื•ืกื•ื’ ื”ืžื•ืคืข). ื”ื”ื‘ื“ืœ ื”ืขื™ืงืจื™ ืฉืœื”ื ืžื”ืจื’ื™ืœื™ื ื”ื•ื ืฉื”ื ื™ื›ื•ืœื™ื ืœื›ื‘ื•ืช ื‘ื›ืœ ืขืช. ืœื›ืŸ, ื‘ืžืฉืš ื–ืžืŸ ืจื‘ ื”ืืžื ื• ืฉื–ื” ื ื•ืจืžืœื™ ืœื”ืฉืชืžืฉ ื‘ื”ื ืขื‘ื•ืจ ืกื‘ื™ื‘ื•ืช ื‘ืชื•ืœื™ื•ืช, ืื• ืขื‘ื•ืจ ืžืฉื™ืžื•ืช ืฉืœ ื—ื™ืฉื•ื‘ ืžืฉื”ื•, ืขื ืชื•ืฆืื•ืช ื‘ื™ื ื™ื™ื ื ืฉืžืจื•ืช ื‘-S3 ืื• ื‘ืžืกื“ ื”ื ืชื•ื ื™ื, ืื‘ืœ ืœื ืขื‘ื•ืจ ืžื›ื™ืจื•ืช. ื™ืฉื ื ืคืชืจื•ื ื•ืช ืฉืœ ืฆื“ ืฉืœื™ืฉื™ ื”ืžืืคืฉืจื™ื ืœืš ืœื”ืฉืชืžืฉ ื‘ืกืคื•ื˜ื™ื ื‘ื™ื™ืฆื•ืจ, ืื‘ืœ ื™ืฉ ื”ืจื‘ื” ืงื‘ื™ื™ื ืœืžืงืจื” ืฉืœื ื•, ืื– ืœื ื™ื™ืฉืžื ื• ืื•ืชื. ื”ื’ื™ืฉื” ื”ืžืชื•ืืจืช ื‘ืžืืžืจ ืคื•ืขืœืช ื›ื•ืœื” ื‘ืžืกื’ืจืช ื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื”ืกื˜ื ื“ืจื˜ื™ืช ืฉืœ AWS, ืœืœื ืกืงืจื™ืคื˜ื™ื ื ื•ืกืคื™ื, ื›ืชืจื™ื ื•ื›ื•'.

ืœื”ืœืŸ ืžืกืคืจ ืฆื™ืœื•ืžื™ ืžืกืš ื”ืžืฆื™ื’ื™ื ืืช ื”ื™ืกื˜ื•ืจื™ื™ืช ื”ืžื—ื™ืจื™ื ืขื‘ื•ืจ ืžืงืจื™ื ื ืงื•ื“ืชื™ื™ื.

m5.large ื‘ืื–ื•ืจ eu-west-1 (ืื™ืจืœื ื“). ื”ืžื—ื™ืจ ื™ืฆื™ื‘ ื‘ืจื•ื‘ื• ื‘ืžืฉืš 3 ื—ื•ื“ืฉื™ื, ื›ืจื’ืข ื—ื•ืกืš ืคื™ 2.9.

ื‘ื ื™ื™ืช API ืœื”ืจื—ื‘ื” ื‘ืžื•ืคืขื™ AWS Spot

m5.large ื‘ืื–ื•ืจ us-east-1 (N. Virginia). ื”ืžื—ื™ืจ ืžืฉืชื ื” ืœืœื ื”ืจืฃ ื‘ืžืฉืš 3 ื—ื•ื“ืฉื™ื, ื›ืจื’ืข ื—ื•ืกืš ืž-2.3x ืœ-2.8x ื‘ื”ืชืื ืœืื–ื•ืจ ื”ื–ืžื™ื ื•ืช.

ื‘ื ื™ื™ืช API ืœื”ืจื—ื‘ื” ื‘ืžื•ืคืขื™ AWS Spot

t3.small ื‘ืื–ื•ืจ us-east-1 (N. Virginia). ื”ืžื—ื™ืจ ื™ืฆื™ื‘ ื‘ืžืฉืš 3 ื—ื•ื“ืฉื™ื, ื›ืจื’ืข ื—ื•ืกืš ืคื™ 3.4.

ื‘ื ื™ื™ืช API ืœื”ืจื—ื‘ื” ื‘ืžื•ืคืขื™ AWS Spot

ืืจื›ื™ื˜ืงื˜ื•ืจืช ืฉื™ืจื•ืช

ื”ืืจื›ื™ื˜ืงื˜ื•ืจื” ื”ื‘ืกื™ืกื™ืช ืฉืœ ื”ืฉื™ืจื•ืช ืฉืขืœื™ื” ื ื“ื‘ืจ ื‘ืžืืžืจ ื–ื” ืžื•ืฆื’ืช ื‘ืชืจืฉื™ื ืฉืœื”ืœืŸ.

ื‘ื ื™ื™ืช API ืœื”ืจื—ื‘ื” ื‘ืžื•ืคืขื™ AWS Spot

ืžืื–ืŸ ืขื•ืžืกื™ ื™ื™ืฉื•ืžื™ื โ†’ EC2 Target Group โ†’ ืฉื™ืจื•ืช ืžื™ื›ืœ ืืœืกื˜ื™

ืžืื–ืŸ ืขื•ืžืกื™ ื™ื™ืฉื•ืžื™ื (ALB) ืžืฉืžืฉ ื›ืžืื–ืŸ, ืฉืฉื•ืœื— ื‘ืงืฉื•ืช ืœืงื‘ื•ืฆืช ื”ื™ืขื“ ืฉืœ EC2 (TG). TG ืื—ืจืื™ืช ืขืœ ืคืชื™ื—ืช ื ืžืœื™ื ืขืœ ืžื•ืคืขื™ื ืขื‘ื•ืจ ALBs ื•ื—ื™ื‘ื•ืจื ืœื ืžืœื™ื ืฉืœ ืžื›ื•ืœื•ืช Elastic Container Service (ECS). ECS ื”ื•ื ืื ืœื•ื’ื™ ืฉืœ Kubernetes ื‘-AWS, ื”ืžื ื”ืœืช ืžื›ื•ืœื•ืช Docker.

ืœืžื•ืคืข ืื—ื“ ื™ื›ื•ืœื™ื ืœื”ื™ื•ืช ืžืกืคืจ ืงื•ื ื˜ื™ื™ื ืจื™ื ืคื•ืขืœื™ื ืขื ืื•ืชืŸ ื™ืฆื™ืื•ืช, ื›ืš ืฉืื™ื ื ื• ื™ื›ื•ืœื™ื ืœื”ื’ื“ื™ืจ ืื•ืชื ื‘ืื•ืคืŸ ืงื‘ื•ืข. ECS ืื•ืžืจ ืœ-TG ืฉื”ื™ื ืžืฉื™ืงื” ืžืฉื™ืžื” ื—ื“ืฉื” (ื‘ื˜ืจืžื™ื ื•ืœื•ื’ื™ื” ืฉืœ Kubernetes ื–ื” ื ืงืจื pod), ื”ื™ื ื‘ื•ื“ืงืช ื™ืฆื™ืื•ืช ื—ื•ืคืฉื™ื•ืช ื‘ืžื•ืคืข ื•ืžืงืฆื” ืื—ืช ืžื”ืŸ ืœืžืฉื™ืžื” ืฉื”ื•ืฉืงื”. TG ื’ื ื‘ื•ื“ืง ื‘ืื•ืคืŸ ืงื‘ื•ืข ืื ื”ืžื•ืคืข ื•ื”-API ืขื•ื‘ื“ื™ื ืขืœื™ื• ื‘ืืžืฆืขื•ืช ื‘ื“ื™ืงืช ืชืงื™ื ื•ืช, ื•ืื ื”ื•ื ืจื•ืื” ื‘ืขื™ื•ืช, ื”ื•ื ืžืคืกื™ืง ืœืฉืœื•ื— ืœืฉื ื‘ืงืฉื•ืช.

EC2 Auto Scaling Groups + ECS Capacity

ื”ืชืจืฉื™ื ืœืขื™ืœ ืื™ื ื• ืžืฆื™ื’ ืืช ืฉื™ืจื•ืช EC2 Auto Scaling Groups (ASG). ืžื”ืฉื ืืคืฉืจ ืœื”ื‘ื™ืŸ ืฉื”ื•ื ืื—ืจืื™ ืขืœ ืงื ื” ืžื™ื“ื” ืฉืœ ืžื•ืคืขื™ื. ืขื ื–ืืช, ืขื“ ืœืื—ืจื•ื ื”, ืœ-AWS ืœื ื”ื™ื™ืชื” ื™ื›ื•ืœืช ืžื•ื‘ื ื™ืช ืœื ื”ืœ ืืช ืžืกืคืจ ื”ืžื›ื•ื ื•ืช ื”ืคื•ืขืœื•ืช ืž-ECS. ECS ืืคืฉืจื” ืœื”ืชืื™ื ืืช ืžืกืคืจ ื”ืžืฉื™ืžื•ืช, ืœืžืฉืœ, ืœืคื™ ืฉื™ืžื•ืฉ ื‘ืžืขื‘ื“, ื–ื™ื›ืจื•ืŸ RAM ืื• ืžืกืคืจ ื‘ืงืฉื•ืช. ืื‘ืœ ืื ื”ืžืฉื™ืžื•ืช ืชืคืกื• ืืช ื›ืœ ื”ืžื•ืคืขื™ื ื”ื—ื™ื ืžื™ื™ื, ืžื›ื•ื ื•ืช ื—ื“ืฉื•ืช ืœื ื ื•ืฆืจื• ืื•ื˜ื•ืžื˜ื™ืช.

ื–ื” ื”ืฉืชื ื” ืขื ื”ื•ืคืขืช ืกืคืงื™ ืงื™ื‘ื•ืœืช ECS (ECS CP). ื›ืขืช ื ื™ืชืŸ ืœืฉื™ื™ืš ื›ืœ ืฉื™ืจื•ืช ื‘-ECS ืœ-ASG, ื•ืื ื”ืžืฉื™ืžื•ืช ืื™ื ืŸ ืžืชืื™ืžื•ืช ืœืžื•ืคืขื™ื ื”ืคื•ืขืœื™ื, ืื– ื™ื•ืขืœื• ื—ื“ืฉื™ื (ืืš ื‘ืžืกื’ืจืช ืžื’ื‘ืœื•ืช ื”-ASG ืฉื ืงื‘ืขื•). ื–ื” ืขื•ื‘ื“ ื’ื ื‘ื›ื™ื•ื•ืŸ ื”ื”ืคื•ืš, ืื ECS CP ืจื•ืื” ืžื•ืคืขื™ื ืกืจืง ืœืœื ืžืฉื™ืžื•ืช, ืื– ื–ื” ื™ื™ืชืŸ ืืช ื”ืคืงื•ื“ื” ASG ืœื›ื‘ื•ืช ืื•ืชื. ืœ-ECS CP ื™ืฉ ืืช ื”ื™ื›ื•ืœืช ืœืฆื™ื™ืŸ ืื—ื•ื– ื™ืขื“ ืฉืœ ืขื•ืžืก ื”ืžื•ืคืขื™ื, ื›ืš ืฉืžืกืคืจ ืžืกื•ื™ื ืฉืœ ืžื›ื•ื ื•ืช ืชืžื™ื“ ืคื ื•ื™ ืœืžืฉื™ืžื•ืช ืงื ื” ืžื™ื“ื” ืžื”ื™ืจ; ืื ื™ ืื“ื‘ืจ ืขืœ ื–ื” ืงืฆืช ืžืื•ื—ืจ ื™ื•ืชืจ.

ืชื‘ื ื™ื•ืช ื”ืคืขืœื” ืฉืœ EC2

ื”ืฉื™ืจื•ืช ื”ืื—ืจื•ืŸ ืขืœื™ื• ืื“ื‘ืจ ืœืคื ื™ ืฉื ืคืจื˜ ืขืœ ื™ืฆื™ืจืช ืชืฉืชื™ืช ื–ื• ื”ื•ื EC2 Launch Templates. ื”ื™ื ืžืืคืฉืจืช ืœื™ืฆื•ืจ ืชื‘ื ื™ืช ืœืคื™ื” ื›ืœ ื”ืžื›ื•ื ื•ืช ื™ืชื—ื™ืœื•, ื›ื“ื™ ืœื ืœื—ื–ื•ืจ ืขืœ ื›ืš ืžืืคืก ื‘ื›ืœ ืคืขื. ื›ืืŸ ืชื•ื›ืœ ืœื‘ื—ื•ืจ ืืช ืกื•ื’ ื”ืžื›ื•ื ื” ืœื”ืคืขืœื”, ืงื‘ื•ืฆืช ืื‘ื˜ื—ื”, ืชืžื•ื ืช ื“ื™ืกืง ื•ืคืจืžื˜ืจื™ื ืจื‘ื™ื ืื—ืจื™ื. ืืชื” ื™ื›ื•ืœ ื’ื ืœืฆื™ื™ืŸ ื ืชื•ื ื™ ืžืฉืชืžืฉ ืฉื™ื•ืขืœื• ืœื›ืœ ื”ืžื•ืคืขื™ื ืฉื”ื•ืฉืงื•. ืืชื” ื™ื›ื•ืœ ืœื”ืคืขื™ืœ ืกืงืจื™ืคื˜ื™ื ื‘ื ืชื•ื ื™ ืžืฉืชืžืฉ, ืœื“ื•ื’ืžื”, ืืชื” ื™ื›ื•ืœ ืœืขืจื•ืš ืืช ื”ืชื•ื›ืŸ ืฉืœ ืงื•ื‘ืฅ ืชืฆื•ืจื•ืช ืกื•ื›ืŸ ECS.

ืื—ื“ ืžืคืจืžื˜ืจื™ ื”ืชืฆื•ืจื” ื”ื—ืฉื•ื‘ื™ื ื‘ื™ื•ืชืจ ืขื‘ื•ืจ ืžืืžืจ ื–ื” ื”ื•ื ECS_ENABLE_SPOT_INSTANCE_DRAINING=ื ื›ื•ืŸ. ืื ืคืจืžื˜ืจ ื–ื” ืžื•ืคืขืœ, ืื– ื‘ืจื’ืข ืฉ-ECS ืžืงื‘ืœ ืื•ืช ื›ื™ ืžื•ืคืข ืกืคื•ื˜ ื ืœืงื—, ื”ื•ื ืžืขื‘ื™ืจ ืืช ื›ืœ ื”ืžืฉื™ืžื•ืช ืฉืขื•ื‘ื“ื•ืช ืขืœื™ื• ืœืžืฆื‘ Draining. ืœื ื™ื•ืงืฆื• ืžืฉื™ืžื•ืช ื—ื“ืฉื•ืช ืœืžื•ืคืข ื–ื”; ืื ื™ืฉ ืžืฉื™ืžื•ืช ืฉืจื•ืฆื•ืช ืœื”ืชื’ืœื’ืœ ืืœื™ื• ืขื›ืฉื™ื•, ื”ืŸ ื™ื‘ื•ื˜ืœื•. ื’ื ื‘ืงืฉื•ืช ืžื”ืžืื–ืŸ ืžืคืกื™ืงื•ืช ืœื”ื’ื™ืข. ื”ื•ื“ืขื” ืขืœ ืžื—ื™ืงืช ืžื•ืคืข ืžื’ื™ืขื” 2 ื“ืงื•ืช ืœืคื ื™ ื”ืื™ืจื•ืข ื‘ืคื•ืขืœ. ืœื›ืŸ, ืื ื”ืฉื™ืจื•ืช ืฉืœืš ืœื ืžื‘ืฆืข ืžืฉื™ืžื•ืช ื™ื•ืชืจ ืž-2 ื“ืงื•ืช ื•ืื™ื ื• ืฉื•ืžืจ ื“ื‘ืจ ื‘ื“ื™ืกืง, ืื– ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ ื‘ืžื•ืคืขื™ื ื ืงื•ื“ืชื™ื™ื ืžื‘ืœื™ ืœืื‘ื“ ื ืชื•ื ื™ื.

ืœื’ื‘ื™ ื“ื™ืกืง - AWS ืœืื—ืจื•ื ื” ืขืฉื” ืืคืฉืจ ืœื”ืฉืชืžืฉ ื‘ืžืขืจื›ืช ื”ืงื‘ืฆื™ื ื”ืืœืกื˜ื™ืช (EFS) ื™ื—ื“ ืขื ECS; ืขื ืกื›ืžื” ื–ื•, ืืคื™ืœื• ื”ื“ื™ืกืง ืื™ื ื• ืžื”ื•ื•ื” ืžื›ืฉื•ืœ, ืืš ืœื ื ื™ืกื™ื ื• ื–ืืช, ืžื›ื™ื•ื•ืŸ ืฉื‘ืื•ืคืŸ ืขืงืจื•ื ื™ ืื™ื ื ื• ื–ืงื•ืงื™ื ืœื“ื™ืกืง ื›ื“ื™ ืœืื—ืกืŸ ืืช ื”ืžืฆื‘. ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, ืœืื—ืจ ืงื‘ืœืช SIGINT (ื ืฉืœื— ื›ืืฉืจ ืžืฉื™ืžื” ืžื•ืขื‘ืจืช ืœืžืฆื‘ ื ื™ืงื•ื–), ื›ืœ ื”ืžืฉื™ืžื•ืช ื”ืคื•ืขืœื•ืช ื™ื•ืคืกืงื• ืœืื—ืจ 30 ืฉื ื™ื•ืช, ื’ื ืื ื”ืŸ ื˜ืจื ื”ื•ืฉืœืžื•; ื ื™ืชืŸ ืœืฉื ื•ืช ืืช ื”ื–ืžืŸ ื”ื–ื” ื‘ืืžืฆืขื•ืช ื”ืคืจืžื˜ืจ ECS_CONTAINER_STOP_TIMEOUT. ื”ืขื™ืงืจ ืœื ืœื”ื’ื“ื™ืจ ืื•ืชื• ืœื™ื•ืชืจ ืž-2 ื“ืงื•ืช ืขื‘ื•ืจ ืžื›ื•ื ื•ืช ืกืคื•ื˜.

ื™ืฆื™ืจืช ืฉื™ืจื•ืช

ื‘ื•ืื• ื ืขื‘ื•ืจ ืœื™ืฆื™ืจืช ื”ืฉื™ืจื•ืช ื”ืžืชื•ืืจ. ื‘ืชื”ืœื™ืš, ืืชืืจ ื‘ื ื•ืกืฃ ืžืกืคืจ ื ืงื•ื“ื•ืช ืฉื™ืžื•ืฉื™ื•ืช ืฉืœื ื”ื•ื–ื›ืจื• ืœืขื™ืœ. ื‘ืื•ืคืŸ ื›ืœืœื™, ื–ื• ื”ื•ืจืื” ืฉืœื‘ ืื—ืจ ืฉืœื‘, ืื‘ืœ ืื ื™ ืœื ืืชื™ื™ื—ืก ืœืžืงืจื™ื ืžืื•ื“ ื‘ืกื™ืกื™ื™ื ืื• ืœื”ื™ืคืš, ืžืื•ื“ ืกืคืฆื™ืคื™ื™ื. ื›ืœ ื”ืคืขื•ืœื•ืช ืžื‘ื•ืฆืขื•ืช ื‘ืžืกื•ืฃ ื”ื•ื•ื™ื–ื•ืืœื™ ืฉืœ AWS, ืืš ื ื™ืชืŸ ืœืฉื—ื–ืจ ืื•ืชื ื‘ืื•ืคืŸ ืชื•ื›ื ื™ืชื™ ื‘ืืžืฆืขื•ืช CloudFormation ืื• Terraform. ื‘-Adapty ืื ื• ืžืฉืชืžืฉื™ื ื‘- Terraform.

ืชื‘ื ื™ืช ื”ืคืขืœื” ืฉืœ EC2

ืฉื™ืจื•ืช ื–ื” ื™ื•ืฆืจ ืชืฆื•ืจื” ืฉืœ ืžื›ื•ื ื•ืช ืฉื™ืฉืžืฉื•. ื”ืชื‘ื ื™ื•ืช ืžื ื•ื”ืœื•ืช ื‘ืกืขื™ืฃ EC2 -> ืžื•ืคืขื™ื -> ื”ืคืขืœื” ืฉืœ ืชื‘ื ื™ื•ืช.

ืชืžื•ื ืช ืžื›ื•ื ืช ืืžื–ื•ืŸ (AMI) - ืฆื™ื™ืŸ ืืช ืชืžื•ื ืช ื”ื“ื™ืกืง ืื™ืชื” ื™ื•ืคืขืœื• ื›ืœ ื”ืžื•ืคืขื™ื. ืขื‘ื•ืจ ECS, ื‘ืจื•ื‘ ื”ืžืงืจื™ื ื›ื“ืื™ ืœื”ืฉืชืžืฉ ื‘ืชืžื•ื ื” ื”ืื•ืคื˜ื™ืžืœื™ืช ืžืืžื–ื•ืŸ. ื”ื•ื ืžืชืขื“ื›ืŸ ื‘ืื•ืคืŸ ืงื‘ื•ืข ื•ืžื›ื™ืœ ืืช ื›ืœ ื”ื“ืจื•ืฉ ืœ-ECS ืœืขื‘ื•ื“. ื›ื“ื™ ืœื’ืœื•ืช ืืช ืžื–ื”ื” ื”ืชืžื•ื ื” ื”ื ื•ื›ื—ื™, ืขื‘ื•ืจ ืœื“ืฃ AMIs ืžื•ืชืืžื™ื ืœืืžื–ื•ืŸ ECS, ื‘ื—ืจ ืืช ื”ืื–ื•ืจ ืฉื‘ื• ืืชื” ืžืฉืชืžืฉ ื•ื”ืขืชืง ืืช ืžื–ื”ื” AMI ืขื‘ื•ืจื•. ืœื“ื•ื’ืžื”, ืขื‘ื•ืจ ืื–ื•ืจ us-east-1, ื”ืžื–ื”ื” ื”ื ื•ื›ื—ื™ ื‘ื–ืžืŸ ื”ื›ืชื™ื‘ื” ื”ื•ื ami-00c7c1cf5bdc913ed. ื™ืฉ ืœื”ื›ื ื™ืก ืืช ื”ืžื–ื”ื” ื”ื–ื” ืœืคืจื™ื˜ ืฆื™ื™ืŸ ืขืจืš ืžื•ืชืื ืื™ืฉื™ืช.

ืกื•ื’ ืžื•ืคืข - ืฆื™ื™ืŸ ืืช ืกื•ื’ ื”ืžื•ืคืข. ื‘ื—ืจ ืืช ื”ืžืชืื™ื ื‘ื™ื•ืชืจ ืœืžืฉื™ืžื” ืฉืœืš.

ื–ื•ื’ ืžืคืชื—ื•ืช (ื›ื ื™ืกื”) - ืฆื™ื™ืŸ ืื™ืฉื•ืจ ืฉืื™ืชื• ืชื•ื›ืœ ืœื”ืชื—ื‘ืจ ืœืžื•ืคืข ื‘ืืžืฆืขื•ืช SSH, ื‘ืžื™ื“ืช ื”ืฆื•ืจืš.

ื”ื’ื“ืจื•ืช ืจืฉืช - ืฆื™ื™ืŸ ืืช ืคืจืžื˜ืจื™ ื”ืจืฉืช. ืคืœื˜ืคื•ืจืžืช ืจืฉืช ื‘ืจื•ื‘ ื”ืžืงืจื™ื ืฆืจื™ืš ืœื”ื™ื•ืช ืขื ืŸ ืคืจื˜ื™ ื•ื™ืจื˜ื•ืืœื™ (VPC). ืงื‘ื•ืฆื•ืช ืื‘ื˜ื—ื” - ืงื‘ื•ืฆื•ืช ืื‘ื˜ื—ื” ืขื‘ื•ืจ ื”ืžืงืจื™ื ืฉืœืš. ืžื›ื™ื•ื•ืŸ ืฉื ืฉืชืžืฉ ื‘ืื™ื–ื•ืŸ ืœืคื ื™ ื”ืžื•ืคืขื™ื, ืื ื™ ืžืžืœื™ืฅ ืœืฆื™ื™ืŸ ื›ืืŸ ืงื‘ื•ืฆื” ืฉืžืืคืฉืจืช ื—ื™ื‘ื•ืจื™ื ื ื›ื ืกื™ื ืจืง ืžื”ืื™ื–ื•ืŸ. ื›ืœื•ืžืจ, ื™ื”ื™ื• ืœืš 2 ืงื‘ื•ืฆื•ืช ืื‘ื˜ื—ื”, ื”ืื—ืช ืขื‘ื•ืจ ื”ืื™ื–ื•ืŸ, ื”ืžืืคืฉืจืช ื—ื™ื‘ื•ืจื™ื ื ื›ื ืกื™ื ืžื›ืœ ืžืงื•ื ื‘ื™ืฆื™ืื•ืช 80 (http) ื•-443 (https), ื•ื”ืฉื ื™ื™ื” ืœืžื›ื•ื ื•ืช, ื”ืžืืคืฉืจืช ื—ื™ื‘ื•ืจื™ื ื ื›ื ืกื™ื ื‘ื›ืœ ืคื•ืจื˜ ืžืงื‘ื•ืฆืช ื”ืื™ื–ื•ืŸ. . ื™ืฉ ืœืคืชื•ื— ื—ื™ื‘ื•ืจื™ื ื™ื•ืฆืื™ื ื‘ืฉืชื™ ื”ืงื‘ื•ืฆื•ืช ื‘ืืžืฆืขื•ืช ืคืจื•ื˜ื•ืงื•ืœ TCP ืœื›ืœ ื”ื™ืฆื™ืื•ืช ืœื›ืœ ื”ื›ืชื•ื‘ื•ืช. ืืชื” ื™ื›ื•ืœ ืœื”ื’ื‘ื™ืœ ื™ืฆื™ืื•ืช ื•ื›ืชื•ื‘ื•ืช ืœื—ื™ื‘ื•ืจื™ื ื™ื•ืฆืื™ื, ืื‘ืœ ืื– ืืชื” ืฆืจื™ืš ืœืคืงื— ื›ืœ ื”ื–ืžืŸ ืฉืืชื” ืœื ืžื ืกื” ืœื’ืฉืช ืœืžืฉื”ื• ื‘ื™ืฆื™ืื” ืกื’ื•ืจื”.

ืื—ืกื•ืŸ (ื ืคื—ื™ื) - ืฆื™ื™ืŸ ืืช ืคืจืžื˜ืจื™ ื”ื“ื™ืกืง ืขื‘ื•ืจ ื”ืžื›ื•ื ื•ืช. ื’ื•ื“ืœ ื”ื“ื™ืกืง ืœื ื™ื›ื•ืœ ืœื”ื™ื•ืช ืงื˜ืŸ ืžื–ื” ืฉืฆื•ื™ืŸ ื‘-AMI; ืขื‘ื•ืจ 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, ืœื›ืœ ื”ืžืฉื™ืžื•ืช ื™ืฉ ื“ืงื” ืื—ืช ืœืคื ื™ ื”ืจื’.

ECS_ENGINE_AUTH_TYPE=docker - ื”ืคืจืžื˜ืจ ืžืฆื™ื™ืŸ ืฉืกื›ื™ืžืช Docker ืžืฉืžืฉืช ื›ืžื ื’ื ื•ืŸ ื”ื”ืจืฉืื”

ECS_ENGINE_AUTH_DATA=... - ืคืจืžื˜ืจื™ ื—ื™ื‘ื•ืจ ืœืจื™ืฉื•ื ื”ืžื›ื™ืœื™ื ื”ืคืจื˜ื™, ืฉื‘ื• ืžืื•ื—ืกื ื•ืช ืชืžื•ื ื•ืช Docker ืฉืœืš. ืื ื–ื” ืฆื™ื‘ื•ืจื™, ืื– ืืชื” ืœื ืฆืจื™ืš ืœืฆื™ื™ืŸ ืฉื•ื ื“ื‘ืจ.

ืœืžื˜ืจื•ืช ืžืืžืจ ื–ื”, ืืฉืชืžืฉ ื‘ืชืžื•ื ื” ืฆื™ื‘ื•ืจื™ืช ืž- Docker Hub, ืื– ืฆื™ื™ืŸ ืืช ื”ืคืจืžื˜ืจื™ื ECS_ENGINE_AUTH_TYPE ะธ ECS_ENGINE_AUTH_DATA ืœื ืฆืจื™ืš.

ื˜ื•ื‘ ืœื“ืขืช: ืžื•ืžืœืฅ ืœืขื“ื›ืŸ ืืช ื”-AMI ื‘ืื•ืคืŸ ืงื‘ื•ืข, ื›ื™ ื’ืจืกืื•ืช ื—ื“ืฉื•ืช ืžืขื“ื›ื ื•ืช ื’ืจืกืื•ืช ืฉืœ Docker, Linux, ECS agent ื•ื›ื•'. ื›ื“ื™ ืœื ืœืฉื›ื•ื— ืืช ื–ื”, ืืชื” ื™ื›ื•ืœ ืœื”ื’ื“ื™ืจ ื”ืชืจืื•ืช ืขืœ ืฉื—ืจื•ืจ ื’ืจืกืื•ืช ื—ื“ืฉื•ืช. ืืชื” ื™ื›ื•ืœ ืœืงื‘ืœ ื”ื•ื“ืขื•ืช ื‘ืื™ืžื™ื™ืœ ื•ืœืขื“ื›ืŸ ื‘ืื•ืคืŸ ื™ื“ื ื™, ืื• ืฉืืชื” ื™ื›ื•ืœ ืœื›ืชื•ื‘ ืคื•ื ืงืฆื™ื™ืช Lambda ืฉืชื™ืฆื•ืจ ืื•ื˜ื•ืžื˜ื™ืช ื’ืจืกื” ื—ื“ืฉื” ืฉืœ Launch Template ืขื AMI ืžืขื•ื“ื›ืŸ.

ืงื‘ื•ืฆืช ืงื ื” ืžื™ื“ื” ืื•ื˜ื•ืžื˜ื™ ืฉืœ EC2

Auto Scaling Group ืื—ืจืื™ืช ืขืœ ื”ืฉืงื” ื•ืฉื™ื ื•ื™ ืงื ื” ืžื™ื“ื” ืฉืœ ืžื•ืคืขื™ื. ืงื‘ื•ืฆื•ืช ืžื ื•ื”ืœื•ืช ื‘ืงื˜ืข EC2 -> ืงื ื” ืžื™ื“ื” ืื•ื˜ื•ืžื˜ื™ -> ืงื‘ื•ืฆื•ืช ืงื ื” ืžื™ื“ื” ืื•ื˜ื•ืžื˜ื™.

ื”ืคืขืœ ืชื‘ื ื™ืช โ€” ื‘ื—ืจ ืืช ื”ืชื‘ื ื™ืช ืฉื ื•ืฆืจื” ื‘ืฉืœื‘ ื”ืงื•ื“ื. ืื ื• ืžืฉืื™ืจื™ื ืืช ื’ืจืกืช ื‘ืจื™ืจืช ื”ืžื—ื“ืœ.

ืืคืฉืจื•ื™ื•ืช ืจื›ื™ืฉื” ื•ืกื•ื’ื™ ืžื•ืคืขื™ื - ืฆื™ื™ืŸ ืืช ืกื•ื’ื™ ื”ืžื•ืคืขื™ื ืขื‘ื•ืจ ื”ืืฉื›ื•ืœ. ื“ื‘ืง ื‘ืชื‘ื ื™ืช ื”ื”ืฉืงื” ืžืฉืชืžืฉ ื‘ืกื•ื’ ื”ืžื•ืคืข ืžืชื‘ื ื™ืช ื”ื”ืฉืงื”. ืฉื™ืœื•ื‘ ืืคืฉืจื•ื™ื•ืช ืจื›ื™ืฉื” ื•ืกื•ื’ื™ ืžื•ืคืข ืžืืคืฉืจ ืœืš ืœื”ื’ื“ื™ืจ ื‘ืฆื•ืจื” ื’ืžื™ืฉื” ืกื•ื’ื™ ืžื•ืคืขื™ื. ืื ื—ื ื• ื ืฉืชืžืฉ ื‘ื•.

ื‘ืกื™ืก ืœืคื™ ื“ืจื™ืฉื” ืื•ืคืฆื™ื•ื ืœื™ - ืžืกืคืจ ื”ืžื•ืคืขื™ื ื”ืจื’ื™ืœื™ื ื•ื”ืœื ื ืงื•ื“ืชื™ื™ื ืฉืชืžื™ื“ ื™ืคืขืœื•.

ืื—ื•ื– ืœืคื™ ื“ืจื™ืฉื” ืžืขืœ ื”ื‘ืกื™ืก - ื™ื—ืก ื‘ืื—ื•ื–ื™ื ืฉืœ ืžื•ืคืขื™ื ืจื’ื™ืœื™ื ื•ื ืงื•ื“ืชื™ื™ื, 50-50 ื™ื—ื•ืœืงื• ื‘ืื•ืคืŸ ืฉื•ื•ื”, 20-80 ืœื›ืœ ืžื•ืคืข ืจื’ื™ืœ ื™ื•ืขืœื• 4 ื ืงื•ื“ื•ืช ื ืงื•ื“ืชื™ื•ืช. ืœืฆื•ืจืš ื“ื•ื’ืžื” ื–ื•, ืืฆื™ื™ืŸ 50-50, ืืš ื‘ืžืฆื™ืื•ืช ืื ื• ืขื•ืฉื™ื ืœืจื•ื‘ 20-80, ื‘ืžืงืจื™ื ืžืกื•ื™ืžื™ื 0-100.

ืกื•ื’ื™ ืžื•ืคืขื™ื - ื›ืืŸ ืืชื” ื™ื›ื•ืœ ืœืฆื™ื™ืŸ ืกื•ื’ื™ื ื ื•ืกืคื™ื ืฉืœ ืžื•ืคืขื™ื ืฉื™ืฉืžืฉื• ื‘ืืฉื›ื•ืœ. ืžืขื•ืœื ืœื ื”ืฉืชืžืฉื ื• ื‘ื• ื›ื™ ืื ื™ ืœื ืžืžืฉ ืžื‘ื™ืŸ ืืช ืžืฉืžืขื•ืช ื”ืกื™ืคื•ืจ. ืื•ืœื™ ื–ื” ื ื•ื‘ืข ืžื”ืžื’ื‘ืœื•ืช ืขืœ ืกื•ื’ื™ื ืกืคืฆื™ืคื™ื™ื ืฉืœ ืžื•ืคืขื™ื, ืื‘ืœ ื ื™ืชืŸ ืœื”ื’ื“ื™ืœ ืื•ืชื ื‘ืงืœื•ืช ื‘ืืžืฆืขื•ืช ืชืžื™ื›ื”. ืื ืืชื” ืžื›ื™ืจ ืืช ื”ืืคืœื™ืงืฆื™ื”, ืืฉืžื— ืœืงืจื•ื ืื•ืชื” ื‘ืชื’ื•ื‘ื•ืช)

ื‘ื ื™ื™ืช API ืœื”ืจื—ื‘ื” ื‘ืžื•ืคืขื™ AWS Spot

ืจืฉืช โ€” ื”ื’ื“ืจื•ืช ืจืฉืช, ื‘ื—ืจ VPC ื•ืจืฉืชื•ืช ืžืฉื ื” ืœืžื›ื•ื ื•ืช, ื‘ืจื•ื‘ ื”ืžืงืจื™ื ืขืœื™ืš ืœื‘ื—ื•ืจ ืืช ื›ืœ ืจืฉืชื•ืช ื”ืžืฉื ื” ื”ื–ืžื™ื ื•ืช.

ืื™ื–ื•ืŸ ืขื•ืžืกื™ื - ื”ื’ื“ืจื•ืช ืื™ื–ื•ืŸ, ืื‘ืœ ื ืขืฉื” ื–ืืช ื‘ื ืคืจื“, ืœื ื ื™ื’ืข ื›ืืŸ ื‘ื›ืœื•ื. ื‘ื“ื™ืงื•ืช ื‘ืจื™ืื•ืช ื™ื•ื’ื“ืจ ื’ื ืžืื•ื—ืจ ื™ื•ืชืจ.

ื’ื•ื“ืœ ืงื‘ื•ืฆื” - ืื ื• ืžืฆื™ื™ื ื™ื ืืช ื”ืžื’ื‘ืœื•ืช ืขืœ ืžืกืคืจ ื”ืžื›ื•ื ื•ืช ื‘ืืฉื›ื•ืœ ื•ืžืกืคืจ ื”ืžื›ื•ื ื•ืช ื”ืจืฆื•ื™ ื‘ื”ืชื—ืœื”. ืžืกืคืจ ื”ืžื›ื•ื ื•ืช ื‘ืืฉื›ื•ืœ ืœืขื•ืœื ืœื ื™ืคื—ืช ืžื”ืžื™ื ื™ืžื•ื ืฉืฆื•ื™ืŸ ื•ื™ื•ืชืจ ืžื”ืžืงืกื™ืžื•ื, ื’ื ืื ืฆืจื™ืš ืœื”ืชืจื—ืฉ ืงื ื” ืžื™ื“ื” ืœืคื™ ื”ืžื“ื“ื™ื.

ืžื“ื™ื ื™ื•ืช ืงื ื” ืžื™ื“ื” - ืคืจืžื˜ืจื™ื ืฉืœ ืงื ื” ืžื™ื“ื”, ืื‘ืœ ืื ื• ื ื‘ืฆืข ืงื ื” ืžื™ื“ื” ืขืœ ืกืžืš ืžืฉื™ืžื•ืช ื”-ECS ื”ืคื•ืขืœื•ืช, ืื– ื ื’ื“ื™ืจ ืืช ืงื ื” ื”ืžื™ื“ื” ืžืื•ื—ืจ ื™ื•ืชืจ.

ื”ื’ื ื” ืขืœ ืงื ื” ืžื™ื“ื” - ื”ื’ื ื” ืขืœ ืžื•ืคืขื™ื ืžืคื ื™ ืžื—ื™ืงื” ื‘ืขืช ื”ืงื˜ื ื”. ืื ื• ืžืืคืฉืจื™ื ื–ืืช ื›ืš ืฉ-ASG ืœื ืชืžื—ืง ืืช ื”ืžื—ืฉื‘ ืฉื™ืฉ ืœื• ืžืฉื™ืžื•ืช ืคื•ืขืœื•ืช. ECS Capacity Provider ื™ืฉื‘ื™ืช ืืช ื”ื”ื’ื ื” ืขื‘ื•ืจ ืžื•ืคืขื™ื ืฉืื™ืŸ ืœื”ื ืžืฉื™ืžื•ืช.

ื”ื•ืกืฃ ืชื’ื™ื•ืช - ืืชื” ื™ื›ื•ืœ ืœืฆื™ื™ืŸ ืชื’ื™ื ืขื‘ื•ืจ ืžื•ืคืขื™ื (ืœืฉื ื›ืš, ืชื™ื‘ืช ื”ืกื™ืžื•ืŸ ืชื’ ืžื•ืคืขื™ื ื—ื“ืฉื™ื ื—ื™ื™ื‘ืช ืœื”ื™ื•ืช ืžืกื•ืžื ืช). ืื ื™ ืžืžืœื™ืฅ ืœืฆื™ื™ืŸ ืืช ื”-Name tag, ื•ืื– ื›ืœ ื”ืžื•ืคืขื™ื ืฉื™ื•ืฉืงื• ื‘ืชื•ืš ื”ืงื‘ื•ืฆื” ื™ื”ื™ื• ื‘ืขืœื™ ืฉื ื–ื”ื”, ื•ื ื•ื— ืœืจืื•ืช ืื•ืชื ื‘ืงื•ื ืกื•ืœื”.

ื‘ื ื™ื™ืช API ืœื”ืจื—ื‘ื” ื‘ืžื•ืคืขื™ AWS Spot

ืœืื—ืจ ื™ืฆื™ืจืช ื”ืงื‘ื•ืฆื” ืคืชื—ื• ืื•ืชื” ื•ืขื‘ืจื• ืœืงื˜ืข ื”ื’ื“ืจื•ืช ืžืชืงื“ืžื•ืช ืžื“ื•ืข ืœื ื›ืœ ื”ืืคืฉืจื•ื™ื•ืช ื’ืœื•ื™ื•ืช ื‘ืงื•ื ืกื•ืœื” ื‘ืฉืœื‘ ื”ื™ืฆื™ืจื”.

ืžื“ื™ื ื™ื•ืช ืกื™ื•ื - ื›ืœืœื™ื ืฉื ืœืงื—ื™ื ื‘ื—ืฉื‘ื•ืŸ ื‘ืขืช โ€‹โ€‹ืžื—ื™ืงืช ืžื•ืคืขื™ื. ื”ื ืžื™ื•ืฉืžื™ื ืœืคื™ ื”ืกื“ืจ. ื‘ื“ืจืš ื›ืœืœ ืื ื• ืžืฉืชืžืฉื™ื ื‘ืืœื” ืฉื‘ืชืžื•ื ื” ืœืžื˜ื”. ืจืืฉื™ืช, ื ืžื—ืงื™ื ืžื•ืคืขื™ื ืขื ืชื‘ื ื™ืช ื”ื”ืคืขืœื” ื”ื™ืฉื ื” ื‘ื™ื•ืชืจ (ืœื“ื•ื’ืžื”, ืื ืขื“ื›ื ื• ืืช ื”-AMI, ื™ืฆืจื ื• ื’ืจืกื” ื—ื“ืฉื”, ืื‘ืœ ื›ืœ ื”ืžื•ืคืขื™ื ื”ืฆืœื™ื—ื• ืœืขื‘ื•ืจ ืืœื™ื”). ืœืื—ืจ ืžื›ืŸ ื ื‘ื—ืจื™ื ื”ืžื•ืคืขื™ื ื”ืงืจื•ื‘ื™ื ื‘ื™ื•ืชืจ ืœืฉืขืช ื”ื—ื™ื•ื‘ ื”ื‘ืื”. ื•ืื– ื”ืขืชื™ืงื™ื ื‘ื™ื•ืชืจ ื ื‘ื—ืจื™ื ืขืœ ืกืžืš ืชืืจื™ืš ื”ื”ืฉืงื”.

ื‘ื ื™ื™ืช API ืœื”ืจื—ื‘ื” ื‘ืžื•ืคืขื™ AWS Spot

ื˜ื•ื‘ ืœื“ืขืช: ืœืขื“ื›ื•ืŸ ื›ืœ ื”ืžื›ื•ื ื•ืช ื‘ืืฉื›ื•ืœ, ื ื•ื— ืœืฉื™ืžื•ืฉ ืจืขื ื•ืŸ ืžื•ืคืข. ืื ืชืฉืœื‘ ื–ืืช ืขื ืคื•ื ืงืฆื™ื™ืช Lambda ืžื”ืฉืœื‘ ื”ืงื•ื“ื, ืชื”ื™ื” ืœืš ืžืขืจื›ืช ืขื“ื›ื•ืŸ ืžื•ืคืขื™ื ืื•ื˜ื•ืžื˜ื™ืช ืœื—ืœื•ื˜ื™ืŸ. ืœืคื ื™ ืขื“ื›ื•ืŸ ื›ืœ ื”ืžื›ื•ื ื•ืช, ืขืœื™ืš ืœื”ืฉื‘ื™ืช ืืช ื”ื’ื ืช ื”ื’ื“ืœื” ืฉืœ ืžื•ืคืขื™ื ืขื‘ื•ืจ ื›ืœ ื”ืžื•ืคืขื™ื ื‘ืงื‘ื•ืฆื”. ืœื ืชืฆื•ืจื” ื‘ืงื‘ื•ืฆื”, ืืœื ื”ื’ื ื” ืžื”ืžื›ื•ื ื•ืช ืขืฆืžื, ื–ื” ื ืขืฉื” ื‘ืœืฉื•ื ื™ืช ื ื™ื”ื•ืœ ืžื•ืคืขื™ื.

ืžืื–ืŸ ืขื•ืžืก ืืคืœื™ืงืฆื™ื•ืช ื•ืงื‘ื•ืฆืช ื™ืขื“ EC2

ื”ืžืื–ืŸ ื ื•ืฆืจ ื‘ืกืขื™ืฃ EC2 โ†’ Load Balancer โ†’ Load Balancers. ืื ื• ื ืฉืชืžืฉ ื‘- Application Load Balancer; ื ื™ืชืŸ ืœืงืจื•ื ื”ืฉื•ื•ืื” ื‘ื™ืŸ ืกื•ื’ื™ื ืฉื•ื ื™ื ืฉืœ ืžืื–ื ื™ื ื“ืฃ ืฉื™ืจื•ืช.

ืžืื–ื™ื ื™ื - ื”ื’ื™ื•ื ื™ ืœื‘ืฆืข ื™ืฆื™ืื•ืช 80 ื•-443 ื•ืœื ืชื‘ ืžื—ื“ืฉ ืž-80 ืœ-443 ื‘ืืžืฆืขื•ืช ื›ืœืœื™ ืื™ื–ื•ืŸ ืžืื•ื—ืจ ื™ื•ืชืจ.

ืื–ื•ืจื™ ื–ืžื™ื ื•ืช - ื‘ืจื•ื‘ ื”ืžืงืจื™ื, ืื ื• ื‘ื•ื—ืจื™ื ืื–ื•ืจื™ ื ื’ื™ืฉื•ืช ืœื›ื•ืœื.

ื”ื’ื“ืจ ืืช ื”ื’ื“ืจื•ืช ื”ืื‘ื˜ื—ื” - ืชืขื•ื“ืช SSL ืขื‘ื•ืจ ื”ืžืื–ืŸ ืžืกื•ืžื ืช ื›ืืŸ, ื”ืืคืฉืจื•ืช ื”ื ื•ื—ื” ื‘ื™ื•ืชืจ ื”ื™ื ืœืขืฉื•ืช ืชืขื•ื“ื” ื‘-ACM. ืœื’ื‘ื™ ื”ื”ื‘ื“ืœื™ื ืžื“ื™ื ื™ื•ืช ืื‘ื˜ื—ื” ื ื™ืชืŸ ืœืงืจื•ื ื‘ ืชื™ืขื•ื“, ืืชื” ื™ื›ื•ืœ ืœื”ืฉืื™ืจ ืื•ืชื• ื ื‘ื—ืจ ื›ื‘ืจื™ืจืช ืžื—ื“ืœ ELBSecurityPolicy-2016-08. ืœืื—ืจ ื™ืฆื™ืจืช ื”ืื™ื–ื•ืŸ, ืชืจืื” ืื•ืชื• ืฉื DNS, ืฉืืชื” ืฆืจื™ืš ื›ื“ื™ ืœื”ื’ื“ื™ืจ ืืช ื”-CNAME ืขื‘ื•ืจ ื”ื“ื•ืžื™ื™ืŸ ืฉืœืš. ืœื“ื•ื’ืžื”, ื›ืš ื–ื” ื ืจืื” ื‘-Cloudflare.

ื‘ื ื™ื™ืช API ืœื”ืจื—ื‘ื” ื‘ืžื•ืคืขื™ AWS Spot

ืงื‘ื•ืฆืช ืื‘ื˜ื—ื” - ืฆื•ืจ ืื• ื‘ื—ืจ ืงื‘ื•ืฆืช ืื‘ื˜ื—ื” ืขื‘ื•ืจ ื”ืžืื–ืŸ, ื›ืชื‘ืชื™ ืขื•ื“ ืขืœ ื–ื” ืžืžืฉ ืœืžืขืœื” ื‘-EC2 Launch Template โ† ืกืขื™ืฃ ื”ื’ื“ืจื•ืช ืจืฉืช.

ืงื‘ื•ืฆืช ื”ื™ืขื“ โ€” ืื ื• ื™ื•ืฆืจื™ื ืงื‘ื•ืฆื” ืฉืื—ืจืื™ืช ืขืœ ื ื™ืชื•ื‘ ื‘ืงืฉื•ืช ืžื”ืžืื–ืŸ ืœืžื›ื•ื ื•ืช ื•ื‘ื“ื™ืงืช ื–ืžื™ื ื•ืชืŸ ืขืœ ืžื ืช ืœื”ื—ืœื™ืคืŸ ื‘ืžืงืจื” ืฉืœ ื‘ืขื™ื•ืช. ืกื•ื’ ื”ื™ืขื“ ื—ื™ื™ื‘ ืœื”ื™ื•ืช Instance, ืคืจื•ื˜ื•ืงื•ืœ ะธ ื ึธืžึธืœ ื›ืœ, ืื ืืชื” ืžืฉืชืžืฉ ื‘-HTTPS ืœืชืงืฉื•ืจืช ื‘ื™ืŸ ื”ืžืื–ืŸ ืœืžื•ืคืขื™ื, ืขืœื™ืš ืœื”ืขืœื•ืช ืœื”ื ืื™ืฉื•ืจ. ืœืžื˜ืจื•ืช ื”ื“ื•ื’ืžื” ื”ื–ื•, ืœื ื ืขืฉื” ื–ืืช, ืคืฉื•ื˜ ื ืขื–ื•ื‘ ืืช ื™ืฆื™ืื” 80.

ื‘ื“ื™ืงื•ืช ื‘ืจื™ืื•ืช - ืคืจืžื˜ืจื™ื ืœื‘ื“ื™ืงืช ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื”ืฉื™ืจื•ืช. ื‘ืฉื™ืจื•ืช ืืžื™ืชื™ ื–ื• ืฆืจื™ื›ื” ืœื”ื™ื•ืช ื‘ืงืฉื” ื ืคืจื“ืช ื”ืžื™ื™ืฉืžืช ื—ืœืงื™ื ื—ืฉื•ื‘ื™ื ืžื”ืœื•ื’ื™ืงื” ื”ืขืกืงื™ืช; ืœืžื˜ืจื•ืช ื“ื•ื’ืžื” ื–ื• ืืฉืื™ืจ ืืช ื”ื’ื“ืจื•ืช ื‘ืจื™ืจืช ื”ืžื—ื“ืœ. ืœืื—ืจ ืžื›ืŸ, ืชื•ื›ืœ ืœื‘ื—ื•ืจ ืืช ืžืจื•ื•ื— ื”ื‘ืงืฉื•ืช, ื”ื–ืžืŸ ื”ืงืฆื•ื‘, ืงื•ื“ื™ ื”ื”ืฆืœื—ื” ื•ื›ื•'. ื‘ื“ื•ื’ืžื” ืฉืœื ื•, ื ืฆื™ื™ืŸ ืืช ืงื•ื“ื™ ื”ื”ืฆืœื—ื” 200-399, ืžื›ื™ื•ื•ืŸ ืฉืชืžื•ื ืช ื”-Docker ืฉืชืฉืžืฉ ืžื—ื–ื™ืจื” ืงื•ื“ 304.

ื‘ื ื™ื™ืช API ืœื”ืจื—ื‘ื” ื‘ืžื•ืคืขื™ AWS Spot

ืจื™ืฉื•ื ื™ืขื“ื™ื - ื›ืืŸ ื ื‘ื—ืจื•ืช ื”ืžื›ื•ื ื™ื•ืช ืœืงื‘ื•ืฆื”, ืื‘ืœ ื‘ืžืงืจื” ืฉืœื ื• ื–ื” ื™ืขืฉื” ืขืœ ื™ื“ื™ ECS, ืื– ืื ื—ื ื• ืคืฉื•ื˜ ืžื“ืœื’ื™ื ืขืœ ืฉืœื‘ ื–ื”.

ื˜ื•ื‘ ืœื“ืขืช: ื‘ืจืžืช ื”ืื™ื–ื•ืŸ ืืชื” ื™ื›ื•ืœ ืœืืคืฉืจ ื™ื•ืžื ื™ื ืฉื™ื™ืฉืžืจื• ื‘-S3 ื‘ื›ืžื” ื–ืžืŸ ืคื•ืจืžื˜. ืžืฉื ื ื™ืชืŸ ืœื™ื™ืฆื ืื•ืชื ืœืฉื™ืจื•ืชื™ ืฆื“ ืฉืœื™ืฉื™ ืœื ื™ืชื•ื—, ืื• ืฉืชื•ื›ืœ ืœื‘ืฆืข ืฉืื™ืœืชื•ืช SQL ื™ืฉื™ืจื•ืช ืขืœ ื”ื ืชื•ื ื™ื ื‘-S3 ืขื ื‘ืืžืฆืขื•ืช ืืชื ื”. ื–ื” ื ื•ื— ื•ืขื•ื‘ื“ ืœืœื ืฉื•ื ืงื•ื“ ื ื•ืกืฃ. ืื ื™ ื’ื ืžืžืœื™ืฅ ืœื”ื’ื“ื™ืจ ืืช ื”ืกืจืช ื”ื™ื•ืžื ื™ื ืžื”ื“ืœื™ S3 ืœืื—ืจ ืคืจืง ื–ืžืŸ ืžื•ื’ื“ืจ.

ื”ื’ื“ืจืช ืžืฉื™ืžื•ืช ECS

ื‘ืฉืœื‘ื™ื ื”ืงื•ื“ืžื™ื ื™ืฆืจื ื• ืืช ื›ืœ ืžื” ืฉืงืฉื•ืจ ืœืชืฉืชื™ืช ื”ืฉื™ืจื•ืช, ื›ืขืช ื ืขื‘ื•ืจ ืœืชื™ืื•ืจ ื”ืงื•ื ื˜ื™ื™ื ืจื™ื ืฉื ืฉื™ืง. ื–ื” ื ืขืฉื” ื‘ืกืขื™ืฃ ECS โ†’ ื”ื’ื“ืจื•ืช ืžืฉื™ืžื•ืช.

ืชืื™ืžื•ืช ืœืกื•ื’ ื”ื”ืฉืงื” - ื‘ื—ืจ EC2.

ื‘ื™ืฆื•ืข ืžืฉื™ืžื” ืชืคืงื™ื“ IAM - ื‘ื—ืจ ecsTaskExecutionRole. ื‘ืืžืฆืขื•ืชื• ื ื›ืชื‘ื™ื ื™ื•ืžื ื™ื, ื ื™ืชื ืช ื’ื™ืฉื” ืœืžืฉืชื ื™ื ืกื•ื“ื™ื™ื ื•ื›ื•'.

ื‘ืžืงื˜ืข ื”ื’ื“ืจื•ืช ืžื™ื›ืœ, ืœื—ืฅ ืขืœ ื”ื•ืกืฃ ืžื™ื›ืœ.

ืชืžื•ื ื” - ืงื™ืฉื•ืจ ืœืชืžื•ื ื” ืขื ืงื•ื“ ื”ืคืจื•ื™ืงื˜; ืœื“ื•ื’ืžื ื–ื• ืืฉืชืžืฉ ื‘ืชืžื•ื ื” ืฆื™ื‘ื•ืจื™ืช ืž- Docker Hub bitnami/node-example:0.0.1.

ืžื’ื‘ืœื•ืช ื–ื™ื›ืจื•ืŸ - ืžื’ื‘ืœื•ืช ื–ื™ื›ืจื•ืŸ ืขื‘ื•ืจ ื”ืžื™ื›ืœ. ื’ื‘ื•ืœ ืงืฉื” - ืžื’ื‘ืœื” ืงืฉื”, ืื ื”ืžื™ื›ืœ ื—ื•ืจื’ ืžื”ืขืจืš ืฉืฆื•ื™ืŸ, ืชื‘ื•ืฆืข ืคืงื•ื“ืช docker kill, ื”ืžื™ื›ืœ ื™ืžื•ืช ืžื™ื“. ืžื’ื‘ืœื” ืจื›ื” - ืžื’ื‘ืœื” ืจื›ื”, ื”ืžื™ื›ืœ ื™ื›ื•ืœ ืœื—ืจื•ื’ ืžื”ืขืจืš ืฉืฆื•ื™ืŸ, ืืš ืคืจืžื˜ืจ ื–ื” ื™ื™ืœืงื— ื‘ื—ืฉื‘ื•ืŸ ื‘ืขืช โ€‹โ€‹ื”ืฆื‘ืช ืžืฉื™ืžื•ืช ืขืœ ืžื›ื•ื ื•ืช. ืœื“ื•ื’ืžื”, ืื ืœืžื›ื•ื ื” ื™ืฉ 4 GiB ืฉืœ ื–ื™ื›ืจื•ืŸ RAM, ื•ื”ืžื’ื‘ืœื” ื”ืจื›ื” ืฉืœ ืžื™ื›ืœ ื”ื™ื 2048 MiB, ืื– ืœืžื›ื•ื ื” ื”ื–ื• ื™ื›ื•ืœื•ืช ืœื”ื™ื•ืช ืœื›ืœ ื”ื™ื•ืชืจ 2 ืžืฉื™ืžื•ืช ืคื•ืขืœื•ืช ืขื ืžื™ื›ืœ ื–ื”. ื‘ืžืฆื™ืื•ืช, 4 GiB ืฉืœ ื–ื™ื›ืจื•ืŸ RAM ื”ื•ื ืžืขื˜ ืคื—ื•ืช ืž-4096 MiB, ื ื™ืชืŸ ืœืจืื•ืช ื–ืืช ื‘ื›ืจื˜ื™ืกื™ื™ื” ECS Instances ื‘ืืฉื›ื•ืœ. ื’ื‘ื•ืœ ืจืš ืœื ื™ื›ื•ืœ ืœื”ื™ื•ืช ื’ื“ื•ืœ ืžื’ื‘ื•ืœ ืงืฉื”. ื—ืฉื•ื‘ ืœื”ื‘ื™ืŸ ืฉืื ื™ืฉ ื›ืžื” ืžื›ื•ืœื•ืช ื‘ืžืฉื™ืžื” ืื—ืช, ืื– ื”ื’ื‘ื•ืœื•ืช ืฉืœื”ื ืžืกื•ื›ืžื™ื.

ืžื™ืคื•ื™ื™ ื ืžืœื™ื - ืคื ื™ืžื” ื™ืฆื™ืืช ืžืืจื— ืื ื• ืžืฆื™ื™ื ื™ื 0, ื–ื” ืื•ืžืจ ืฉื”ื™ืฆื™ืื” ืชื•ืงืฆื” ื‘ืื•ืคืŸ ื“ื™ื ืžื™ ื•ืชื ื•ื˜ืจ ืขืœ ื™ื“ื™ ืงื‘ื•ืฆืช ื”ื™ืขื“. ื ืžืœ ืžื›ื•ืœื•ืช - ื”ื™ืฆื™ืื” ืฉืขืœื™ื” ืคื•ืขืœ ื”ื™ื™ืฉื•ื ืฉืœืš ืžืฆื•ื™ืŸ ืœืขืชื™ื ืงืจื•ื‘ื•ืช ื‘ืคืงื•ื“ืช ื”ื‘ื™ืฆื•ืข, ืื• ืžื•ืงืฆื™ืช ื‘ืงื•ื“ ื”ื™ื™ืฉื•ื ืฉืœืš, Dockerfile ื•ื›ื•'. ืขื‘ื•ืจ ื”ื“ื•ื’ืžื” ืฉืœื ื• ื ืฉืชืžืฉ ื‘-3000 ืžื›ื™ื•ื•ืŸ ืฉื”ื•ื ืจืฉื•ื ื‘ ื“ื•ืงืจืคื™ืœ ื”ืชืžื•ื ื” ืฉื‘ื” ื ืขืฉื” ืฉื™ืžื•ืฉ.

ื‘ื“ื™ืงืช ื‘ืจื™ืื•ืช - ืคืจืžื˜ืจื™ื ืฉืœ ื‘ื“ื™ืงืช ืชืงื™ื ื•ืช ืžื™ื›ืœ, ืœื ืœื‘ืœื‘ืœ ืขื ื–ื” ืฉื”ื•ื’ื“ืจ ื‘ืงื‘ื•ืฆืช ื”ื™ืขื“.

ืกื‘ื™ื‘ื” - ื”ื’ื“ืจื•ืช ืกื‘ื™ื‘ื”. ื™ื—ื™ื“ื•ืช ืžืขื‘ื“ - ื‘ื“ื•ืžื” ืœืžื’ื‘ืœื•ืช ื–ื™ื›ืจื•ืŸ, ืจืง ืœื’ื‘ื™ ื”ืžืขื‘ื“. ื›ืœ ืœื™ื‘ืช ืžืขื‘ื“ ื”ื™ื 1024 ื™ื—ื™ื“ื•ืช, ื›ืš ืฉืื ืœืฉืจืช ื™ืฉ ืžืขื‘ื“ ื›ืคื•ืœ ืœื™ื‘ื” ื•ื”ืžื™ื›ืœ ืžื•ื’ื“ืจ ืœ-512, ืื– ื ื™ืชืŸ ืœื”ืคืขื™ืœ 4 ืžืฉื™ืžื•ืช ืขื ืžื™ื›ืœ ื–ื” ื‘ืฉืจืช ืื—ื“. ื™ื—ื™ื“ื•ืช ืžืขื‘ื“ ืชืžื™ื“ ืžืชืื™ืžื•ืช ืœืžืกืคืจ ื”ืœื™ื‘ื•ืช; ืœื ื™ื›ื•ืœ ืœื”ื™ื•ืช ืงืฆืช ืคื—ื•ืช ืžื”ืŸ, ื›ืคื™ ืฉืงื•ืจื” ื‘ื–ื™ื›ืจื•ืŸ.

ืคื™ืงื•ื“ - ืคืงื•ื“ื” ืœื”ืคืขืœืช ืฉื™ืจื•ืช ื‘ืชื•ืš ืงื•ื ื˜ื™ื™ื ืจ, ื›ืœ ื”ืคืจืžื˜ืจื™ื ืžืฆื•ื™ื ื™ื ืžื•ืคืจื“ื™ื ื‘ืคืกื™ืงื™ื. ื–ื” ื™ื›ื•ืœ ืœื”ื™ื•ืช ื’ื•ื ื™ืงื•ืจืŸ, npm ื•ื›ื•'. ืื ืœื ืฆื•ื™ืŸ, ื”ืขืจืš ืฉืœ ื”ื•ืจืืช CMD ืžื”- Dockerfile ื™ืฉืžืฉ. ืื ื• ืžืฆื™ื™ื ื™ื npm,start.

ืžืฉืชื ื™ ืกื‘ื™ื‘ื” - ืžืฉืชื ื™ ืกื‘ื™ื‘ืช ืžื™ื›ืœ. ื–ื” ื™ื›ื•ืœ ืœื”ื™ื•ืช ื ืชื•ื ื™ ื˜ืงืกื˜ ืคืฉื•ื˜ื™ื ืื• ืžืฉืชื ื™ื ืกื•ื“ื™ื™ื ืžื ื”ืœ ืกื•ื“ื•ืช ืื• ื—ื ื•ืช ืคืจืžื˜ืจื™ื.

ืื—ืกื•ืŸ ื•ืจื™ืฉื•ื - ื›ืืŸ ื ื’ื“ื™ืจ ืจื™ืฉื•ื ื‘-CloudWatch Logs (ืฉื™ืจื•ืช ืœื™ื•ืžื ื™ื ืž-AWS). ื›ื“ื™ ืœืขืฉื•ืช ื–ืืช, ืคืฉื•ื˜ ื”ืคืขืœ ืืช ืชื™ื‘ืช ื”ืกื™ืžื•ืŸ ื”ื’ื“ืจ ืื•ื˜ื•ืžื˜ื™ืช ืฉืœ CloudWatch Logs. ืœืื—ืจ ื™ืฆื™ืจืช ื”ื’ื“ืจืช ื”ืžืฉื™ืžื•ืช, ืงื‘ื•ืฆื” ืฉืœ ื™ื•ืžื ื™ื ืชื™ื•ื•ืฆืจ ืื•ื˜ื•ืžื˜ื™ืช ื‘-CloudWatch. ื›ื‘ืจื™ืจืช ืžื—ื“ืœ, ื™ื•ืžื ื™ื ืžืื•ื—ืกื ื™ื ื‘ื• ืœืœื ื”ื’ื‘ืœืช ื–ืžืŸ; ืื ื™ ืžืžืœื™ืฅ ืœืฉื ื•ืช ืืช ืชืงื•ืคืช ื”ืฉืžื™ืจื” ืž-Nover Expire ืœืชืงื•ืคื” ื”ื ื“ืจืฉืช. ื–ื” ื ืขืฉื” ื‘ืงื‘ื•ืฆื•ืช CloudWatch Log, ืืชื” ืฆืจื™ืš ืœืœื—ื•ืฅ ืขืœ ื”ืชืงื•ืคื” ื”ื ื•ื›ื—ื™ืช ื•ืœื‘ื—ื•ืจ ืชืงื•ืคื” ื—ื“ืฉื”.

ื‘ื ื™ื™ืช API ืœื”ืจื—ื‘ื” ื‘ืžื•ืคืขื™ AWS Spot

Cluster ECS ื•ืกืคืง ืงื™ื‘ื•ืœืช ECS

ืขื‘ื•ืจ ืœืžืงื˜ืข ECS โ†’ ืืฉื›ื•ืœื•ืช ื›ื“ื™ ืœื™ืฆื•ืจ ืืฉื›ื•ืœ. ืื ื• ื‘ื•ื—ืจื™ื ื‘-EC2 Linux + Networking ื›ืชื‘ื ื™ืช.

ืฉื ืืฉื›ื•ืœ - ื—ืฉื•ื‘ ืžืื•ื“, ืื ื• ื™ื•ืฆืจื™ื ื›ืืŸ ืืช ืื•ืชื• ื”ืฉื ื›ืคื™ ืฉืฆื•ื™ืŸ ื‘ืคืจืžื˜ืจ ื”-Launch Template ECS_CLUSTER, ื‘ืžืงืจื” ืฉืœื ื• - DemoApiClusterProd. ืกืžืŸ ืืช ืชื™ื‘ืช ื”ืกื™ืžื•ืŸ ืฆื•ืจ ืืฉื›ื•ืœ ืจื™ืง. ืœื—ืœื•ืคื™ืŸ, ืชื•ื›ืœ ืœืืคืฉืจ ืœ-Container Insights ืœื”ืฆื™ื’ ืžื“ื“ื™ื ืขื‘ื•ืจ ืฉื™ืจื•ืชื™ื ื‘-CloudWatch. ืื ืขืฉื™ืช ื”ื›ืœ ื ื›ื•ืŸ, ื‘ืงื˜ืข ECS Instances ืชืจืื” ืžื›ื•ื ื•ืช ืฉื ื•ืฆืจื• ื‘ืงื‘ื•ืฆืช Auto Scaling.

ื‘ื ื™ื™ืช API ืœื”ืจื—ื‘ื” ื‘ืžื•ืคืขื™ AWS Spot

ืขื‘ื•ืจ ืœื›ืจื˜ื™ืกื™ื™ื” ืกืคืงื™ ืงื™ื‘ื•ืœืช ื•ืœื™ืฆื•ืจ ืื—ื“ ื—ื“ืฉ. ืชืŸ ืœื™ ืœื”ื–ื›ื™ืจ ืœืš ืฉื–ื” ื ื—ื•ืฅ ื›ื“ื™ ืœืฉืœื•ื˜ ื‘ื™ืฆื™ืจื” ื•ื‘ื›ื™ื‘ื•ื™ ืฉืœ ืžื›ื•ื ื•ืช ื‘ื”ืชืื ืœืžืกืคืจ ืžืฉื™ืžื•ืช ื”-ECS ื”ืคื•ืขืœื•ืช. ื—ืฉื•ื‘ ืœืฆื™ื™ืŸ ืฉื ื™ืชืŸ ืœืฉื™ื™ืš ืกืคืง ืจืง ืœืงื‘ื•ืฆื” ืื—ืช.

ืงื‘ื•ืฆืช ืงื ื” ืžื™ื“ื” ืื•ื˜ื•ืžื˜ื™ โ€” ื‘ื—ืจ ืืช ื”ืงื‘ื•ืฆื” ืฉื ื•ืฆืจื” ืงื•ื“ื ืœื›ืŸ.

ืงื ื” ืžื™ื“ื” ืžื ื•ื”ืœ - ืืคืฉืจ ื–ืืช ื›ืš ืฉื”ืกืคืง ื™ื•ื›ืœ ืœื”ื’ื“ื™ืœ ืืช ื”ืฉื™ืจื•ืช.

% ืงื™ื‘ื•ืœืช ื™ืขื“ - ืื™ื–ื” ืื—ื•ื– ืžื”ืžื›ื•ื ื•ืช ืขืžื•ืกื•ืช ื”ืžืฉื™ืžื•ืช ืื ื—ื ื• ืฆืจื™ื›ื™ื. ืื ืชืฆื™ื™ืŸ 100%, ืื– ื›ืœ ื”ืžื›ื•ื ื•ืช ืชืžื™ื“ ื™ื”ื™ื• ืขืกื•ืงื•ืช ื‘ื”ืคืขืœืช ืžืฉื™ืžื•ืช. ืื ืชืฆื™ื™ืŸ 50%, ืื– ืžื—ืฆื™ืช ืžื”ืžื›ื•ื ื™ื•ืช ืชืžื™ื“ ื™ื”ื™ื• ื‘ื—ื™ื ื. ื‘ืžืงืจื” ื–ื”, ืื ื™ืฉ ืงืคื™ืฆื” ื—ื“ื” ื‘ืขื•ืžืก, ืžื•ื ื™ื•ืช ื—ื“ืฉื•ืช ื™ื’ื™ืขื• ืžื™ื“ ืœืžื›ื•ื ื™ื•ืช ืคื ื•ื™ื•ืช, ืžื‘ืœื™ ืœื”ืžืชื™ืŸ ืœืคืจื™ืกืช ืžืงืจื™ื.

ื ื™ื”ื•ืœ ื”ื’ื ืช ืกื™ื•ื - ืืคืฉืจ, ืคืจืžื˜ืจ ื–ื” ืžืืคืฉืจ ืœืกืคืง ืœื”ืกื™ืจ ืืช ื”ื”ื’ื ื” ืขืœ ืžื•ืคืขื™ื ืžืžื—ื™ืงื”. ื–ื” ืงื•ืจื” ื›ืืฉืจ ืื™ืŸ ืžืฉื™ืžื•ืช ืคืขื™ืœื•ืช ื‘ืžื›ื•ื ื” ื•ืžืืคืฉืจืช ืงื™ื‘ื•ืœืช ื™ืขื“.

ECS ืฉื™ืจื•ืช ื•ื”ื’ื“ืจืช ืงื ื” ืžื™ื“ื”

ืฉืœื‘ ืื—ืจื•ืŸ :) ื›ื“ื™ ืœื™ืฆื•ืจ ืฉื™ืจื•ืช, ืขืœื™ืš ืœืขื‘ื•ืจ ืœืืฉื›ื•ืœ ืฉื ื•ืฆืจ ื‘ืขื‘ืจ ื‘ืœืฉื•ื ื™ืช ืฉื™ืจื•ืชื™ื.

ืกื•ื’ ื”ืฉืงื” - ืขืœื™ืš ืœืœื—ื•ืฅ ืขืœ ืžืขื‘ืจ ืœืืกื˜ืจื˜ื’ื™ื™ืช ืกืคืง ืงื™ื‘ื•ืœืช ื•ืœื‘ื—ื•ืจ ืืช ื”ืกืคืงื™ื ืฉื ื•ืฆืจื• ื‘ืขื‘ืจ.

ื‘ื ื™ื™ืช API ืœื”ืจื—ื‘ื” ื‘ืžื•ืคืขื™ AWS Spot

ื”ื’ื“ืจืช ืžืฉื™ืžื” - ื‘ื—ืจ ืืช ื”ื’ื“ืจืช ื”ืžืฉื™ืžื•ืช ืฉื ื•ืฆืจื” ืงื•ื“ื ืœื›ืŸ ื•ืืช ื”ื’ืจืกื” ืฉืœื”.

ืฉื ื”ืฉื™ืจื•ืช - ื›ื“ื™ ืœืžื ื•ืข ื‘ืœื‘ื•ืœ, ืื ื• ืชืžื™ื“ ืžืฆื™ื™ื ื™ื ืืช ืื•ืชื• ื”ื“ื‘ืจ ื›ื”ื’ื“ืจืช ืžืฉื™ืžื”.

ืกื•ื’ ืฉื™ืจื•ืช - ืชืžื™ื“ ื”ืขืชืง.

ืžืกืคืจ ืžืฉื™ืžื•ืช - ื”ืžืกืคืจ ื”ืจืฆื•ื™ ืฉืœ ืžืฉื™ืžื•ืช ืคืขื™ืœื•ืช ื‘ืฉื™ืจื•ืช. ืคืจืžื˜ืจ ื–ื” ื ืฉืœื˜ ืขืœ ื™ื“ื™ ืงื ื” ืžื™ื“ื”, ืืš ืขื“ื™ื™ืŸ ื™ืฉ ืœืฆื™ื™ืŸ ืื•ืชื•.

ืžื™ื ื™ืžื•ื ืื—ื•ื– ื‘ืจื™ื ะธ ืื—ื•ื– ืžืงืกื™ืžื•ื - ืœืงื‘ื•ืข ืืช ื”ืชื ื”ื’ื•ืช ื”ืžืฉื™ืžื•ืช ื‘ืžื”ืœืš ื”ืคืจื™ืกื”. ืขืจื›ื™ ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ื”ื 100 ื•-200, ืžื” ืฉืžืฆื‘ื™ืข ืขืœ ื›ืš ืฉื‘ื–ืžืŸ ื”ืคืจื™ืกื” ืžืกืคืจ ื”ืžืฉื™ืžื•ืช ื™ื’ื“ืœ ืžืกืคืจ ืคืขืžื™ื, ื•ืœืื—ืจ ืžื›ืŸ ื™ื—ื–ื•ืจ ืœืขืจืš ื”ืจืฆื•ื™. ืื ื™ืฉ ืœืš ืžืฉื™ืžื” ืื—ืช ืฉืคื•ืขืœืช, min=1 ื•ืžืงืกื™ืžื•ื=0, ืื– ื‘ืžื”ืœืš ื”ืคืจื™ืกื” ื”ื™ื ืชื”ืจื•ื’, ื•ืื—ืจื™ื” ืชื•ืขืœื” ืžืฉื™ืžื” ื—ื“ืฉื”, ื›ืœื•ืžืจ, ื–ื” ื™ื”ื™ื” ื”ืฉื‘ืชื”. ืื ืžืฉื™ืžื” ืื—ืช ืคื•ืขืœืช, min=100, max=1, ืื– ื”ืคืจื™ืกื” ืœื ืชืชืจื—ืฉ ื›ืœืœ, ืžื›ื™ื•ื•ืŸ ืฉืœื ื ื™ืชืŸ ืœื—ืœืง ืžืฉื™ืžื” ืื—ืช ืœืฉื ื™ื™ื ืื• ืœื”ื’ื“ื™ืœ ืื•ืชื” ืคื™ ืื—ื“ ื•ื—ืฆื™.

ืกื•ื’ ืคืจื™ืกื” - ื”ืฉืืจ ืขื“ื›ื•ืŸ ืžืชื’ืœื’ืœ.

ืชื‘ื ื™ื•ืช ืžื™ืงื•ื - ื›ืœืœื™ื ืœื”ืฆื‘ืช ืžืฉื™ืžื•ืช ืขืœ ืžื›ื•ื ื•ืช. ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ื”ื™ื AZ Balanced Spread - ื”ืžืฉืžืขื•ืช ื”ื™ื ืฉื›ืœ ืžืฉื™ืžื” ื—ื“ืฉื” ืชื•ืฆื‘ ืขืœ ืžื•ืคืข ื—ื“ืฉ ืขื“ ืฉื”ืžื›ื•ื ื•ืช ื‘ื›ืœ ืื–ื•ืจื™ ื”ื–ืžื™ื ื•ืช ื™ืขืœื•. ื‘ื“ืจืš ื›ืœืœ ืื ื• ืขื•ืฉื™ื BinPack - CPU ื•-Spread - AZ; ืขื ืžื“ื™ื ื™ื•ืช ื–ื•, ืžืฉื™ืžื•ืช ืžืžื•ืงืžื•ืช ื‘ืฆืคื™ืคื•ืช ื›ื›ืœ ื”ืืคืฉืจ ืขืœ ืžื›ื•ื ื” ืื—ืช ืœื›ืœ ืžืขื‘ื“. ืื ื™ืฉ ืฆื•ืจืš ืœื™ืฆื•ืจ ืžื›ื•ื ื” ื—ื“ืฉื”, ื”ื™ื ื ื•ืฆืจืช ื‘ืื–ื•ืจ ื–ืžื™ื ื•ืช ื—ื“ืฉ.

ื‘ื ื™ื™ืช API ืœื”ืจื—ื‘ื” ื‘ืžื•ืคืขื™ AWS Spot

ืกื•ื’ ืื™ื–ื•ืŸ ืขื•ืžืกื™ื โ€” ื‘ื—ืจ ืžืื–ืŸ ืขื•ืžืก ื™ื™ืฉื•ืžื™ื.

ืฉื™ืจื•ืช IAM ืชืคืงื™ื“ - ื‘ื—ืจ ecsServiceRole.

ืฉื ืžืื–ืŸ ืขื•ืžืกื™ื โ€” ื‘ื—ืจ ืืช ื”ืžืื–ืŸ ืฉื ื•ืฆืจ ืงื•ื“ื ืœื›ืŸ.

ืชืงื•ืคืช ื—ืกื“ ืœื‘ื“ื™ืงืช ื‘ืจื™ืื•ืช - ื”ืฉื”ื” ืœืคื ื™ ื‘ื™ืฆื•ืข ื‘ื“ื™ืงื•ืช ืชืงื™ื ื•ืช ืœืื—ืจ ื”ืคืขืœืช ืžืฉื™ืžื” ื—ื“ืฉื”, ื‘ื“ืจืš ื›ืœืœ ืื ื• ืžื’ื“ื™ืจื™ื ืื•ืชื” ืœ-60 ืฉื ื™ื•ืช.

ืžื™ื›ืœ ืœืื™ื–ื•ืŸ ืขื•ืžืก - ื‘ืคืจื™ื˜ ืฉื โ€‹โ€‹ืงื‘ื•ืฆืช ื”ื™ืขื“, ื‘ื—ืจ ืืช ื”ืงื‘ื•ืฆื” ืฉื ื•ืฆืจื” ืงื•ื“ื ืœื›ืŸ, ื•ื”ื›ืœ ื™ืชืžืœื ืื•ื˜ื•ืžื˜ื™ืช.

ื‘ื ื™ื™ืช API ืœื”ืจื—ื‘ื” ื‘ืžื•ืคืขื™ AWS Spot

ืฉื™ืจื•ืช ืงื ื” ืžื™ื“ื” ืื•ื˜ื•ืžื˜ื™ - ืคืจืžื˜ืจื™ ืงื ื” ืžื™ื“ื” ืฉืœ ืฉื™ืจื•ืช. ื‘ื—ืจ ื”ื’ื“ืจ ืงื ื” ืžื™ื“ื” ืื•ื˜ื•ืžื˜ื™ ืฉืœ ืฉื™ืจื•ืช ื›ื“ื™ ืœื”ืชืื™ื ืืช ื”ืกืคื™ืจื” ื”ืจืฆื•ื™ื” ืฉืœ ื”ืฉื™ืจื•ืช ืฉืœืš. ืื ื• ืžื’ื“ื™ืจื™ื ืืช ื”ืžืกืคืจ ื”ืžื™ื ื™ืžืœื™ ื•ื”ืžืงืกื™ืžืœื™ ืฉืœ ืžืฉื™ืžื•ืช ื‘ืขืช ืงื ื” ื”ืžื™ื“ื”.

ืชืคืงื™ื“ IAM ืขื‘ื•ืจ ืฉื™ืจื•ืช ืงื ื” ืžื™ื“ื” ืื•ื˜ื•ืžื˜ื™ - ื‘ื—ืจ AWSServiceRoleForApplicationAutoScaling_ECSService.

ืžื“ื™ื ื™ื•ืช ืงื ื” ืžื™ื“ื” ืื•ื˜ื•ืžื˜ื™ ืฉืœ ืžืฉื™ืžื•ืช - ื›ืœืœื™ ืงื ื” ืžื™ื“ื”. ื™ืฉื ื 2 ืกื•ื’ื™ื:

  1. ืžืขืงื‘ ืื—ืจ ื™ืขื“ื™ื - ืžืขืงื‘ ืื—ืจ ืžื“ื“ื™ ื™ืขื“ (ืฉื™ืžื•ืฉ ื‘-CPU/RAM ืื• ืžืกืคืจ ื‘ืงืฉื•ืช ืœื›ืœ ืžืฉื™ืžื”). ืœื“ื•ื’ืžื”, ืื ื• ืจื•ืฆื™ื ืฉืขื•ืžืก ื”ืžืขื‘ื“ ื”ืžืžื•ืฆืข ื™ื”ื™ื” 85%, ื›ืืฉืจ ื”ื•ื ื”ื•ืคืš ื’ื‘ื•ื” ื™ื•ืชืจ, ื™ืชื•ื•ืกืคื• ืžืฉื™ืžื•ืช ื—ื“ืฉื•ืช ืขื“ ืฉื™ื’ื™ืข ืœืขืจืš ื”ื™ืขื“. ืื ื”ืขื•ืžืก ื ืžื•ืš ื™ื•ืชืจ, ื”ืžืฉื™ืžื•ืช ื™ื•ืกืจื•, ืœื”ื™ืคืš, ืืœื ืื ืžื•ืคืขืœืช ื”ื’ื ื” ืžืคื ื™ ื”ืงื˜ื ื” (ื”ืฉื‘ืช ืืช ืงื ื” ื”ืžื™ื“ื”).
  2. ืงื ื” ืžื™ื“ื” ืฉืœื‘ - ืชื’ื•ื‘ื” ืœืื™ืจื•ืข ืฉืจื™ืจื•ืชื™. ื›ืืŸ ืืชื” ื™ื›ื•ืœ ืœื”ื’ื“ื™ืจ ืชื’ื•ื‘ื” ืœื›ืœ ืื™ืจื•ืข (ืื–ืขืงืช CloudWatch), ื›ืืฉืจ ื”ื•ื ืžืชืจื—ืฉ, ืืชื” ื™ื›ื•ืœ ืœื”ื•ืกื™ืฃ ืื• ืœื”ืกื™ืจ ืืช ืžืกืคืจ ื”ืžืฉื™ืžื•ืช ืฉืฆื•ื™ืŸ, ืื• ืœืฆื™ื™ืŸ ืืช ื”ืžืกืคืจ ื”ืžื“ื•ื™ืง ืฉืœ ื”ืžืฉื™ืžื•ืช.

ืœืฉื™ืจื•ืช ื™ื›ื•ืœ ืœื”ื™ื•ืช ืžืกืคืจ ื›ืœืœื™ ืงื ื” ืžื™ื“ื”, ื–ื” ื™ื›ื•ืœ ืœื”ื™ื•ืช ืฉื™ืžื•ืฉื™, ื”ืขื™ืงืจ ืœื•ื•ื“ื ืฉื”ื ืœื ืžืชื ื’ืฉื™ื ื–ื” ืขื ื–ื”.

ืžืกืงื ื”

ืื ืขืงื‘ืช ืื—ืจ ื”ื”ื•ืจืื•ืช ื•ื”ืฉืชืžืฉืช ื‘ืื•ืชื” ืชืžื•ื ืช Docker, ื”ืฉื™ืจื•ืช ืฉืœืš ืืžื•ืจ ืœื”ื—ื–ื™ืจ ืขืžื•ื“ ื›ื–ื”.

ื‘ื ื™ื™ืช API ืœื”ืจื—ื‘ื” ื‘ืžื•ืคืขื™ AWS Spot

  1. ื™ืฆืจื ื• ืชื‘ื ื™ืช ืœืคื™ื” ื›ืœ ื”ืžื›ื•ื ื•ืช ื‘ืฉื™ืจื•ืช ืžื•ืคืขืœื•ืช. ืœืžื“ื ื• ื’ื ื›ื™ืฆื“ ืœืขื“ื›ืŸ ืžื›ื•ื ื•ืช ื›ืืฉืจ ื”ืชื‘ื ื™ืช ืžืฉืชื ื”.
  2. ื”ื’ื“ืจื ื• ืืช ื”ืขื™ื‘ื•ื“ ืฉืœ ืื•ืช ืขืฆื™ืจืช ื”ืžื•ืคืข ื”ื ืงื•ื“ืชื™, ื›ืš ืฉื‘ืชื•ืš ื“ืงื” ืœืื—ืจ ืงื‘ืœืชื•, ื›ืœ ื”ืžืฉื™ืžื•ืช ื”ืคื•ืขืœื•ืช ื™ื•ืกืจื• ืžื”ืžื›ื•ื ื”, ื›ืš ืฉืฉื•ื ื“ื‘ืจ ืœื ื™ืื‘ื“ ืื• ืžื•ืคืจืข.
  3. ื”ืจืžื ื• ืืช ื”ืžืื–ืŸ ื›ื“ื™ ืœืคื–ืจ ืืช ื”ืขื•ืžืก ื‘ืื•ืคืŸ ืฉื•ื•ื” ืขืœ ืคื ื™ ื”ืžื›ื•ื ื•ืช.
  4. ื™ืฆืจื ื• ืฉื™ืจื•ืช ืฉืคื•ืขืœ ืขืœ ืžื•ืคืขื™ื ื ืงื•ื“ืชื™ื™ื, ืžื” ืฉืžืคื—ื™ืช ืืช ืขืœื•ื™ื•ืช ื”ืžื›ื•ื ื” ื‘ื›ืคื™ 3.
  5. ื”ื’ื“ืจื ื• ืงื ื” ืžื™ื“ื” ืื•ื˜ื•ืžื˜ื™ ื‘ืฉื ื™ ื”ื›ื™ื•ื•ื ื™ื ื›ื“ื™ ืœื”ืชืžื•ื“ื“ ืขื ืขื•ืžืกื™ ืขื‘ื•ื“ื” ืžื•ื’ื‘ืจื™ื ืžื‘ืœื™ ืœื”ื™ื’ืจื ื‘ืขืœื•ื™ื•ืช ืฉืœ ื–ืžืŸ ื”ืฉื‘ืชื”.
  6. ืื ื—ื ื• ืžืฉืชืžืฉื™ื ื‘-Capacity Provider ื›ื“ื™ ืฉื”ืืคืœื™ืงืฆื™ื” ืชื ื”ืœ ืืช ื”ืชืฉืชื™ืช (ื”ืžื›ื•ื ื•ืช) ื•ืœื ืœื”ื™ืคืš.
  7. ืื ื—ื ื• ืžืขื•ืœื™ื.

ืื ื™ืฉ ืœืš ืขืœื™ื•ืช ืฆืคื•ื™ื•ืช ื‘ืขื•ืžืก, ืœืžืฉืœ ืืชื” ืžืคืจืกื ื‘ืงืžืคื™ื™ืŸ ื“ื•ื"ืœ ื’ื“ื•ืœ, ืืชื” ื™ื›ื•ืœ ืœื”ื’ื“ื™ืจ ืงื ื” ืžื™ื“ื” ืœืคื™ ืœื•ื— ื–ืžื ื™ื.

ืืชื” ื™ื›ื•ืœ ื’ื ืœืฉื ื•ืช ืืช ืงื ื” ื”ืžื™ื“ื” ืขืœ ืกืžืš ื ืชื•ื ื™ื ืžื—ืœืงื™ื ืฉื•ื ื™ื ืฉืœ ื”ืžืขืจื›ืช ืฉืœืš. ืœื“ื•ื’ืžื”, ื™ืฉ ืœื ื• ืืช ื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ืฉืœื™ื—ืช ื”ืฆืขื•ืช ืงื™ื“ื•ื ืžื›ื™ืจื•ืช ื‘ื•ื“ื“ื•ืช ืžืฉืชืžืฉื™ื ื‘ืืคืœื™ืงืฆื™ื” ืœื ื™ื™ื“. ืœืคืขืžื™ื ืงืžืคื™ื™ืŸ ื ืฉืœื— ืœืžื™ืœื™ื•ืŸ+ ืื ืฉื™ื. ืœืื—ืจ ื”ืคืฆื” ื›ื–ื•, ืชืžื™ื“ ื™ืฉ ืขืœื™ื™ื” ื’ื“ื•ืœื” ื‘ื‘ืงืฉื•ืช ืœ-API, ืฉื›ืŸ ืžืฉืชืžืฉื™ื ืจื‘ื™ื ื ื›ื ืกื™ื ืœืืคืœื™ืงืฆื™ื” ื‘ื• ื–ืžื ื™ืช. ืื– ืื ืื ื—ื ื• ืจื•ืื™ื ืฉื™ืฉ ื”ืจื‘ื” ื™ื•ืชืจ ืื™ื ื“ื™ืงื˜ื•ืจื™ื ืกื˜ื ื“ืจื˜ื™ื™ื ื‘ืชื•ืจ ืœืฉืœื™ื—ืช ื”ื•ื“ืขื•ืช ื“ื—ื™ืคื” ืœืงื™ื“ื•ื ืžื›ื™ืจื•ืช, ื ื•ื›ืœ ืœื”ืคืขื™ืœ ืžื™ื“ ื›ืžื” ืžื›ื•ื ื•ืช ื•ืžืฉื™ืžื•ืช ื ื•ืกืคื•ืช ื›ื“ื™ ืœื”ื™ื•ืช ืžื•ื›ื ื™ื ืœืขื•ืžืก.

ืืฉืžื— ืื ืชืกืคืจื• ืœื™ ื‘ืชื’ื•ื‘ื•ืช ืžืงืจื™ื ืžืขื ื™ื™ื ื™ื ืฉืœ ืฉื™ืžื•ืฉ ื‘ืžื•ืคืขื™ ื ืงื•ื“ืชื™ื™ื ื•-ECS ืื• ืžืฉื”ื• ืขืœ ืงื ื” ืžื™ื“ื”.

ื‘ืงืจื•ื‘ ื™ื”ื™ื• ืžืืžืจื™ื ืขืœ ื”ืื•ืคืŸ ืฉื‘ื• ืื ื• ืžืขื‘ื“ื™ื ืืœืคื™ ืื™ืจื•ืขื™ื ืื ืœื™ื˜ื™ื™ื ื‘ืฉื ื™ื™ื” ืขืœ ืžื—ืกื ื™ืช ื ื˜ื•ืœืช ืฉืจืชื™ื (ืขื ื›ืกืฃ) ื•ื›ื™ืฆื“ ืคื•ืขืœืช ืคืจื™ืกืช ื”ืฉื™ืจื•ืชื™ื ื‘ืืžืฆืขื•ืช GitLab CI ื•- Terraform Cloud.

ื”ื™ืจืฉืžื• ืืœื™ื ื•, ื–ื” ื™ื”ื™ื” ืžืขื ื™ื™ืŸ!

ืจืง ืžืฉืชืžืฉื™ื ืจืฉื•ืžื™ื ื™ื›ื•ืœื™ื ืœื”ืฉืชืชืฃ ื‘ืกืงืจ. ืœื”ืชื—ื‘ืจื‘ื‘ืงืฉื”.

ื”ืื ืืชื” ืžืฉืชืžืฉ ื‘ืžื•ืคืขื™ื ื ืงื•ื“ืชื™ื™ื ื‘ื”ืคืงื”?

  • 22,2%ื›ืŸ6

  • 66,7%ืžืกืคืจ 18

  • 11,1%ืœืžื“ืชื™ ืขืœื™ื”ื ืžืžืืžืจ ื•ืžืชื›ื ื ืช ืœื”ืฉืชืžืฉ ื‘ื”ื3

27 ืžืฉืชืžืฉื™ื ื”ืฆื‘ื™ืขื•. 5 ืžืฉืชืžืฉื™ื ื ืžื ืขื•.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”