기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon EC2 Auto Scaling의 대상 추적 조정 정책
대상 추적 조정 정책은 대상 지표값을 기준으로 Auto Scaling 그룹의 용량을 자동으로 조정합니다. 개별 애플리케이션의 고유한 사용 패턴에 자동으로 적응합니다. 이를 통해 애플리케이션은 EC2 인스턴스에 대한 최적의 성능과 높은 사용률을 유지하여 수동 개입 없이 비용 효율성을 높일 수 있습니다.
대상 추적을 사용할 때는 애플리케이션의 이상적인 평균 사용률 또는 처리량 수준을 나타내는 지표와 목표 값을 선택합니다. Amazon EC2 Auto Scaling은 지표가 대상에서 벗어날 경우 조정 이벤트를 호출하는 CloudWatch 경보를 생성하고 관리합니다. 예를 들는 온도 조절기가 목표 온도를 유지하는 방식과 비슷합니다.
예컨대, 현재 인스턴스 2개에서 애플리케이션이 실행되고 있고 사용자가 애플리케이션 로드에 변경이 있는 경우, Auto Scaling 그룹의 CPU 사용량을 50% 정도로 유지시키려 한다고 가정해 보겠습니다. 이로 인해 과도한 유휴 리소스를 유지하지 않고도 트래픽 급증을 처리할 수 있는 추가 용량을 확보할 수 있습니다.
평균 CPU 사용률 50%를 목표로 하는 대상 추적 조정 정책을 생성하면 이러한 요건을 충족할 수 있습니다. CPU가 50%를 초과하면 Auto Scaling 그룹이 스케일 아웃하거나 용량을 늘려 증가된 로드를 처리합니다. CPU가 50% 미만으로 떨어지면 스케일 인하거나 용량을 줄여 사용률이 낮은 기간 동안 비용을 최적화합니다.
주제
다수의 대상 추적 조정 정책
조정 성능을 최적화하기 위해, 각각 다른 지표를 사용한다는 전제하에 다수의 대상 추적 조정 정책을 함께 사용할 수 있습니다. 예컨대, 사용률과 처리량(throughput)은 서로 영향을 줄 수 있습니다. 이러한 지표 중 하나가 변경될 때마다 일반적으로 다른 지표도 영향을 받게 됩니다. 따라서 여러 지표를 사용하면 Auto Scaling 그룹의 로드에 대한 추가 정보를 얻을 수 있습니다. 이렇게 하면 Amazon EC2 Auto Scaling이 그룹에 추가할 용량을 결정할 때 정보에 입각한 결정을 내리는 데 도움이 됩니다.
Amazon EC2 Auto Scaling의 목적은 항상 가용성의 우선순위를 지정하는 것입니다. 대상 추적 정책 중 하나를 스케일 아웃할 준비가 되면 Auto Scaling 그룹이 스케일 아웃됩니다. 모든 대상 추적 정책(스케일 인 부분이 활성화된 상태)이 스케일 인 준비가 된 경우에만 스케일 인됩니다.
지표 선택
사용자 지정 또는 사전 정의된 지표를 사용하여 대상 추적 크기 조정 정책을 생성할 수 있습니다. 미리 정의된 지표를 사용하면 규모 조정에 가장 일반적으로 사용되는 지표에 더 쉽게 액세스할 수 있습니다. 사용자 지정 지표를 사용하면 몇 초 만에 더 세밀하게 게시되는 고해상도 지표를 포함하여 사용 가능한 다른 CloudWatch 지표를 확장할 수 있습니다. https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cloudwatch_concepts.html#Resolution_definition 자체 고해상도 지표 또는 다른 AWS 서비스에서 게시하는 지표를 게시할 수 있습니다.
고해상도 지표를 사용하여 대상 추적 정책을 생성하는 방법에 대한 자세한 내용은 섹션을 참조하세요더 빠른 응답을 위해 고해상도 지표를 사용하여 대상 추적 정책 생성.
대상 추적은 다음과 같은 사전 정의된 지표를 지원합니다.
-
ASGAverageCPUUtilization
- Auto Scaling 그룹의 평균 CPU 사용률. -
ASGAverageNetworkIn
- Auto Scaling 그룹별로 모든 네트워크 인터페이스에서 수신한 평균 바이트 수. -
ASGAverageNetworkOut
- Auto Scaling 그룹별로 모든 네트워크 인터페이스에서 전송한 평균 바이트 수. -
ALBRequestCountPerTarget
- Auto Scaling 그룹의 대상당 평균 Application Load Balancer 요청 수.
중요
CPU 사용률, 네트워크 I/O, 대상당 Application Load Balancer 요청 수 등의 지표에 대한 기타 중요한 정보는 각각 Amazon EC2 사용 설명서의 인스턴스에 사용 가능한 CloudWatch 지표 목록 주제와 Application Load Balancer 사용 설명서의 Application Load Balancer의 CloudWatch 지표 주제에서 확인할 수 있습니다.
사용자 지정 지표를 지정하여 CloudWatch에서 사용 가능한 다른 CloudWatch 지표 또는 고유한 지표를 선택할 수 있습니다. 를 사용하여 대상 추적 조정 정책에 대한 사용자 지정 지표 사양을 지정하는 예제는 섹션을 AWS CLI참조하세요AWS CLI에 대한 조정 정책의 예.
지표를 선택하는 경우, 다음 사항에 유의하세요.
-
사용률 변경에 따라 더 빠르게 확장할 수 있도록 1분 이하의 간격으로 사용할 수 있는 지표만 사용하는 것이 좋습니다. 더 낮은 간격으로 게시되는 지표를 사용하면 대상 추적 정책이 Auto Scaling 그룹의 사용률 변화를 더 빠르게 감지하고 대응할 수 있습니다.
-
CPU 사용률과 같이 Amazon EC2에서 게시하는 사전 정의된 지표를 선택하는 경우 세부 모니터링을 활성화하는 것이 좋습니다. 기본적으로 모든 Amazon EC2 지표는 5분 간격으로 게시되지만 세부 모니터링을 활성화하여 1분 간격으로 구성할 수 있습니다. 자세한 모니터링을 활성화하는 방법에 대한 자세한 내용은 섹션을 참조하세요Auto Scaling 인스턴스에 대한 모니터링 구성.
-
모든 사용자 지정 지표를 대상 추적에 사용할 수 있는 것은 아닙니다. 지표는 유효한 사용량 수치로서 인스턴스의 사용량을 설명해야 합니다. 지표 값은 Auto Scaling 그룹의 인스턴스 수에 비례하여 증가하거나 감소합니다. 즉, 지표 데이터를 사용하여 인스턴스 수에 따라 비례적으로 스케일 아웃하거나 축소할 수 있습니다. 예컨대, Auto Scaling 그룹의 부하가 인스턴스로 분산되는 경우에는 Auto Scaling 그룹의 CPU 사용량(즉, 지표 차원
AutoScalingGroupName
의 Amazon EC2 지표CPUUtilization
)이 유효합니다. -
다음 지표는 대상 추적에 사용할 수 없습니다.
-
Auto Scaling 그룹에 대한 로드 밸런서가 수신하는 요청 수(즉, Elastic Load Balancing 지표
RequestCount
). 로드 밸런서가 수신하는 요청 수는 Auto Scaling 그룹의 사용량에 따라 변경되지 않습니다. -
로드 밸런서 요청 지연 시간(즉, Elastic Load Balancing 지표
Latency
). 요청 지연 시간은 사용량 증가에 따라 늘어날 수는 있지만 반드시 비례하지는 않습니다. -
CloudWatch Amazon SQS 대기열 지표
ApproximateNumberOfMessagesVisible
. 대기열의 메시지 수는 대기열의 메시지를 처리하는 Auto Scaling 그룹의 크기에 비례하여 변경되지 않을 수 있습니다. 하지만 Auto Scaling 그룹의 EC2 인스턴스당 대기열의 메시지 수를 측정하는 사용자 지정 지표는 작동합니다. 자세한 설명은 Amazon SQS 기반 조정 정책 섹션을 참조하세요.
-
-
ALBRequestCountPerTarget
지표를 사용하려면ResourceLabel
파라미터를 지정하여 지표와 연관된 로드 밸런서 대상 그룹을 식별해야 합니다. 를 사용하여 대상 추적 조정 정책의ResourceLabel
파라미터를 지정하는 예제는 섹션을 AWS CLI참조하세요AWS CLI에 대한 조정 정책의 예. -
지표가 CloudWatch에 실제 0 값을 내보내는 경우(예:
ALBRequestCountPerTarget
) Auto Scaling 그룹은 유지된 기간 동안 애플리케이션에 대한 트래픽이 없을 때 0으로 스케일 인될 수 있습니다. 해당 그룹에 요청이 라우팅되지 않은 경우, Auto Scaling 그룹을 인스턴스 0개로 스케일 인하려면, 그룹의 최소 용량을 0으로 설정해야 합니다. -
조정 정책에 사용할 새 지표를 게시하는 대신 지표 수학을 사용하여 기존 지표를 결합할 수 있습니다. 자세한 설명은 지표 수식을 사용하여 대상 추적 조정 정책 생성 섹션을 참조하세요.
목표 값 정의
대상 추적 조정 정책을 생성할 경우, 목표 값을 지정해야 합니다. 목표 값은 Auto Scaling 그룹의 최적 평균 사용률 또는 처리량(throughput)을 나타냅니다. 리소스를 비용 효율적으로 사용하려면 예상치 못한 트래픽 증가에 대비하여, 적절한 버퍼를 두고 목표 값을 가능한 한 높게 설정합니다. 애플리케이션이 정상적인 트래픽 흐름을 위해 최적으로 스케일 아웃되면 실제 지표 값은 목표 값과 같거나 그보다 조금 낮아야 합니다.
조정 정책이 Application Load Balancer 대상당 요청 수, 네트워크 I/O 또는 기타 수 지표와 같은 처리량(throughput)에 근거하여 하는 경우, 대상 값은 1분 동안 단일 인스턴스의 최적 평균 처리량(throughput)을 나타냅니다.
인스턴스 워밍업 시간 정의
새로 시작된 인스턴스가 워밍업되는 데 걸리는 시간(초)을 선택적으로 지정할 수 있습니다. 지정된 워밍업 시간이 만료될 때까지 인스턴스는 Auto Scaling 그룹의 집계된 EC2 인스턴스 지표에 포함되지 않습니다.
인스턴스가 워밍업 기간에 있는 동안 워밍업되지 않은 인스턴스의 지표 값이 정책의 목표 사용률보다 큰 경우에만 조정 정책이 스케일 아웃됩니다.
그룹이 다시 스케일 아웃되면 아직 워밍업 중인 인스턴스가 다음 스케일 아웃 활동에 대한 원하는 용량의 일부로 계산됩니다. 계속적이지만 과도하지는 않게 스케일 아웃하기 위한 목적입니다.
스케일 아웃 활동이 진행 중인 동안에는 인스턴스 워밍업이 완료될 때까지 조정 정책에 의해 시작된 모든 스케일 인 활동이 차단됩니다. 인스턴스 워밍업이 완료된 후 스케일 인 이벤트가 발생하면 현재 종료 중인 인스턴스는 새로 원하는 용량을 계산할 때 그룹의 현재 용량에 포함됩니다. 따라서 Auto Scaling 그룹에서 인스턴스를 필요 이상으로 빼지 않습니다.
기본값
값을 설정하지 않으면 조정 정책은 그룹에 대해 정의된 기본 인스턴스 워밍업의 값인 기본값을 사용합니다. 기본 인스턴스 워밍업이 null 값이면 그것은 기본 쿨다운 값으로 돌아갑니다. 워밍업 시간이 변경될 때 모든 조정 정책을 쉽게 업데이트할 수 있도록 기본 인스턴스 워밍업을 사용하는 것이 좋습니다.
고려 사항
대상 추적 조정 정책과 관련한 작업을 수행할 때는 다음 고려 사항이 적용됩니다.
-
대상 추적 조정 정책과 함께 사용되는 CloudWatch 경보는 생성하거나 편집하거나 삭제하지 마세요. Amazon EC2 Auto Scaling은 대상 추적 조정 정책과 연결된 CloudWatch 경보를 생성하고 관리하며, 필요한 경우 이를 편집, 교체 또는 삭제하여 애플리케이션의 조정 환경과 변화하는 사용 패턴을 사용자 지정할 수 있습니다.
-
대상 추적 조정 정책은 트래픽이 감소할 때 보다 점진적으로 스케일 인하여 트래픽 수준이 변동하는 기간 동안 가용성을 우선으로 보장합니다. 더 큰 제어를 원하는 경우 단계 조정 정책이 더 나은 옵션일 수 있습니다. 대상 추적 정책의 축소 부분을 일시적으로 비활성화할 수 있습니다. 이렇게 하면 성공적인 배포를 위한 최소 인스턴스 수를 유지할 수 있습니다.
-
지표에 누락된 데이터 포인트가 있는 경우, CloudWatch 경보 상태가
INSUFFICIENT_DATA
로 변경됩니다. 이 경우, 새 데이터 포인트를 찾을 때까지 Amazon EC2 Auto Scaling이 그룹을 조정할 수 없습니다. -
설계상 지표가 드물게 보고되는 경우, 지표 수학이 유용할 수 있습니다. 예컨대, 가장 최근 값을 사용하려면
m1
이 지표에 있는FILL(m1,REPEAT)
함수를 사용하세요. -
대상 값과 실제 지표 데이터 포인트 사이에는 차이가 발생할 수 있습니다. 추가하거나 제거할 인스턴스 수를 결정할 때마다 항상 반올림 또는 내림을 통해 어림짐작으로 동작하기 때문입니다. 이는 인스턴스를 부족하게 추가하거나 너무 많이 제거하는 일을 방지하기 위해서입니다. 하지만 인스턴스가 줄어서 Auto Scaling 그룹이 작아지는 경우에는 그룹의 사용량이 목푯값에서 멀어질 수도 있습니다. 예컨대, CPU 사용률 목푯값을 50%로 설정한 후 Auto Scaling 그룹이 목푯값을 초과한다고 가정해 보겠습니다. 1.5개의 인스턴스를 추가하면 CPU 사용률이 50% 가까이 감소할 것을 알 수 있습니다. 하지만 1.5개의 인스턴스를 추가할 수 없기 때문에 반올림을 통해 인스턴스 2개를 추가합니다. 그러면 CPU 사용량이 50% 아래로 떨어지는 동시에 애플리케이션은 리소스를 충분히 확보하게 됩니다. 마찬가지로 인스턴스를 1.5개 제거하면 CPU 사용량이 증가하여 50%를 상회한다고 판단할 경우에는 인스턴스를 1개만 제거합니다.
인스턴스가 더 많고 규모가 큰 Auto Scaling 그룹의 경우, 활용도가 더 많은 수의 인스턴스에 분산되므로 인스턴스를 추가 또는 제거하면 대상 값과 실제 지표 데이터 포인트 간 차이가 줄어듭니다.
-
대상 추적 조정 정책은 지정한 지표가 목푯값을 초과할 때 한해서 Auto Scaling 그룹을 스케일 아웃하게 되어 있습니다. 대상 추적 조정 정책에서는 지정한 지표가 목푯값보다 작을 때 Auto Scaling 그룹을 스케일 아웃할 수 없습니다.