Application Auto Scaling의 대상 추적 스케일링 작동 방식 - Application Auto Scaling

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Application Auto Scaling의 대상 추적 스케일링 작동 방식

이 항목에서는 대상 추적 규모 조정 작동 방식을 설명하고 대상 추적 조정 정책의 주요 요소를 소개합니다.

작동 방식

목표 추적 조정을 사용하려면 대상 추적 조정 정책을 생성하고 다음을 지정해야 합니다.

  • 지표 - 평균 CPU 사용률 또는 대상당 평균 요청 수와 같은 추적할 CloudWatch 지표입니다.

  • 대상 값 - 지표의 대상 값(예: CPU 사용률 50% 또는 대상당 분당 1,000개 요청)입니다.

Application Auto Scaling은 조정 정책을 호출하는 CloudWatch 경보를 생성 및 관리하고 지표와 대상 값을 기반으로 조정 조정을 계산합니다. 이는 필요에 따라 용량을 추가 및 제거하여 지표를 지정한 목푯값으로, 혹은 목푯값에 가깝게 유지합니다.

지표가 목표 값을 초과하면 Application Auto Scaling은 용량을 추가하여 메트릭 값과 대상 값 간의 차이를 줄임으로써 스케일 아웃합니다. 지표가 목표 값보다 낮으면 Application Auto Scaling은 용량을 제거하여 스케일 인합니다.

조정 작업은 용량의 급격한 변동을 방지하기 위해 작업 중간에 휴지 기간을 두고 수행됩니다. 선택적으로 조정 정책에 대한 휴지 기간을 구성할 수 있습니다.

다음 다이어그램은 설정이 완료될 때 대상 추적 조정 정책의 작동에 대한 개요를 보여줍니다.

대상 추적 조정 정책의 개요 다이어그램

대상 추적 조정 정책은 사용률이 증가할 때 용량을 추가하는 것이 사용률이 감소할 때 용량을 제거하는 것보다 더 적극적으로 적용된다는 점에 유의하세요. 예를 들어 정책의 지정된 지표가 대상 값에 도달하면 정책은 애플리케이션이 이미 많이 로드된 것으로 가정합니다. 따라서 최대한 빨리 지표 값에 비례하는 용량을 추가하여 응답합니다. 지표가 높을수록 더 많은 용량이 추가됩니다.

지표가 대상 값 미만으로 떨어지면 정책은 사용률이 결국 다시 증가할 것으로 예상합니다. 이 경우 사용률이 대상 값보다 충분히 낮은 임계값(일반적으로 10% 이상 낮음)에 도달하는 경우에만 사용률이 낮은 것으로 간주되어 용량을 제거하므로 조정 속도가 느려집니다. 이러한 더 보수적인 동작의 목적은 애플리케이션에서 더 이상 이전과 동일한 수준의 수요가 발생하지 않을 때만 용량을 제거하는 것입니다.

지표 선택

사용자 지정 또는 사전 정의된 지표를 사용하여 대상 추적 크기 조정 정책을 생성할 수 있습니다.

사전 정의된 지표 유형을 사용하여 대상 추적 크기 조정 정책을 생성하는 경우 대상 추적 조정 정책을 위해 사전 정의된 지표에 사전 정의된 지표 목록에서 지표를 하나 선택합니다.

