- Attributes
- Auto Scaling Alarms
- Auto Scaling New Rules
- Auto Scaling Custom Metric
- ASG 추가 정보
- Automatic Scaling Policies
- NEXT
여기 정리하는 내용들은 Udemy 강의를 통해 배운 내용들을 정리하였습니다.
출처 - Udemy AWS Certified Developer Associate 2022 - New!
load의 증가 또는 감소 따라 EC2 instance를 더하거나 빼는 서비스입니다.
Scale out/in 이라고 표현합니다.
이때, 최소량과 최대량을 지정해주어야 합니다. 그리고, 감사하게도 새로운 Instance는 자동으로 load balancer에 등록된다고 하네요.
Attributes
- launch configuration
- AMI + Instance Type
- EC2 User Data
- EBS Volume
- Security Group
- SSH Key Pair
- Min / Max Size
- Initial Capacity
- Network + Subnets Information
- Define Load Balancer Information
- Scaling Policies (무엇이 Trigger가 되어 Scale out/in 되는지 정해줍니다.)
Auto Scaling Alarms
기본적으로 CloudWatch alarms에 의해 scale 됩니다.
Auto Scaling New Rules
EC2에서 직접적으로 관여하는 Auto Scaling Rules를 만들 수 있습니다.
예
- Target Average CPU Usage
- Number of requests on the ELB
- Average Network In/Out
Auto Scaling Custom Metric
Custom Metric에 의해 Scale 될 수 있습니다.
ASG 추가 정보
- 무료입니다. Underlying resource 에 대해서는 비용 지불
- instance 가 unhealthy 되면 ASG가 자동으로 그 instance를 terminate하고 새로운 instance로 대체합니다.
- 어떤 이유로든 instance가 terminated 되면 새로운 instance를 만들어서 대체합니다.
- IAM roles가 적용된 ASG는 같은 roles를 EC2에 자동으로 적용합니다.
Automatic Scaling Policies
- Dynamic Scaling Policies
- Target Tracking Scaling
- 가장 간단하고 쉬운 셋업입니다.
- Simple / Step Scaling - CloudWatch alarm 이 CPU 사용 범위를 벗어날때 unit 생성/제거
- Scheduled Action - 이용 패턴에 따른 scaling policy
- 특정 시간/시기에 필요한 만큼의 최소 capacity 를 정할 수 있다.
-
Predictive Scaling
과거 load를 분석하고 예측하여 미리 Schedule scaling actions를 하는 policy (머신러닝 기반의 policy 입니다.) - Scale에 효과적인 metrics
- CPUUtilization : CPU 평균 사용량
- RequestCountPerTarget : Target에 들어가는 traffic의 일정한 분배
- Average Network In/Out : 네트워크에서…
- Any custom metric : CloudWatch 사용 권장
- Scaling Cooldowns
- Scale out/in이 이루어졌을 때 metrics가 안정적으로 실행되게 하기 위해 ASG이 instances를 launch/terminate 하지 않게 하는 시간 (default 300 seconds)
ready-to-use AMI를 사용하기를 권장합니다.
더 빠른 serving request와 cooldown period를 줄이기 위한 configuration time 을 줄일 수 있습니다.
- Scale out/in이 이루어졌을 때 metrics가 안정적으로 실행되게 하기 위해 ASG이 instances를 launch/terminate 하지 않게 하는 시간 (default 300 seconds)
Auto Scaling 의 CPU 사용량으로 실험해보고 싶다면 Linux stress 명령어를 사용해봅시다. ()
sudo amazon-linux-extras install epel -y
sudo yum install stress -y # stress install
# stress 명령어 설명
stress --help
stress -c 4 # 4개의 프로세스를 만들어 CPU 100% 사용NEXT
다음 포스트에서는 RDS, Aurora, ElastiCache에 대한 포스팅을 시작하려고 합니다.
부족한 글 도움이 되셨길 바랍니다.
문제가 있다면 이해해주시고 가능하면 알려주시면….(조만간 댓글 기능 추가할 예정)