기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon EC2 Auto Scaling에 대한 단계적이고 간단한 규모 조정 정책
단계별 조정 및 단순 조정 정책은 경보를 기반으로 CloudWatch Auto Scaling 그룹의 용량을 사전 정의된 증분으로 조정합니다. 경보 임계값 위반 시 스케일 아웃(용량 증가) 및 스케일 인(용량 감소)을 처리하도록 별도의 조정 정책을 정의할 수 있습니다.
단계별 조정 및 단순 조정을 사용하면 조정 프로세스를 호출하는 CloudWatch 경보를 생성하고 관리할 수 있습니다. 경보가 위반되면 Amazon EC2 Auto Scaling은 해당 경보와 관련된 조정 정책을 시작합니다.
대상 추적 조정 정책을 사용하여 평균 CPU 사용률 또는 대상당 평균 요청 수와 같은 지표를 기반으로 규모를 조정하는 것이 좋습니다. 용량이 증가할 때 감소하고 용량이 감소할 때 증가하는 지표를 사용하여 비례적으로 스케일 아웃하거나 대상 추적을 사용하여 인스턴스 수를 늘릴 수 있습니다. 이를 통해 Amazon EC2 Auto Scaling이 애플리케이션의 수요 곡선을 거의 따라갈 수 있습니다. 자세한 내용은 대상 추적 조정 정책 단원을 참조하십시오.
목차
단계 조정 정책 작동 방식
단계별 스케일링을 사용하려면 먼저 Auto Scaling 그룹의 지표를 모니터링하는 CloudWatch 경보를 생성합니다. 경보 위반을 결정하는 지표, 임계값, 평가 기간 수를 정의합니다. 그런 다음 경보 임계값 위반 시 그룹을 조정하는 방법을 정의하는 단계별 조정 정책을 생성하십시오.
정책에 단계 조정을 추가합니다. 경보의 위반 규모에 따라 다양한 단계 조정을 정의할 수 있습니다. 예:
-
알람 지표가 60% 에 도달하면 인스턴스를 10개씩 축소합니다.
-
알람 지표가 75% 에 도달하면 인스턴스를 30개까지 확장할 수 있습니다.
-
알람 지표가 85% 에 도달하면 40개 인스턴스까지 확장할 수 있습니다.
지정된 평가 기간 동안 경보 임계값이 위반되면 Amazon EC2 Auto Scaling은 정책에 정의된 단계 조정을 적용합니다. 경보 상태가 OK
로 돌아갈 때까지 추가 경보 위반에 대해 조정을 계속할 수 있습니다.
각 인스턴스에는 조정 활동이 짧은 기간 동안 발생하는 변경에 너무 민감하지 않도록 준비 기간이 있습니다. 조정 정책의 워밍업 기간을 선택적으로 구성할 수 있습니다. 하지만 워밍업 시간이 변경될 때 모든 조정 정책을 더 쉽게 업데이트할 수 있도록 기본 인스턴스 웜업을 사용하는 것이 좋습니다. 자세한 내용은 Auto Scaling 그룹의 기본 인스턴스 워밍업 설정 단원을 참조하십시오.
단순 조정 정책은 각 조정 활동 사이에 휴지 기간이 있는 단일 조정 조정을 기반으로 한다는 점을 제외하면 단계별 조정 정책과 비슷합니다. 자세한 내용은 단순 조정 정책 단원을 참조하십시오.
단계별 조정 정책에 대한 단계별 조정
단계별 조정 정책을 생성할 때 경보 위반의 크기에 따라 인스턴스 수를 동적으로 자동 조정되도록 하나 이상의 단계별 조정을 지정합니다. 각 단계별 조정은 다음을 지정합니다.
-
지표 값의 하한값입니다.
-
지표 값의 상한값입니다.
-
조정 유형에 근거하여 축소하거나 스케일 아웃하는 양입니다.
CloudWatch 경보와 관련된 지표의 통계를 기반으로 지표 데이터 포인트를 집계합니다. CloudWatch 경보를 위반하면 적절한 조정 정책이 호출됩니다. Amazon EC2 Auto Scaling은 CloudWatch (원시 지표 데이터와 반대) 의 가장 최근 지표 데이터 요소에 집계 유형을 적용합니다. 이 집계된 지표 값을 단계별 조정으로 정의된 상한값 및 하한값과 비교하여 어느 단계의 조정을 수행할 것인지 결정합니다.
위반 임계값과 연계하여 상한값과 하한값을 지정합니다. 예를 들어 지표가 50% 를 초과하는 경우에 대비하여 CloudWatch 경보와 확장 정책을 만들었다고 가정해 보겠습니다. 그런 다음 지표가 50% 미만일 때를 대비한 두 번째 경보와 스케일 인 정책을 만들었습니다. 각 정책에 대해 조정 유형 PercentChangeInCapacity
(또는 콘솔의 그룹 비율) 을 사용하여 일련의 단계 조정을 수행했습니다.
하한 | 상한 | 조절 |
---|---|---|
0 |
10 |
0 |
10 |
20 |
10 |
20 |
null |
30 |
하한 | 상한 | 조절 |
---|---|---|
-10 |
0 |
0 |
-20 |
-10 |
-10 |
null |
-20 |
-30 |
이렇게 하면 다음과 같은 조정 구성이 생성됩니다.
Metric value
-infinity 30% 40% 60% 70% infinity
-----------------------------------------------------------------------
-30% | -10% | Unchanged | +10% | +30%
-----------------------------------------------------------------------
이제 현재 용량과 원하는 용량이 모두 10인 Auto Scaling 그룹에서 이 조정 구성을 사용한다고 가정해 보겠습니다. 다음은 그룹의 원하는 용량과 현재 용량과 관련된 조정 구성의 동작을 요약한 내용입니다.
-
집계된 지표 값이 40보다 크고 60보다 작으면 현재 용량과 원하는 용량이 유지됩니다.
-
지표 값이 60이 되면 스케일 아웃 정책의 2단계 조절(10개의 인스턴스에 10% 합산)에 따라 그룹의 원하는 용량을 1개의 인스턴스만큼 늘려 11개의 인스턴스로 만듭니다. 새 인스턴스가 실행되고 지정된 웜업 시간이 만료되면 그룹의 현재 용량은 11개의 인스턴스로 늘어납니다. 용량이 이렇게 증가한 후에도 지표 값이 70으로 증가하면 그룹의 원하는 용량이 14개의 인스턴스까지 증가합니다(인스턴스가 3개씩 증가). 이는 스케일 아웃 정책의 세 번째 단계 조절에 근거하여 합니다(11개 인스턴스의 30%인 3.3개 인스턴스가 3개로 반올림되어 추가).
-
지표 값이 40이 될 경우, 축소 정책의 2단계 조절에 따라(14개의 인스턴스에 10%인 1.4개의 인스턴스를 빼되 1개의 인스턴스로 반내림) 그룹의 원하는 용량을 1개의 인스턴스만큼 더 줄여 13개의 인스턴스로 만듭니다. 이렇게 용량이 감소한 후에도 지표 값이 30으로 떨어지면 그룹의 원하는 용량이 10개의 인스턴스로 감소합니다(인스턴스가 3개씩 감소). 이는 스케일 인 정책의 세 번째 단계 조절에 근거하여 합니다(13개 인스턴스 30%인 3.9개 인스턴스가 3개로 반내림되어 제거).
조정 정책에 대한 단계 조절을 지정할 때는 다음 사항에 유의하세요.
-
를 사용하는 경우 상한과 하한을 절대값으로 지정합니다. AWS Management Console AWS CLI 또는 SDK an을 사용하는 경우 위반 임계값을 기준으로 상한과 하한을 지정합니다.
-
단계 조절의 범위는 중복되거나 격차가 있어서는 안 됩니다.
-
1단계 조절에만 null 하한값(negative infinity)이 포함될 수 있습니다. 1단계 조절에 음의 하한값이 포함될 경우, null 하한값으로 단계 조절을 해야 합니다.
-
1단계 조절에만 null 상한값(positive infinity)이 포함될 수 있습니다. 1단계 조절에 양의 상한값이 포함될 경우, null 상한값으로 단계 조절을 해야 합니다.
-
상한 및 하한값은 동일한 단계 조절에서 null이 될 수 없습니다.
-
지표 값이 위반 임계값을 초과할 경우, 하한값은 포함되고 상한값은 제외됩니다. 지표 값이 위반 임계값 미만일 경우, 하한값은 제외되고 상한값은 포함됩니다.
조정 조절 유형
선택한 조정 조절 유형에 따라 최적의 조정 작업을 수행하는 조정 정책을 정의할 수 있습니다. 조절 유형을 Auto Scaling 그룹의 현재 용량의 백분율이나 용량 단위로 지정할 수 있습니다. 인스턴스 가중치 기능을 사용하지 않는 한 일반적으로 용량 단위는 인스턴스 1개를 의미합니다.
Amazon EC2 Auto Scaling은 단계별 조정 및 단순 조정을 위해 다음과 같은 조정 유형을 지원합니다.
-
ChangeInCapacity
- 그룹의 현재 용량을 지정된 값만큼 늘리거나 줄입니다. 양의 값은 용량을 늘리고, 음의 조절 값은 용량을 줄입니다. 예: 그룹의 현재 용량이 3개의 인스턴스이고 조절이 5개인 경우, 이 정책이 수행되면 용량 단위가 총 8개가 되도록 용량에 5개의 용량 단위를 추가합니다. -
ExactCapacity
- 그룹의 현재 용량을 지정된 값으로 변경합니다. 이 조절 유형에는 음이 아닌 값을 지정합니다. 예: 그룹의 현재 용량이 3개의 인스턴스이고 조절이 5개인 경우, 이 정책이 수행되면 용량을 5개의 용량 단위로 변경합니다. PercentChangeInCapacity
- 그룹의 현재 용량을 지정된 퍼센트만큼 늘리거나 줄입니다. 양의 값은 용량을 늘리고, 음의 값은 용량을 줄입니다. 예: 현재 용량이 10개이고 조절이 10%인 경우, 이 정책이 수행되면 용량 단위가 총 11개가 되도록 용량에 1개의 용량 단위를 추가합니다.참고
결과 값이 정수가 아닌 경우, 다음과 같이 반올림(반내림)합니다.
-
1보다 큰 값은 반내림합니다. 예컨대,
12.7
은12
로 반내림합니다. -
0과 1 사이의 값은 1로 반올림합니다. 예컨대,
.67
은1
로 반올림합니다. -
0과 -1 사이의 값은 1로 반내림합니다. 예컨대,
-.58
은-1
으로 반올림합니다. -
-1보다 작은 값은 반올림합니다. 예컨대,
-6.67
은-6
으로 반올림합니다.
-
PercentChangeInCapacity
에서는 MinAdjustmentMagnitude
파라미터를 사용하여 조정할 최소 인스턴스 수를 지정할 수도 있습니다. 예컨대, 25퍼센트를 추가하는 정책을 생성하고 최소 증분으로 2개의 인스턴스를 지정한다고 가정해 보세요. Auto Scaling 그룹에 4개 인스턴스가 있고 조정 정책이 실행되는 경우, 4개 인스턴스의 25%는 1개 인스턴스입니다. 그러나 최소 증분을 2로 지정했기 때문에 2개의 인스턴스가 추가됩니다.
인스턴스 가중치를 사용하면 MinAdjustmentMagnitude
파라미터를 0이 아닌 값으로 설정하는 효과가 변경됩니다. 값은 용량 유닛입니다. 조정할 최소 인스턴스 수를 설정하려면 이 파라미터를 가장 큰 인스턴스 가중치 이상의 값으로 설정합니다.
인스턴스 가중치를 사용하는 경우 Auto Scaling 그룹의 현재 용량이 필요에 따라 원하는 용량을 초과할 수 있다는 점을 염두에 두십시오. 절대 감소 수 또는 백분율에서 감소하는 양이 현재 용량과 원하는 용량 간의 차이보다 작으면 조정 작업이 수행되지 않습니다. 임계값 경보가 위반되면 조정 정책의 결과를 확인할 때 이러한 동작을 고려해야 합니다. 예컨대, 원하는 용량이 30개이고 현재 용량이 32개라고 가정해 보겠습니다. 경보가 위반되면 조정 정책이 원하는 용량을 1씩 줄이게 되고 조정 작업이 수행되지 않습니다.
인스턴스 워밍업
단계별 조정의 경우, 새로 시작된 인스턴스가 워밍업되는 데 걸리는 시간(초)을 선택적으로 지정할 수 있습니다. 지정된 워밍업 시간이 만료될 때까지 인스턴스는 Auto Scaling 그룹의 집계된 EC2 인스턴스 측정치에 포함되지 않습니다.
인스턴스가 워밍업 기간에 있는 동안에는 워밍업을 하지 않는 인스턴스의 지표 값이 정책의 경보 상한 임계값보다 큰 경우에만 조정 정책이 확장됩니다.
그룹이 다시 스케일 아웃되면 아직 워밍업 중인 인스턴스가 다음 스케일 아웃 활동에 대한 원하는 용량의 일부로 계산됩니다. 따라서 여러 개의 경보 위반이 동일한 단계 조절 범위에 해당하는 경우, 단일 크기 조정 활동이 이루어집니다. 계속적이지만 과도하지는 않게 스케일 아웃하기 위한 목적입니다.
예컨대, 두 단계로 구성된 정책을 만든다고 가정해 보겠습니다. 첫 번째 단계는 지표이 60%에 도달하면 10%를 추가하고, 두 번째 단계는 지표이 70%에 도달하면 30%를 추가합니다. Auto Scaling 그룹의 원하는 용량과 현재 용량은 10입니다. 집계된 지표 값이 60 미만인 동안에는 원하는 및 현재의 용량은 변하지 않습니다. 지표이 60에 도달하여 인스턴스 1개(10개 인스턴스의 10%)가 추가되었다고 가정합니다. 그런 다음 새 인스턴스가 아직 워밍업 중인 동안 지표는 62가 됩니다. 스케일링 정책은 현재 용량(여전히 10)을 기준으로 새로 원하는 용량을 계산합니다. 하지만 그룹의 필요한 용량이 이미 11개 인스턴스로 증가하였으므로 조정 정책이 원하는 용량을 더 이상 늘리지 않습니다. 지표가 70이 되고 새 인스턴스가 여전히 워밍업 중이면 3개의 인스턴스(10개 인스턴스의 30퍼센트)를 추가해야 합니다. 하지만 그룹의 필요한 용량이 이미 11이므로 새로운 필요 용량 13개 인스턴스에 대해 2개의 인스턴스만 추가합니다.
스케일 아웃 활동이 진행 중인 동안에는 인스턴스 워밍업이 완료될 때까지 조정 정책에 의해 시작된 모든 축소 활동이 차단됩니다. 인스턴스 워밍업이 완료된 후 스케일 인 이벤트가 발생하면 현재 해지 중인 인스턴스는 새로 원하는 용량을 계산할 때 그룹의 현재 용량에 포함됩니다. 따라서 Auto Scaling 그룹에서 인스턴스를 필요 이상으로 빼지 않습니다. 예컨대, 인스턴스가 이미 해지되고 있는 동안 원하는 용량을 1씩 감소시킨 동일한 단계별 조정 범위에서 경보가 위반되는 경우, 스케일링 작업이 수행되지 않습니다.
기본값
값이 설정되지 않은 경우 조정 정책은 그룹에 정의된 기본 인스턴스 웜업 값인 기본값을 사용합니다. 기본 인스턴스 워밍업이 null인 경우 기본 재사용 대기시간 값으로 돌아갑니다.
고려 사항
단계별 및 단순 조정 정책과 관련한 작업을 수행할 때는 다음 고려 사항이 적용됩니다:
-
단계별 조정을 사용할 수 있을 만큼 애플리케이션의 단계별 조정을 정확하게 예측할 수 있는지 생각해 보세요. 조정 지표가 스케일 아웃 가능한 대상의 용량에 비례하여 증가하거나 감소하는 경우, 대상 추적 조정 정책을 대신 사용하는 것이 좋습니다. 단계별 조정을 고급 구성에 대한 추가 정책으로 사용할 수도 있습니다. 예컨대, 사용률이 일정 수준에 도달할 때 더 공격적인 대응을 구성할 수 있습니다.
-
플래핑을 방지하려면 스케일 아웃 임계값과 스케일 인 임계값 사이에서 적절한 마진을 선택해야 합니다. 플래핑은 스케일 인과 스케일 아웃의 무한 루프입니다. 즉, 스케일 아웃 작업을 진행하면 지표 값이 변경되고 반대 방향으로 다른 스케일 아웃 작업이 시작됩니다.