AWS Elastic Beanstalk 환경이 예상대로 스케일링되지 않습니다.
해결 방법
사전 요구 사항:
- Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스가 AWS 리전에서 스케일링할 수 있는 충분한 용량을 갖추고 있습니다. 이 용량은 AWS Auto Scaling 그룹 구성에서 정의하는 최대 인스턴스 수를 기준으로 합니다.
- 애플리케이션 설치 및 구성 요구 사항에 따라 휴지 기간이 정해집니다.
- 기본 Amazon CloudWatch 지표 또는 Locust를 사용하여 부하 테스트를 수행하고 스케일링을 시작하는 데 가장 적합한 지표를 식별합니다.
스케일링 트리거를 구성하려면 Elastic Beanstalk 콘솔이나 옵션 설정을 사용하십시오.
Elastic Beanstalk 콘솔에서 스케일링 트리거 구성
- Elastic Beanstalk 콘솔을 연 후 내 환경을 선택합니다.
- 사용자 환경의 탐색 창에서 구성을 선택합니다.
- 인스턴스 트래픽 및 스케일링에서 편집을 선택합니다.
- 용량의 스케일링 트리거에서 트리거 옵션을 선택한 다음 적용을 선택합니다.
참고: Elastic Beanstalk는 aws:autoscaling:trigger 네임스페이스의 오토 스케일링 설정에 구성 옵션을 제공합니다. 설정이 적용되는 리소스는 해당 리소스에 대한 이 네임스페이스의 설정을 구성합니다.
옵션 설정으로 스케일링 트리거 구성
옵션 설정에서 .ebextensions를 사용해 스케일링 구성을 수정하십시오. 스케일링 트리거를 구성하는 구성 파일에 액세스하려면 GitHub 웹 사이트의 autoscaling-triggers-customize.config를 참고하십시오.
다음은 CPU 사용률을 기반으로 스케일링 트리거를 수정한 예제 구성 파일입니다. 인스턴스의 CPU 사용률이 3회 연속 2분 동안 80%를 초과하는 경우 Auto Scaling이 Auto Scaling 그룹에 하나의 인스턴스를 추가합니다. 같은 기간 동안 인스턴스의 CPU 사용률이 20% 미만인 경우 Auto Scaling이 Auto Scaling 그룹에서 인스턴스 하나를 제거합니다.
option_settings:
aws:autoscaling:trigger:
MeasureName: CPUUtilization
Statistic: Average
Unit: Percent
Period: '2'
EvaluationPeriods: '3'
UpperThreshold: '80'
UpperBreachScaleIncrement: '1'
LowerThreshold: '20'
LowerBreachScaleIncrement: '-1'
다음 예제에서는 애플리케이션 zip 파일의 .ebextensions 디렉터리 및 autoscaling-triggers-customize.config 파일의 구조를 보여 줍니다.
~/my-app/
|-- .ebextensions/
| |-- autoscaling-triggers-customize.config
| `-- other.config
|-- other application files
관련 정보
Elastic Beanstalk 환경의 Auto Scaling 트리거