Giriş
Auto Scaling Group (ASG) EC2 instance sayısını talebe göre otomatik ayarlar. Application Load Balancer (ALB) trafiği sağlıklı instance'lara dağıtır.
Birlikte yüksek erişilebilirlik, fault tolerance ve maliyet optimizasyonu sağlarlar.
Bu rehberde ASG, launch template, ALB target group ve scaling policy yapılandırmasını ele alıyoruz.
Launch Template
Launch Template instance konfigürasyon şablonudur: AMI, instance type, SG, user data, IAM profile.
ASG launch template versiyonunu kullanır; rolling update ile yeni versiyona geçilir.
aws ec2 create-launch-template \
--launch-template-name myapp-lt \
--launch-template-data '{
"ImageId": "ami-xxx",
"InstanceType": "m7g.large",
"SecurityGroupIds": ["sg-xxx"],
"IamInstanceProfile": {"Name": "ec2-app-role"}
}'Auto Scaling Group
ASG min, max, desired capacity tanımlar. Çok AZ'de instance dağıtır. Health check ALB veya EC2 olabilir.
Instance refresh ile rolling AMI güncellemesi yapılır.
aws autoscaling create-auto-scaling-group \
--auto-scaling-group-name myapp-asg \
--launch-template LaunchTemplateName=myapp-lt \
--min-size 2 --max-size 10 --desired-capacity 2 \
--vpc-zone-identifier "subnet-aaa,subnet-bbb" \
--target-group-arns arn:aws:elasticloadbalancing:...Application Load Balancer
ALB Layer 7 HTTP/HTTPS yük dengeleme. Target group instance'ları kaydeder. Health check path ve interval tanımlanır.
Listener 443 SSL sertifikası (ACM) ile HTTPS sonlandırır.
aws elbv2 create-load-balancer \
--name myapp-alb \
--subnets subnet-aaa subnet-bbb \
--security-groups sg-alb
# Health check: /health, interval 30s, healthy threshold 2Scaling Policy
Target tracking: CPU %50 hedef. Step scaling: CPU eşiklerinde adım adım scale. Scheduled scaling: bilinen trafik paternleri.
Scale-in cooldown instance sonlandırma gecikmesi; flapping önler.
aws autoscaling put-scaling-policy \
--auto-scaling-group-name myapp-asg \
--policy-name cpu-target \
--policy-type TargetTrackingScaling \
--target-tracking-configuration '{
"PredefinedMetricSpecification": {
"PredefinedMetricType": "ASGAverageCPUUtilization"
},
"TargetValue": 50.0
}'Yüksek Erişilebilirlik
Min 2 instance, 2 AZ zorunlu üretim standardıdır. ALB unhealthy instance'ı devre dışı bırakır.
Multi-AZ RDS ve ElastiCache ile tam stack HA.
Desired capacity'yi manuel değiştirmeyin; scaling policy yönetsin.
İzleme ve Maliyet
CloudWatch ASG metrikleri: GroupDesiredCapacity, GroupInServiceInstances. Alarm ile scale tetiklenir.
Gece min-size düşürme scheduled action ile maliyet düşürülür (dev/staging).
- Launch template versiyonla
- ALB health check
- Target tracking policy
- Çok AZ
- Instance refresh planı
Sonuç
ASG + ALB modern EC2 deployment'ın omurgasıdır. Launch template, target tracking ve çok AZ ile elastik ve dayanıklı mimari kurun.
Scaling policy'leri load test ile doğrulayın; flapping ve lag'i izleyin.