더 빠른 대응을 위해 고해상도 지표를 사용하여 대상 추적 정책 생성 - Amazon EC2 Auto Scaling

더 빠른 대응을 위해 고해상도 지표를 사용하여 대상 추적 정책 생성

대상 추적은 1분 미만의 간격으로 게시되는, 초 단위 데이터 포인트를 포함한 고해상도 CloudWatch 지표를 지원합니다. 클라이언트 API, 라이브 스트리밍 서비스, 전자상거래 웹사이트, 온디맨드 데이터 처리처럼 수요 변동이 큰 애플리케이션의 사용률을 모니터링하기 위해, 고해상도 CloudWatch 지표를 활용해 대상 추적 정책을 구성합니다. 수요에 맞춰 용량을 더욱 정밀하게 조정하기 위해 대상 추적은 이러한 세분화된 모니터링을 활용해 EC2 인스턴스의 수요 및 사용률 변화를 더 빠르게 감지하고 대응합니다.

고해상도로 지표를 게시하는 방법에 대한 자세한 내용은 Amazon CloudWatch 사용 설명서사용자 지정 지표 게시를 참조하세요. CPU 사용률과 같은 EC2 지표를 고해상도로 조회하고 게시하려면 CloudWatch 에이전트를 사용하는 것이 좋습니다.

AWS 리전

고해상도 지표를 사용하는 대상 추적은 AWS GovCloud (US) Regions를 제외한 모든 AWS 리전에서 사용할 수 있습니다.

고해상도 지표를 활용한 대상 추적 정책 작동 방식

추적하려는 지표와 해당 지표가 유지해야 하는 목표 값을 정의해 대상 추적 정책을 생성합니다. 고해상도 지표를 기반으로 스케일링하려면, 해당 지표의 이름을 지정하고 대상 추적이 이 지표를 관찰하는 지표 주기를 60초 미만으로 설정해야 합니다. 현재 지원되는 가장 낮은 간격은 10초입니다. 이보다 낮은 간격으로 지표를 게시할 수 있습니다.

참고

60보다 큰 지표 기간은 지원되지 않습니다.

대상 추적은 단일 CloudWatch 지표에 대해 구성할 수 있으며, 여러 CloudWatch 지표를 조회한 뒤 수학 식을 사용해 이를 기반으로 새로운 단일 시계열을 생성할 수도 있습니다. 두 옵션 모두 지표 기간을 정의할 수 있습니다.

예시

예 1

다음 예시에서는 고해상도 CloudWatch 지표를 기반으로 대상 추적 정책을 생성합니다. 지표는 10초 해상도로 게시됩니다. 기간을 정의하면 대상 추적이 이 지표를 10초 단위의 세분화된 수준으로 모니터링하도록 설정할 수 있습니다. user input placeholder를 사용자의 정보로 바꿉니다.