지표를 선택하는 경우, 다음 사항에 유의하세요.

  • 모든 사용자 지정 지표를 대상 추적에 사용할 수 있는 것은 아닙니다. 지표는 유효한 사용량 수치로서 확장 가능한 대상의 사용량을 설명해야 합니다. 지표 값은 확장 가능한 대상의 용량과 비례하여 증가하거나 감소해야만 지표 데이터에 따라 확장 가능한 대상을 늘리거나 줄일 수 있습니다.

  • ALBRequestCountPerTarget 지표를 사용하려면 ResourceLabel 파라미터를 지정하여 지표와 연관된 대상 그룹을 식별해야 합니다.

  • 예를 들어 지표가 실제 0 값을 내보내는 경우 CloudWatch (예:ALBRequestCountPerTarget), 일정 기간 동안 애플리케이션에 대한 트래픽이 없을 때 Application Auto Scaling은 0으로 확장할 수 있습니다. 확장 가능 대상에 요청이 라우팅되지 않은 경우 대상을 0으로 축소하려면, 확장 가능 대상의 최소 용량을 0으로 설정해야 합니다.

  • 조정 정책에 사용할 새 지표를 게시하는 대신 지표 수학을 사용하여 기존 지표를 결합할 수 있습니다. 자세한 정보는 지표 수학을 사용하여 Application Auto Scaling에서 대상 추적 조정 정책 생성을 참조하세요.

  • 사용하는 서비스가 서비스 콘솔에서 사용자 지정 지표 지정을 지원하는지 확인하려면 해당 서비스에 대한 설명서를 참조하세요.

  • 사용률 변화에 따라 더 빠르게 조정할 수 있도록 1분 간격으로 제공되는 지표를 사용할 것을 권장합니다. 대상 추적은 사전 정의된 모든 지표와 사용자 지정 지표에 대해 1분 단위로 집계된 지표를 평가하지만, 기본 지표는 데이터를 게시하는 빈도가 낮을 수 있습니다. 예컨대, 모든 Amazon EC2 지표는 기본적으로 5분 간격으로 전송되지만, 1분 간격으로 구성할 수 있습니다(세부 모니터링이라고 함). 이 선택은 개별 서비스에 따라 달라집니다. 대부분의 경우 가능한 가장 짧은 간격을 사용하려고 합니다.

목표 값 정의

대상 추적 조정 정책을 생성할 경우, 목표 값을 지정해야 합니다. 목표 값은 애플리케이션의 최적 평균 사용률 또는 처리량(throughput)을 나타냅니다. 리소스를 비용 효율적으로 사용하려면 예상치 못한 트래픽 증가에 대비하여, 적절한 버퍼를 두고 목표 값을 가능한 한 높게 설정합니다. 애플리케이션이 정상적인 트래픽 흐름을 위해 최적으로 스케일 아웃되면 실제 지표 값은 목표 값과 같거나 그보다 조금 낮아야 합니다.

조정 정책이 Application Load Balancer 대상당 요청 수, 네트워크 I/O 또는 기타 수 지표와 같은 처리량(throughput)을 기반으로 하는 경우 대상 값은 1분 동안 단일 엔터티(예: Application Load Balancer 대상 그룹의 단일 대상)의 최적 평균 처리량(throughput)을 나타냅니다.

휴지 기간 정의

대상 추적 조정 정책에서 휴지 기간을 선택적으로 정의할 수 있습니다.

이전 조정 활동이 적용될 때까지 기다리는 시간을 휴지 기간이라고 합니다.

휴지 기간에는 다음과 같은 두 가지 유형이 있습니다.

  • 확장 휴지 기간을 사용하는 경우, 지속적이지만 과도하지는 않게 확장하는 것이 목적입니다. Application Auto Scaling에서 조정 정책을 사용하여 성공적으로 스케일 아웃하면 휴지 기간이 계산되기 시작합니다. 조정 정책은 더 큰 스케일 아웃이 트리거되거나 휴지 기간이 종료되지 않는 한 원하는 용량을 다시 늘리지 않습니다. 확장 휴지 기간이 진행되는 동안 확장 활동을 시작하여 추가된 용량은 다음 확장 활동에 대해 원하는 용량의 일부로 계산됩니다.

  • 스케일 인 휴지 기간을 사용하는 경우 애플리케이션의 가용성을 보호하기 위해 보수적으로 확장하므로 스케일 인 휴지 기간이 만료될 때까지 스케일 인 활동이 차단됩니다. 그러나 축소 휴지 기간 중에 다른 경보가 확장 활동을 트리거하면 Application Auto Scaling은 대상을 즉시 확장합니다. 이 경우 스케일 인 휴지 기간이 중지되고 완료되지 않습니다.

각 휴지 기간은 초 단위로 측정되며 정책 관련 조정 활동 조정에만 적용됩니다. 휴지 기간에 예약된 작업이 예약된 시간에 시작되면 휴지 기간이 만료될 때까지 기다리지 않고 조정 활동을 즉시 트리거할 수 있습니다.

