기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Beanstalk 클러스터 환경 확장
Beanstalk 클러스터 환경은 실행되는 애플리케이션의 복제본 수를 변경하여 확장됩니다. 복제본은 컨테이너 이미지의 실행 중인 복사본입니다. Amazon EKS는 복제본에 필요한 노드 용량을 제공하고 노드에 맞게 노드를 추가하거나 제거하므로 인스턴스 플릿 대신 애플리케이션의 크기를 조정할 수 있습니다.
이는 Amazon EC2 인스턴스의 Auto Scaling 그룹을 확장하는 Beanstalk Standard와 주요 차이점입니다. aws:autoscaling:* 네임스페이스는 Beanstalk 클러스터 환경에 적용되지 않습니다. 조정은 aws:elasticbeanstalk:eks:environment:autoscaling 대신 네임스페이스와 하위 네임스페이스를 통해 구성됩니다. 모든 옵션과 허용되는 값은 섹션을 참조하세요Beanstalk 클러스터 환경의 구성 옵션.
복제본 경계 설정
복제본 수에는 min-replica 및 두 가지 옵션이 바인딩되어 있으며max-replica, 둘 다 aws:elasticbeanstalk:eks:environment:autoscaling 네임스페이스에 있습니다. Elastic Beanstalk는 복제본 수를 그 사이에 유지합니다.
두 옵션을 동일한 값으로 설정하여 고정된 수의 복제본을 실행합니다. 를 보다 max-replica높게 설정min-replica하여 환경이 둘 사이에서 확장되도록 합니다. 가 가장 낮은 값으로 min-replica 허용되므로 환경은 항상 하나 이상의 복제본1을 실행합니다.
$ aws elasticbeanstalk update-environment \
--environment-name my-cluster-env \
--option-settings \
Namespace=aws:elasticbeanstalk:eks:environment:autoscaling,OptionName=min-replica,Value=2 \
Namespace=aws:elasticbeanstalk:eks:environment:autoscaling,OptionName=max-replica,Value=20
Elastic Beanstalk가 규모 조정 시기를 결정하는 방법
이러한 경계 내에서 하나 이상의 트리거가 복제본 수를 결정합니다. Elastic Beanstalk는이 polling-interval 설정하는 간격에 따라 트리거를 평가합니다. 트리거가 활동 보고를 중지하면 Elastic Beanstalk는가 cooldown-period 설정된 기간 동안 기다렸다가 환경을 다시 축소하여 다시 필요할 복제본을 잠시 제거할 수 있습니다.
트리거를 전혀 구성하지 않으면 환경은 복제본의 CPU 사용률에 따라 조정됩니다. 나머지 섹션에서는 대신 구성할 수 있는 트리거에 대해 설명합니다.
CPU 또는 메모리에서 조정
복제본이 사용하는 리소스를 확장하려면 aws:elasticbeanstalk:eks:environment:autoscaling:trigger 네임스페이스에서 지표 유형과 대상 값을 설정합니다. Elastic Beanstalk는 사용자가 설정한 대상 근처에 환경을 유지하기 위해 복제본을 추가하거나 제거합니다.
-
CPU의 경우
cpu-metric-type및를 설정합니다cpu-value. -
메모리의 경우
memory-metric-type및를 설정합니다memory-value.
의 지표 유형은 cpu 및 memory 옵션을 통해 복제본이 예약하는 값의 백분율로 Utilization 취급하므로 cpu-value의는 예약 CPU의 75%를 75 대상으로 합니다. 의 지표 유형은 값을 복제본당 절대 양으로 AverageValue 취급합니다.
한 환경에서 CPU와 메모리 트리거를 모두 설정할 수 있습니다.
$ aws elasticbeanstalk update-environment \
--environment-name my-cluster-env \
--option-settings \
Namespace=aws:elasticbeanstalk:eks:environment:autoscaling:trigger,OptionName=cpu-metric-type,Value=Utilization \
Namespace=aws:elasticbeanstalk:eks:environment:autoscaling:trigger,OptionName=cpu-value,Value=75
일정에 따른 조정
반복 기간 동안 선택한 수의 복제본을 실행하려면를 scaler-type로 설정하고 scaler-metadata에서 네 개의 필드가 있는 JSON 객체를 가져오는 기간을 cron 설명합니다.
| 필드 | 설명 |
|---|---|
timezone |
창이 표현되는 시간대로, UTC, America/New_York또는와 같은 IANA 시간대 이름입니다Asia/Tokyo. |
start |
창이 열리면 5개 필드 cron 표현식(분, 시간, 월, 월, 요일)으로 표시됩니다. |
end |
창이 닫히면 동일한 형식으로 표시됩니다. |
desiredReplicas |
창이 열려 있는 동안 실행할 복제본 수입니다. min-replica 및 max-replica 경계 내에서 값을 선택합니다. |
창 외부에서는 환경이 로 돌아갑니다min-replica. 다음 예제에서는 UTC로 평일 근무 시간 동안 복제본 5개를 실행합니다.
$ cat schedule.json
[
{
"Namespace": "aws:elasticbeanstalk:eks:environment:autoscaling:trigger",
"OptionName": "scaler-type",
"Value": "cron"
},
{
"Namespace": "aws:elasticbeanstalk:eks:environment:autoscaling:trigger",
"OptionName": "scaler-metadata",
"Value": "{\"timezone\":\"UTC\",\"start\":\"0 8 * * 1-5\",\"end\":\"0 18 * * 1-5\",\"desiredReplicas\":\"5\"}"
}
]
$ aws elasticbeanstalk update-environment \
--environment-name my-cluster-env \
--option-settings file://schedule.json
환경은 하나의 일정을 사용합니다. 다른 주말 일정과 같은 여러 기간에 걸쳐 복제본 수를 변경하려면에 설명된 대로 일정을 다른 트리거와 결합합니다트리거 결합.
참고
scaler-metadata 값은 JSON 문서이기 때문에 설정은 파일에 저장됩니다. 에서에 대해 AWS CLI 허용하는 양식은의 간편 구문 사용을 --option-settings참조하세요. AWS CLI
자체 엔드포인트에서 지표 확장
대기열 깊이 또는 진행 중인 작업 수와 같이 자체 서비스에서 보고하는 값을 조정하려면를 scaler-type로 설정합니다metrics-api. Elastic Beanstalk는 사용자가 제공하는 HTTP 엔드포인트를 읽고 해당 엔드포인트에서 찾은 수에 따라 확장합니다. 에서 엔드포인트를 설명합니다scaler-metadata.
| 필드 | 설명 |
|---|---|
url |
Elastic Beanstalk가 읽는 엔드포인트입니다. |
valueLocation |
숫자가 JSON 응답에 점선 경로로 있는 위치입니다. 의 응답 본문{"data":{"result":[{"value":"500"}]}}의 경우 위치는 입니다data.result.0.value. |
targetValue |
하나의 복제본이 처리할 것으로 예상되는 양입니다. |
Elastic Beanstalk는 보고된 값을 로 나누targetValue고 반올림하여 복제본 수를 구한 다음 복제본 경계 내에서 해당 수를 유지합니다. targetValue의 100를 사용하면의 보고된 값이 5개의 복제본을 500 요청합니다.
자체 환경에서 트리거를 가리킬 수 있습니다. 환경의 URL은 시작된 후에만 알 수 있으므로 생성 시가 아닌 업데이트url에서를 설정합니다.
다음 예제는 애플리케이션이 보고하는 깊이에 따라 확장되며, 보고된 작업 100단위마다 복제본이 하나씩 있습니다.
$ cat trigger.json
[
{
"Namespace": "aws:elasticbeanstalk:eks:environment:autoscaling:trigger",
"OptionName": "scaler-type",
"Value": "metrics-api"
},
{
"Namespace": "aws:elasticbeanstalk:eks:environment:autoscaling:trigger",
"OptionName": "scaler-metadata",
"Value": "{\"url\":\"https://my-service.example.com/queue-depth\",\"valueLocation\":\"data.result.0.value\",\"targetValue\":\"100\"}"
}
]
$ aws elasticbeanstalk update-environment \
--environment-name my-cluster-env \
--option-settings file://trigger.json
엔드포인트에 인증
엔드포인트에 자격 증명이 필요한 경우 AWS Secrets Manager 보안 암호에 저장하고 보안 암호의 ARNscaler-auth-secret으로 설정합니다. 가 인 경우에만 설정할 수 scaler-type 있습니다metrics-api. 엔드포인트가 예상하는 체계scaler-auth-mode로를 설정합니다. 보안 암호의 값은 키가 해당 체계에 의존하는 JSON 객체입니다.
| 인증 모드 | 보안 암호의 필수 키 |
|---|---|
bearer, 기본값 |
token |
basic |
username 및 password |
apiKey |
apiKey |
tls |
ca, cert 및 key |
환경의 application-role 옵션도 설정합니다. Elastic Beanstalk는 환경의 포드 자격 증명을 통해 자격 증명을 복제본에 탑재합니다.이 자격 증명application-role은가 설정된 경우에만 존재합니다. 그렇지 않으면 탑재가 실패하고 복제본이 시작되지 않습니다. 일정 트리거는 필요하지 않으며 자격 증명이 필요하지 않은 지표 엔드포인트도 필요하지 않습니다.
환경의 애플리케이션 역할은 보안 암호를 읽으므로 보안 암호의 ARNsecretsmanager:DescribeSecret에 secretsmanager:GetSecretValue 및를 모두 부여합니다. Elastic Beanstalk는 일정에 따라 자격 증명을 새로 고치고 새로 고침은 보안 암호의 현재 버전을 확인하므로 권한이 부여된 환경은 정상적으로 GetSecretValue 시작된 다음 나중에 새로 고칠 때마다 실패합니다. Beanstalk 클러스터 환경에서 사용하는 역할은 섹션을 참조하세요Beanstalk 클러스터에 대한 권한.
이 보안 암호는 애플리케이션에 보안 암호를 제공하는 secrets 옵션과는 별개입니다. 복제본이 시작될 때 자격 증명이 마운트되므로의 값을 변경하면 환경의 복제본이 scaler-auth-secret 대체됩니다.
트리거 결합
scaler-type 및는 단일 트리거를 scaler-metadata 설명하기 때문에 환경은 일정 또는 엔드포인트 지표 중 하나의 이벤트 기반 트리거를 사용합니다. CPU 및 메모리 트리거를 해당 트리거와 함께 전달할 수 있습니다.
두 가지 동작을 결합하기 전에 알아야 합니다.
-
를 설정하면에 설명된 기본 CPU 조정이
scaler-type대체됩니다Elastic Beanstalk가 규모 조정 시기를 결정하는 방법. CPU에서도 계속 조정하려면cpu-metric-type및를cpu-value명시적으로 설정합니다. -
둘 이상의 트리거가 적용되면 가장 높은 복제본 수가 성공합니다. 복제본 5개를 요청하는 일정과 3개를 요청하는 CPU 트리거는 5개를 생성합니다.
일정을 CPU 트리거와 페어링하는 것은 일반적인 조합입니다. 일정에는 바쁜 시간 동안 예상되는 복제본 수가 포함되며 CPU 트리거는 나머지 시간 동안 계속 사용할 수 있습니다.
환경 규모 보기
Elastic Beanstalk 콘솔의 환경 모니터링 페이지에는 시간이 지남에 따라 환경이 실행 중인 복제본을 보고하는 애플리케이션 복제본 수 그래프가 표시됩니다. 이를 CPU(코어) 및 메모리(바이트) 그래프와 비교하면 트리거가 대상을 유지하고 있는지 여부를 알 수 있습니다. Beanstalk 클러스터 환경이 보고하는 상태 및 지표는 섹션을 참조하세요Beanstalk 클러스터 환경 모니터링.
Elastic Beanstalk는 조정 설정을 변경할 때 환경 이벤트를 기록하므로 조정 변경이 적용된 시기를 환경의 이벤트 스트림에 표시합니다.