ู ุฑุญุจุง! ุงุณู ู ููุฑูู ุ ูุฃูุง ู ุฏูุฑ ููู ูู Adapty. ู ุนุธู ุจููุชูุง ุชุนู ู ุนูู AWS ุ ูุงูููู ุณุฃุชุญุฏุซ ุนู ููููุฉ ุฎูุถ ุชูุงููู ุงูุฎุงุฏู ุจู ูุฏุงุฑ 3x ุจุงุณุชุฎุฏุงู ู ุซููุงุช Spot ูู ุจูุฆุฉ ุฅูุชุงุฌ ุ ุจุงูุฅุถุงูุฉ ุฅูู ููููุฉ ุชูููููุง ุนูู ูุทุงู ุชููุงุฆู. ุฃููุงู ุ ุณุชููู ููุงู ูุธุฑุฉ ุนุงู ุฉ ุนูู ููููุฉ ุนู ููุง ุ ุซู ุฅุฑุดุงุฏุงุช ุชูุตูููุฉ ููุจุฏุก.
ู ุง ูู ุงูู ุซููุงุช ุงูููุฑูุฉุ
ุงูู ุซููุงุช ุงูู ูุถุนูุฉ ูู ุฎูุงุฏู ุฃุฎุฑู ูู ุณุชุฎุฏู ู AWS ุฎุงู ูุฉ ุญุงูููุง ููููู ูู ุจุจูุนูุง ุจุฎุตู ูุจูุฑ (ุชูุชุจ ุฃู ุงุฒูู ู ุง ูุตู ุฅูู 90 ูช ุ ~ 3x ูู ุชุฌุฑุจุชูุง ุ ุชุฎุชูู ุญุณุจ ุงูู ูุทูุฉ ุ ู ู ุงูุฃูู ุฅูู ุงููุงุก ูููุน ุงูู ุซูู). ุงุฎุชูุงููู ุงูุฑุฆูุณู ุนู ุชูู ุงูุชูููุฏูุฉ ูู ุฃูู ูู ูููู ุฅููุงู ุงูุชุดุบูู ูู ุฃู ููุช. ูุฐูู ุ ุงุนุชูุฏูุง ููุชุฑุฉ ุทูููุฉ ุฃูู ู ู ุงูุทุจูุนู ุงุณุชุฎุฏุงู ูุง ูู ุงูุจูุฆุงุช ุงูุจูุฑ ุ ุฃู ูู ูุงู ุญุณุงุจ ุดูุก ู ุง ุ ู ุน ุชูููุฑ ูุชุงุฆุฌ ูุณูุทุฉ ุนูู S3 ุฃู ูู ุงููุงุนุฏุฉ ุ ูููู ููุณ ููุจูุน. ููุงู ุญููู ุชุงุจุนุฉ ูุฌูุงุช ุฎุงุฑุฌูุฉ ุชุณู ุญ ูู ุจุงุณุชุฎุฏุงู ุงูู ูุงูุน ุงูู ุนุฑูุถุฉ ููุจูุน ุ ูููู ููุงู ุงููุซูุฑ ู ู ุงูุนูุงุฒุงุช ูุญุงูุชูุง ุ ูุฐูู ูู ููู ุจุชูููุฐูุง. ูุนู ู ุงูููุฌ ุงูู ูุตูู ูู ุงูู ูุงูุฉ ุจุดูู ูุงู ู ุถู ู ูุธุงุฆู AWS ุงูููุงุณูุฉ ุ ุจุฏูู ูุตูุต ุฅุถุงููุฉ ุ ุชูุฌุงู ุ ุฅูุฎ.
ููู ุง ููู ุจุนุถ ููุทุงุช ุงูุดุงุดุฉ ุงูุชู ุชุนุฑุถ ุชุงุฑูุฎ ุฃุณุนุงุฑ Spot Spot.
m5.large in the eu-west-1 region (Ireland). ุงูุณุนุฑ ู ุณุชูุฑ ูู ุงูุบุงูุจ ูู ุฏุฉ 3 ุฃุดูุฑ ุ ู ุฏุฎุฑุงุช ุญุงูููุง 2.9x .
m5.large ูู ู ูุทูุฉ us-east-1 ( ุดู ุงู ููุฑุฌูููุง). ูุชุบูุฑ ุงูุณุนุฑ ุจุงุณุชู ุฑุงุฑ ูู ุฏุฉ 3 ุฃุดูุฑ ุ ุญุงูููุง ุชุชุฑุงูุญ ุงูู ุฏุฎุฑุงุช ู ู 2.3x ุฅูู 2.8x ุงุนุชู ุงุฏูุง ุนูู ู ูุทูุฉ ุงูุชูุงูุฑ.
t3.small ูู ู ูุทูุฉ ููุง-ุดุฑู -1 (ูุฑุฌูููุง ุงูุดู ุงููุฉ ). ุงูุณุนุฑ ู ุณุชูุฑ ูู ุฏุฉ 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 โ Kubernetes AWS, Docker .
, . ECS TG, ( Kubernetes ), . TG , health check, - , .
EC2 Auto Scaling Groups + ECS Capacity Providers
EC2 Auto Scaling Groups (ASG). , . AWS ECS. ECS , , CPU, RAM . , .
ECS Capacity Providers (ECS CP). ECS ASG, , ( ASG). , ECS CP , ASG, . ECS CP , , , .
EC2 Launch Templates
, , , โ EC2 Launch Templates. , , . , , . , . , , ECS .
โ ECS_ENABLE_SPOT_INSTANCE_DRAINING=true. , ECS , , , Draining. , , , . . 2 . 2 , .
โ AWS Elastic File System (EFS) ECS, , , . SIGINT ( Draining) 30 , , ECS_CONTAINER_STOP_TIMEOUT. 2 .
. , . , - . AWS, CloudFormation Terraform. Adapty Terraform.
EC2 Launch Template
, . EC2 -> Instances -> Launch templates.
Amazon machine image (AMI) โ , . ECS Amazon. ECS. ID , Amazon ECS-optimized AMIs, AMI ID . , us-east-1 ID โ ami-00c7c1cf5bdc913ed. ID Specify a custom value.
Instance type โ . , .
Key pair (login) โ , SSH, .
Network settings โ . Networking platform Virtual Private Cloud (VPC). Security groups โ . , , . 2 , , (inbound) 80 (http) 443 (https), , . (outbound) TCP . , , - .
Storage (volumes) โ . , AMI, ECS Optimized โ 30 GiB.
Advanced details โ .
Purchasing option โ . , , Auto Scaling Group, .
IAM instance profile โ , . , ECS, , ecsInstanceRole. , , , . .
, , . EBS-optimized instance T2/T3 Unlimited, burstable .
User data โ . /etc/ecs/ecs.config
, ECS.
, user data:
#!/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=...
โ container registry, Docker . , .
Docker Hub, ECS_ENGINE_AUTH_TYPE
ECS_ENGINE_AUTH_DATA
.
: AMI, Docker, Linux, ECS . , . email , Lambda-, Launch Template AMI.
EC2 Auto Scaling Group
Auto Scaling Group . EC2 -> Auto Scaling -> Auto Scaling Groups.
Launch template โ . .
Purchase options and instance types โ . Adhere to launch template Launch Template. Combine purchase options and instance types . .
Optional On-Demand base โ , , .
On-Demand percentage above base โ , 50-50 , 20-80 4 . 50-50, 20-80, 0-100.
Instance types โ , . , . , . , )
Network โ , VPC , .
Load balancing โ , , . Health checks .
Group size โ . , .
Scaling policies โ , , ECS , .
Instance scale-in protection โ . , ASG , . , , ECS Capacity Provider.
Add tags โ ( Tag new instances). Name, , , , .
Advanced configurations, .
Termination policies โ , . . , . Launch Template (, AMI, , ). , . .
: , Instance Refresh. Lambda- , . instance scale-in protection . , , Instance management.
Application Load Balancer EC2 Target Group
EC2 โ Load Balancing โ Load Balancers. Application Load Balancer, .
Listeners โ 80 443 80 443 .
Availability Zones โ .
Configure Security Settings โ SSL- , โ ACM. Security Policy , ELBSecurityPolicy-2016-08
. , DNS name, CNAME . , Cloudflare.
Security Group โ , EC2 Launch Template โ Network settings.
Target group โ , , . Target type Instance, Protocol Port , HTTPS , . , 80 .
Health checks โ . , -, -. , , . Success codes 200-399, Docker , , 304 .
Register Targets โ , ECS, .
: , S3 . , SQL- S3 Athena. - . S3 .
ECS Task Definition
, , , . ECS โ Task Definitions.
Launch type compatibility โ EC2.
Task execution IAM role โ ecsTaskExecutionRole
. , .
Container Definitions Add Container.
Image โ , Docker Hub bitnami/node-example:0.0.1.
Memory Limits โ . Hard Limit โ , , docker kill, . Soft Limit โ , , . , 4 GiB , soft limit โ 2048 MiB, 2 . 4 GiB โ , 4096 MiB, ECS Instances . Soft limit hard limit. , , .
Port mappings โ Host port 0, , , Target Group. Container Port โ , , , , Dockerfile . 3000, Dockerfile .
Health check โ , , Target Group.
Environment โ . CPU units โ Memory limits, . โ 1024 , , 512, 4 . CPU units , .
Command โ , . gunicorn, npm . , CMD Dockerfile. npm,start
.
Environment variables โ . , Secrets Manager Parameter Store.
Storage and Logging โ CloudWatch Logs ( AWS). Auto-configure CloudWatch Logs. Task Definition CloudWatch. , Retention period Never Expire . CloudWatch Log groups, .
ECS Cluster ECS Capacity Provider
ECS โ Clusters, . EC2 Linux + Networking.
Cluster name โ , , Launch Template ECS_CLUSTER
, โ DemoApiClusterProd
. Create an empty cluster. Container Insights, CloudWatch. , ECS Instances , Auto Scaling group.
Capacity Providers . , , ECS . , .
Auto Scaling group โ .
Managed scaling โ , .
Target capacity % โ . 100%, . 50%, . , , , .
Managed termination protection โ , . , Target capacity %.
ECS Service
:) , Services.
Launch type โ Switch to capacity provider strategy .
Task Definition โ Task Definition .
Service name โ , , Task Definition.
Service type โ Replica.
Number of tasks โ . , .
Minimum healthy percent Maximum percent โ . 100 200, , 2 , . 1 , min=0, max=100, , , . 1 , min=50, max=150, , 1 .
Deployment type โ Rolling update.
Placement Templates โ . AZ Balanced Spread โ , , . BinPack โ CPU Spread โ AZ, CPU. , .
Load balancer type โ Application Load Balancer.
Service IAM role โ ecsServiceRole
.
Load balancer name โ .
Health check grace period โ , 60 .
Container to load balance โ Target group name , .
Service Auto Scaling โ . Configure Service Auto Scaling to adjust your serviceโs desired count. .
IAM role for Service Auto Scaling โ AWSServiceRoleForApplicationAutoScaling_ECSService
.
Automatic task scaling policies โ . 2 :
- Target tracking โ ( CPU/RAM ). , 85%, , , . , , (Disable scale-in).
- Step scaling โ . (CloudWatch Alarm), , , .
, , , .
Docker , .
- , . .
- , , .
- , .
- , , 3 .
- , , .
- Capacity Provider, (), .
- .
. , - . 1+ . API, . , - , , .
, ECS - .
, serverless ( ) GitLab CI Terraform Cloud.
, !