나중에 미세 조정할 수 있는 기본값으로 시작할 수 있습니다. 예를 들어 대상 추적 조정 정책이 짧은 기간에 발생하는 변경 사항에 대해 지나치게 공격적이지 않도록 휴지 기간을 늘려야 할 수 있습니다.

기본값

Application Auto Scaling은 ElastiCache 복제 그룹의 기본값인 600을 제공하고 다음과 같은 확장 가능한 대상에 대해 기본값인 300을 제공합니다.

  • AppStream 2.0 플릿

  • Aurora DB 클러스터

  • ECS 서비스

  • Neptune 클러스터

  • SageMaker 엔드포인트 변형

  • SageMaker 추론 구성 요소

  • SageMaker 서버리스 프로비저닝된 동시성

  • Spot Fleets

  • 풀: WorkSpaces

  • 사용자 정의 리소스

다른 모든 확장 가능한 대상의 경우 기본값은 0 또는 null입니다.

  • Amazon Comprehend 문서 분류 및 엔터티 인식기 엔드포인트

  • DynamoDB 테이블 및 글로벌 보조 인덱스

  • Amazon Keyspaces 테이블

  • Lambda 프로비저닝된 동시성

  • Amazon MSK 브로커 스토리지

Application Auto Scaling Scaling에서 휴지 기간을 평가할 때 Null 값은 0 값 동일하게 처리됩니다.

null 값을 비롯한 모든 기본값을 업데이트하여 휴지 기간을 직접 설정할 수 있습니다.

고려 사항

대상 추적 조정 정책과 관련한 작업을 수행할 때는 다음 고려 사항이 적용됩니다.

  • 대상 추적 조정 정책과 함께 사용되는 CloudWatch 경보를 생성, 편집 또는 삭제하지 마십시오. Application Auto Scaling은 대상 추적 조정 정책과 관련된 CloudWatch 경보를 생성 및 관리하고 더 이상 필요하지 않을 경우 이를 삭제합니다.

  • 지표에 데이터 포인트가 누락된 경우 CloudWatch 경보 상태가 로 변경됩니다. INSUFFICIENT_DATA 이 경우, 새 데이터 포인트를 찾을 때까지 Application Auto Scaling이 확장 가능 대상을 조정할 수 없습니다. 자세한 내용은 Amazon CloudWatch User Guide의 CloudWatch 경보가 누락된 데이터를 처리하는 방법 구성을 참조하십시오.

  • 설계상 지표가 드물게 보고되는 경우, 지표 수학이 유용할 수 있습니다. 예를 들어, 가장 최근 값을 사용하려면 m1이 지표에 있는 FILL(m1,REPEAT) 함수를 사용하세요.

  • 대상 값과 실제 지표 데이터 포인트 사이에는 차이가 발생할 수 있습니다. Application Auto Scaling이 추가하거나 제거할 용량을 결정할 때마다 항상 반올림 또는 내림을 통해 어림짐작으로 동작하기 때문입니다. 이는 용량을 부족하게 추가하거나 너무 많이 제거하는 일을 방지하기 위해서입니다. 하지만 용량이 작은 확장 가능한 대상의 경우 실제 지표 데이터 포인트는 대상 값과 멀어질 수도 있습니다.

    용량이 큰 확장 가능한 대상의 경우 용량을 추가 또는 제거하면 대상 값과 실제 지표 데이터 포인트 사이의 차이를 줄일 수 있습니다.

  • 대상 추적 조정 정책은 지정한 지표가 목표 값을 초과할 때 한해서 확장을 수행해야 합니다. 대상 추적 조정 정책에서는 지정한 지표가 목표 값보다 작을 때 확장할 수 없습니다.

여러 조정 정책

각각 다른 지표를 사용한다는 전제하에 확장 가능한 대상에 대해 다수의 대상 추적 조정 정책을 보유할 수 있습니다. Application Auto Scaling은 항상 가용성을 우선시하므로, 대상 추적 정책이 확장 또는 축소를 허용하는지에 따라 그 동작이 달라집니다. 대상 추적 정책 중 하나라도 확장을 허용할 경우 확장 가능한 대상을 확장하지만 모든 대상 추적 정책(축소 부분이 활성화됨)이 축소를 허용하는 경우에만 대상을 축소합니다.