$ cat ~/config.json { "TargetValue": 100.0, "CustomizedMetricSpecification": { "MetricName": "MyHighResolutionMetric", "Namespace": "MyNamespace", "Dimensions": [ { "Name": "MyOptionalDimensionName", "Value": "MyOptionalMetricDimensionValue" } ], "Statistic": "Average", "Unit": "None" "Period": "10 } }
예제 2

여러 지표를 결합해 조정에 사용할 단일 시계열로 만들기 위해, 지표 수학 식을 사용할 수 있습니다. 지표 수학은 기존 지표를 인스턴스당 평균값으로 변환할 때 특히 유용합니다. 지표 변환은 필수적입니다. 대상 추적은 지표가 Auto Scaling 그룹의 용량과 반비례한다고 가정하기 때문입니다. 따라서 용량이 증가하면 지표도 거의 같은 비율로 감소해야 합니다.

예를 들어 애플리케이션이 처리해야 하는 대기 작업 수를 나타내는 지표가 있다고 가정해 보겠습니다. 지표 수학을 사용하여 보류 중인 작업을 Auto Scaling 그룹의 실행 용량으로 나눌 수 있습니다. Auto Scaling은 용량 지표를 1분 단위로 게시하므로 1분 미만의 간격에서는 이 지표 값이 제공되지 않습니다. 더 높은 해상도로 조정을 수행하려는 경우, 용량 지표와 대기 작업 지표 간에 기간 불일치가 발생할 수 있습니다. 이런 불일치를 방지하려면 이전 1분 타임스탬프에 기록된 용량 값으로 누락된 값을 채우도록 FILL 식을 사용하는 것을 권장합니다.

다음 예제에서는 지표 수학을 사용해 대기 작업 지표를 용량으로 나눕니다. 기간은 두 지표 모두 10초로 설정합니다. 이 지표는 1분 간격으로 게시되므로 용량 지표에는 FILL 연산을 사용합니다.

지표 수학을 사용하여 여러 지표 수정

{ "CustomizedMetricSpecification": { "Metrics": [ { "Label": "Pending jobs to be processed", "Id": "m1", "MetricStat": { "Metric": { "MetricName": "MyPendingJobsMetric", "Namespace": "Custom", }, "Stat": "Sum" "Period": 10 }, "ReturnData": false }, { "Label": "Get the running instance capacity (matching the period to that of the m1)", "Id": "m2", "MetricStat": { "Metric": { "MetricName": "GroupInServiceInstances", "Namespace": "AWS/AutoScaling", "Dimensions": [ { "Name": "AutoScalingGroupName", "Value": "my-asg" } ] }, "Stat": "Average" "Period": 10 }, "ReturnData": false }, { "Label": "Calculate the pending job per capacity (note the use of the FILL expression)", "Id": "e1", "Expression": "m1 / FILL(m2,REPEAT)", "ReturnData": true } ] }, "TargetValue": 100 }

고려 사항

대상 추적 및 고해상도 지표를 사용할 때는 다음 사항을 고려하세요.

  • 원하지 않는 자동 조정 결과를 초래할 수 있는 누락된 데이터 포인트가 발생하지 않도록 하려면, CloudWatch 지표가 지정한 기간과 같거나 더 높은 해상도로 게시되어야 합니다.

  • Auto Scaling 그룹이 유지해야 하는 1분당 인스턴스별 지표 값을 목표값으로 정의합니다. 지표의 기간에 따라 값이 배로 증가할 수 있는 지표를 사용하는 경우, 적절한 목표값을 설정하는 것이 매우 중요합니다. 예를 들어 요청 수나 대기 작업 수처럼 SUM 통계를 사용하는 개수 기반 지표는 설정한 기간에 따라 지표 값이 달라지게 됩니다. 여전히 1분당 평균값을 기준으로 목표값을 설정한다고 가정해야 합니다.

  • Amazon EC2 Auto Scaling 사용에는 추가 요금이 없지만, Amazon EC2 인스턴스, CloudWatch 지표, CloudWatch 알람과 같은 리소스에 대한 비용은 지불해야 합니다. 앞선 예제에서 생성된 고해상도 알람은 표준 CloudWatch 알람과는 다른 기준으로 요금이 부과됩니다. CloudWatch 요금에 대한 자세한 내용은 Amazon CloudWatch 요금을 참조하세요.

  • 대상 추적은 지표가 EC2 인스턴스의 인스턴스당 평균 사용률을 나타내야 합니다. 이를 위해 대상 추적 정책 구성에서 지표 수학 연산을 사용할 수 있습니다. 지표를 Auto Scaling 그룹의 실행 용량으로 나눕니다. 단일 시계열을 생성할 때 사용하는 모든 지표에 대해 동일한 지표 기간을 정의해야 합니다. 여러 지표가 서로 다른 간격으로 게시되는 경우, 더 긴 간격으로 게시되는 지표에 FILL 연산을 사용해 누락된 데이터 포인트를 채워야 합니다.