여러 조정 정책이 확장 가능한 대상에 스케일 아웃 도는 스케일 인을 동시에 지시하는 경우 Application Auto Scaling은 스케일 아웃과 스케일 인 모두에 대해 가장 큰 용량을 제공하는 정책에 따라 조정합니다. 이로써 다양한 시나리오를 수용할 만큼 폭넓은 유연성을 발휘할 뿐만 아니라 워크로드를 처리하는 데 필요한 용량을 항상 충분히 확보할 수 있습니다.

대상 추적 조정 정책의 스케일 인 부분을 비활성화하여 스케일 아웃에 사용하는 것보다 다양한 스케일 인 방법을 사용할 수 있습니다. 예를 들어 확장을 위해 대상 추적 조정 정책을 사용하고 축소를 위해 단계 조정 정책을 사용할 수 있습니다.

그러나 대상 추적 조정 정책과 단계별 조정 정책을 함께 사용하는 경우, 정책 간 충돌로 인해 바람직하지 않은 동작이 발생할 수 있으므로 주의해야 합니다. 예를 들어 대상 추적 정책이 축소 준비되기 전에 단계 조정 정책이 축소 활동을 시작하는 경우 축소 활동이 차단되지 않습니다. 축소 작업이 완료된 후 대상 추적 정책이 확장 가능한 대상에 다시 확장하도록 지시할 수 있습니다.

기본적으로 주기적 워크로드의 경우 예약된 조정을 사용하여 일정에 따라 용량 변경을 자동화할 수도 있습니다. 예약된 각 작업에 대해 새 최소 용량 값과 새 최대 용량 값을 정의할 수 있습니다. 이러한 값은 조정 정책의 경계를 형성합니다. 예약된 조정과 대상 추적 조정을 함께 사용하면 용량이 즉시 필요할 때 사용률 수준이 급격히 증가하는 영향을 줄일 수 있습니다.

조정 정책 생성, 관리 및 삭제를 위해 일반적으로 사용되는 명령

조정 정책 작업에 일반적으로 사용되는 명령은 다음과 같습니다.

  • register-scalable-target리소스를 확장 가능한 대상 (Application Auto Scaling이 확장할 수 있는 리소스) 으로 AWS 등록하거나 사용자 지정하고 조정을 일시 중지하고 재개합니다.

  • put-scaling-policy기존 확장 가능한 대상에 대한 규모 조정 정책을 추가 또는 수정합니다.

  • describe-scaling-activities AWS 지역 내 규모 조정 활동에 대한 정보를 반환하기 위함입니다.

  • describe-scaling-policies AWS 지역 내 규모 조정 정책에 대한 정보를 반환하려는 경우

  • delete-scaling-policy규모 조정 정책을 삭제하기 위해서입니다.

Auto Scaling의 대상 추적 조정 정책 생성에 대한 자세한 내용은 Amazon EC2 Auto Scaling 사용 설명서Amazon EC2 Auto Scaling 대상 추적 조정 정책을 참조하세요.

제한 사항

대상 추적 조정 정책을 사용할 때의 제한 사항은 다음과 같습니다.

  • 확장 가능 대상은 Amazon EMR 클러스터가 될 수 없습니다. Amazon EMR에 대해서는 대상 추적 조정 정책이 지원되지 않습니다.

  • Amazon MSK 클러스터가 확장 가능한 대상인 경우 축소가 비활성화되어 활성화할 수 없습니다.

  • RegisterScalableTarget또는 PutScalingPolicy API 작업을 사용하여 AWS Auto Scaling 조정 계획을 업데이트할 수 없습니다.

  • 확장 가능한 리소스에 대한 대상 추적 조정 정책을 표시, 추가, 업데이트 또는 제거할 수 있는 콘솔 액세스 권한은 사용하는 리소스에 따라 다릅니다. 자세한 정보는 AWS 서비스 Application Auto Scaling과 함께 사용할 수 있는을 참조하세요.