Amazon CloudWatch 개념 - Amazon CloudWatch

Amazon CloudWatch 개념

다음 용어 및 개념은 Amazon CloudWatch를 이해하고 사용하는 데 있어 매우 중요합니다.

Namespaces

‘네임스페이스’는 CloudWatch 지표의 컨테이너입니다. 다른 네임스페이스의 지표는 서로 격리되어 있으므로 다른 애플리케이션의 지표가 실수로 동일한 통계로 집계되는 일은 없습니다.

기본 네임스페이스는 없습니다. CloudWatch에 게시하는 각 데이터 요소의 네임스페이스를 지정해야 합니다. 사용자는 지표를 생성할 때 네임스페이스 이름을 지정할 수 있습니다. 이 이름은 유효한 XML 문자를 포함하고 있어야 하고 길이가 256자 미만이어야 합니다. 가능한 문자로는 영숫자 문자(0-9A-Za-z), 마침표(.), 하이픈(-), 밑줄(_), 슬래시(/), 해시(#), 콜론(:)이 있습니다.

AWS 네임스페이스는 일반적으로 AWS/service라는 명명 규칙을 사용합니다. 예를 들어 Amazon EC2는 AWS/EC2 네임스페이스를 사용합니다. AWS 네임스페이스 목록은 CloudWatch 지표를 게시하는 AWS 서비스 단원을 참조하십시오.

Metrics

‘지표’는 CloudWatch의 기본 개념입니다. 지표는 CloudWatch에 게시된 시간 순서별 데이터 요소 집합을 나타냅니다. 지표는 모니터링할 변수로, 데이터 요소는 시간에 따른 변수의 값을 나타내는 것으로 간주합니다. 예를 들어 특정 EC2 인스턴스의 CPU 사용량은 Amazon EC2가 제공하는 하나의 지표입니다. 데이터 요소 그 자체는 데이터를 수집하는 애플리케이션이나 비즈니스 활동에서 나올 수 있습니다.

기본적으로 많은 AWS 서비스에서 리소스(예: Amazon EC2 인스턴스, Amazon EBS 볼륨, Amazon RDS DB 인스턴스)에 대한 무료 지표를 제공합니다. 또한 유료로 Amazon EC2 인스턴스와 같은 일부 리소스에 대한 세부 모니터링을 사용하거나 자체 애플리케이션 지표를 게시할 수도 있습니다. 사용자 지정 지표의 경우 원하는 순서와 속도로 데이터 요소를 추가할 수 있습니다. 이러한 데이터 요소에 대한 통계를 정렬된 시계열 집합으로 검색할 수 있습니다.

지표는 생성된 리전에만 존재합니다. 지표는 삭제가 불가능하지만, 지표에 새 데이터가 게시되지 않을 경우 15개월 후에 자동으로 만료됩니다. 15개월이 지난 데이터 요소는 순서대로 만료됩니다. 새로운 데이터 요소가 들어오면 15개월이 지난 데이터가 삭제됩니다.

지표는 이름, 네임스페이스 및 0개 이상의 차원으로 고유하게 정의됩니다. 지표의 각 데이터 요소에는 타임스탬프와 측정 단위(선택 사항)가 있습니다. CloudWatch에서 어떤 지표의 통계든 검색할 수 있습니다.

자세한 내용은 사용 가능한 지표 보기사용자 지정 지표 게시 단원을 참조하세요.

타임스탬프

각 지표 데이터 요소에는 타임스탬프가 연결되어 있어야 합니다. 타임스탬프는 최대 2주 전이고 최대 2시간 빠를 수 있습니다. 타임스탬프를 제공하지 않으면 CloudWatch는 데이터 요소를 수신한 시간에 따라 자동으로 타임스탬프를 생성합니다.

타임스탬프는 시간, 분, 초(예: 2016-10-31T23:59:59Z)와 더불어 완전한 날짜가 있는 dateTime 개체입니다. 자세한 내용은 dateTime을 참조하십시오. 필수 요건은 아니지만 UTC(협정 세계시)를 사용하는 것이 좋습니다. CloudWatch에서 통계를 검색할 때 모든 시간은 UTC 기준입니다.

CloudWatch 경보는 UTC의 현재 시간을 기반으로 지표를 확인합니다. 현재 UTC 시간이 아닌 타임스탬프와 함께 사용자 지정 지표를 CloudWatch에 전송하면 경보에 [데이터 부족(Insufficient Data)] 상태가 표시되거나 경보가 지연될 수 있습니다.

지표 보존 기간

CloudWatch는 지표 데이터를 다음과 같이 유지합니다.

  • 기간이 60초 미만으로 설정된 데이터 요소들은 3시간 동안 사용이 가능합니다. 이러한 데이터 요소는 고분해능 사용자 지정 지표입니다.

  • 기간이 60초(1분)로 설정된 데이터 요소들은 15일 동안 사용이 가능

  • 기간이 300초(5분)로 설정된 데이터 요소들은 63일 동안 사용이 가능

  • 기간이 3600초(1시간)로 설정된 데이터 요소들은 455일(15개월) 동안 사용이 가능

원래 더 짧은 기간으로 게시된 데이터 요소는 장기 보관을 위해 집계됩니다. 예를 들어 데이터를 1분 기간으로 수집할 경우 15일 동안 1분 분해능으로 데이터를 사용할 수 있습니다. 15일 이후에는 이 데이터를 계속 사용할 수 있지만 데이터가 5분 분해능으로 집계됩니다. 63일 이후에는 이 데이터가 추가로 집계되어 1시간 분해능으로 제공됩니다.

참고

지난 2주 동안 새로운 데이터 요소가 없는 지표는 콘솔에 나타나지 않습니다. 콘솔의 모든 지표 탭에 있는 검색 상자에 지표 이름이나 차원 이름을 입력할 때도 나타나지 않으며 list-metrics 명령의 결과에도 반환되지 않습니다. 이러한 지표를 검색하는 가장 좋은 방법은 AWS CLI에서 get-metric-data 또는 get-metric-statistics 명령을 사용하는 것입니다.

Dimensions

차원은 지표의 자격 증명에 속하는 이름/값 페어입니다. 각 지표에 차원을 최대 10개까지 할당할 수 있습니다.

모든 지표에는 자신을 설명하는 고유한 특징이 있고 차원을 이러한 특징에 대한 범주로 생각할 수 있습니다. 차원을 사용하면 통계 계획을 위한 구조를 설계할 수 있습니다. 차원은 지표에 대한 고유한 식별자의 일부이므로 지표 중 하나에 이름/값 쌍을 추가할 때마다 해당 지표의 새로운 변형이 생성되는 것입니다.

CloudWatch에 데이터를 전송하는 AWS 서비스는 각 지표에 차원을 연결합니다. 차원을 사용하여 CloudWatch가 반환하는 결과를 필터링할 수 있습니다. 예를 들어 지표를 검색할 때 InstanceId 차원을 지정하여 특정 EC2 인스턴스에 대한 통계를 얻을 수 있습니다.

Amazon EC2와 같은 특정 AWS 서비스에서 생성한 지표의 경우 CloudWatch는 차원 전반의 데이터를 집계할 수 있습니다. 예를 들어 AWS/EC2 네임스페이스의 지표를 검색하는데 어떤 차원도 지정하지 않으면 CloudWatch는 지정된 지표에 대한 모든 데이터를 집계하여 요청된 통계를 생성합니다. 사용자 지정 지표의 경우 CloudWatch는 차원 전반에서 집계하지 않습니다.

차원 조합

CloudWatch는 지표에 동일한 지표 이름이 있는 경우에도 각각의 고유한 차원 조합을 별도의 지표로 처리합니다. 사용자가 게시한 차원의 조합만 사용해서 통계를 검색할 수 있습니다. 통계를 검색할 때 지표 생성 시 사용했던 네임스페이스, 지표 이름 및 차원 파라미터에 동일한 값을 지정합니다. 또한 CloudWatch에서 집계에 사용할 시작 및 종료 시간을 지정할 수도 있습니다.

예를 들어 다음 속성을 가진 DataCenterMetric 네임스페이스에 ServerStats라는 이름을 가진 서로 다른 4개의 지표를 게시한다고 가정합니다.

Dimensions: Server=Prod, Domain=Frankfurt, Unit: Count, Timestamp: 2016-10-31T12:30:00Z, Value: 105 Dimensions: Server=Beta, Domain=Frankfurt, Unit: Count, Timestamp: 2016-10-31T12:31:00Z, Value: 115 Dimensions: Server=Prod, Domain=Rio, Unit: Count, Timestamp: 2016-10-31T12:32:00Z, Value: 95 Dimensions: Server=Beta, Domain=Rio, Unit: Count, Timestamp: 2016-10-31T12:33:00Z, Value: 97

이러한 4개의 지표만 게시할 경우, 차원의 조합에 대한 통계를 검색할 수 있습니다.

  • Server=Prod,Domain=Frankfurt

  • Server=Prod,Domain=Rio

  • Server=Beta,Domain=Frankfurt

  • Server=Beta,Domain=Rio

다음 차원이 사용되거나 차원을 지정하지 않은 경우에는 통계를 검색할 수 없습니다. (단, 여러 지표에 대한 통계를 검색할 수 있는 지표 수학 SEARCH 함수를 사용하는 경우는 예외입니다. 자세한 내용은 그래프에서 검색 표현식 사용 단원을 참조하세요.)

  • Server=Prod

  • Server=Beta

  • Domain=Frankfurt

  • Domain=Rio

Resolution

각 지표는 다음 중 하나입니다.

  • 표준 분해능 - 1분 세분화 데이터

  • 고분해능 - 1초 세분화 데이터

AWS 서비스에 의해 생성되는 지표는 기본적으로 표준 분해능입니다. 사용자 지정 지표를 게시할 때는 지표를 표준 분해능 또는 고분해능으로 정의할 수 있습니다. 고분해능 지표를 게시할 경우 CloudWatch는 이 지표를 1초 분해능으로 저장합니다. 그러면 사용자는 1초, 5초, 10초, 30초 또는 60초의 배수 기간으로 지표를 읽고 검색할 수 있습니다.

고분해능 지표는 애플리케이션의 단기(1분 미만) 활동을 보다 즉각적으로 관찰할 수 있게 해줍니다. 사용자 지정 지표에 대해 PutMetricData를 호출할 때마다 요금이 부과되며, 따라서 고분해능 지표에 대해 PutMetricData를 자주 호출할수록 요금이 증가할 수 있다는 점에 유의하십시오. CloudWatch 요금에 대한 자세한 내용은 Amazon CloudWatch 요금을 참조하세요.

고분해능 지표에 대해 경보를 설정할 경우 고분해능 경보를 10초 또는 30초 기간으로 지정하거나 60초의 배수 기간으로 정기 경보를 설정할 수 있습니다. 10초 또는 30초 기간의 고분해능 경보는 요금이 더 비쌉니다.

Statistics

통계는 지정한 기간에 걸친 지표 데이터 집계입니다. CloudWatch는 사용자 지정 데이터가 제공하거나 다른 AWS 서비스가 CloudWatch에 제공한 지표 데이터 요소를 기반으로 통계를 제공합니다. 집계는 네임스페이스, 지표 이름, 차원 및 데이터 요소 측정 단위를 사용하여 지정한 기간에 대해 수행됩니다.

CloudWatch에서 지원하는 통계에 대한 자세한 정의는 CloudWatch 통계 정의 단원을 참조하세요.

Units

각각의 통계는 측정 단위를 가지고 있습니다. 단위로는 Bytes, Seconds, CountPercent가 있습니다. CloudWatch에서 지원하는 단위의 전체 목록은 Amazon CloudWatch API 참조MetricDatum 데이터 유형을 참조하세요.

사용자 지정 지표를 만들 때 단위를 지정할 수도 있습니다. 단위를 지정하지 않을 경우 CloudWatch는 None을 단위로 사용합니다. 단위를 사용하면 데이터에 개념적 의미를 더할 수 있습니다. CloudWatch는 내부적으로 단위에 의미를 부여하지 않지만 다른 애플리케이션은 단위를 기반으로 의미 정보를 도출할 수 있습니다.

측정 단위를 지정하는 지표 데이터 요소들은 개별적으로 집계됩니다. 단위를 지정하지 않고 통계를 구하는 경우 CloudWatch는 동일한 단위의 데이터 요소를 모두 함께 집계합니다. 단위만 다른 동일한 지표가 두 개 있는 경우에는 각 단위에 대해 하나씩, 개별 데이터 스트림 두 개가 반환됩니다.

Periods

‘기간’은 특정 Amazon CloudWatch 통계와 연관된 시간의 길이입니다. 각 통계는 지정한 기간에 대해 수집된 지표 데이터의 집계를 나타냅니다. 기간은 초 단위로 정의되며, 유효한 기간 값은 1, 5, 10, 30 또는 60의 배수입니다. 예를 들어 6분의 기간을 지정하려면 기간 값으로 360을 사용합니다. 기간을 변경하여 데이터가 집계되는 방식을 조정할 수 있습니다. 기간은 최소 1초에서 최대 1일(86,400초)일 수 있습니다. 기본 값은 60초입니다.

저장 분해능 1초를 사용하여 정의한 사용자 지정 지표만 1분 미만 기간을 지원합니다. 콘솔에서는 항상 60 미만의 기간을 설정할 수 있지만 지표가 저장되는 방식과 일치하도록 기간을 선택해야 합니다. 1분 미만 기간을 지원하는 지표에 대한 자세한 내용은 고분해능 지표 단원을 참조하십시오.

통계를 검색할 때 기간, 시작 시간, 종료 시간을 지정할 수 있습니다. 이들 파라미터는 통계와 연관된 전체 기간을 결정합니다. 시작 시간과 종료 시간은 지난 1시간 동안의 통계를 얻을 수 있도록 기본 설정되어 있습니다. 시작 시간 및 종료 시간에 지정하는 값에 따라 CloudWatch가 반환하는 기간이 결정됩니다. 예를 들어 기간, 시작 시간 및 종료 시간에 대한 기본값을 사용해 통계를 검색하면 전 시간 동안 1분마다 집계된 통계값들이 반환됩니다. 10분 단위로 집계된 통계를 선호할 경우에는 기간을 600으로 지정합니다. 전체 시간 동안 통계를 집계하고 싶은 경우에는 기간을 3600으로 지정합니다.

특정 시간 동안 통계가 집계되는 경우, 통계가 그 기간이 시작하는 시간으로 타임 스탬프가 추가됩니다. 예를 들어, 7:00pm에서 8:00pm에 집계된 데이터는 타임 스탬프가 7:00pm로 추가됩니다. 또한, 7:00pm와 8:00pm 사이에 집계된 데이터는 7:00pm에 표시되기 시작하며, 그렇게 집계된 데이터의 값은 CloudWatch가 해당 기간 동안 더 많은 샘플을 수집하면서 변경될 수 있습니다.

기간은 CloudWatch 경보에도 중요합니다. 특정 지표를 모니터링하도록 경보를 생성하면 CloudWatch가 해당 지표를 지정된 임계값과 비교하게 됩니다. CloudWatch가 이러한 비교를 수행하는 방식을 광범위하게 제어할 수 있습니다. 비교 작업이 수행되는 기간을 지정할 수 있을 뿐 아니라, 결론에 도달하기까지 사용되는 평가 기간의 수를 지정할 수 있습니다. 예를 들어 세 평가 기간을 지정하는 경우 CloudWatch는 세 데이터 요소의 기간을 비교합니다. CloudWatch는 가장 오래된 데이터 요소가 위반이고 다른 데이터 요소가 위반 또는 누락인 경우에만 이를 알려 줍니다. 지표를 계속해서 내보낸 경우 CloudWatch는 세 개의 실패가 발견될 때까지 이를 알리지 않습니다.

Aggregation

Amazon CloudWatch는 통계 검색 시 지정한 기간에 따라 통계를 집계합니다. 동일하거나 유사한 타임스탬프를 사용하여 데이터 요소를 원하는 만큼 게시할 수 있습니다. CloudWatch는 지정된 기간에 따라 데이터 요소를 집계합니다. CloudWatch는 리전 전체에서 데이터를 자동으로 집계하지 않습니다. 그러나 지표 수학을 사용하여 다양한 리전의 지표를 집계할 수 있습니다.

동일한 타임스탬프뿐만 아니라 동일한 네임스페이스 및 차원을 공유하는 지표에 대한 데이터 요소를 게시할 수 있습니다. CloudWatch는 이러한 데이터 요소에 대해 통계를 집계해 반환합니다. 또한 타임스탬프에 상관 없이 동일하거나 다른 지표에 대한 여러 데이터 요소를 게시할 수도 있습니다.

대량의 데이터 세트에서는 통계 세트라는 사전 집계된 데이터 세트를 삽입할 수 있습니다. 통계 집합을 사용하면 CloudWatch에 여러 데이터 요소의 Min, Max, Sum, SampleCount를 제공할 수 있습니다. 통계 세트는 1분에 여러 번 데이터를 수집해야 하는 경우 일반적으로 사용됩니다. 예를 들어 웹 페이지의 요청 지연 시간에 대한 지표가 있다고 가정해 보겠습니다. 웹 페이지 방문 시 데이터를 게시하는 것은 적절하지 않습니다. 해당 웹 페이지에 대한 모든 방문의 대기 시간을 수집하고 1분에 한 번씩 이러한 데이터를 집계하여 해당 통계 집합을 CloudWatch에 전송하는 것이 좋습니다.

Amazon CloudWatch는 지표의 소스를 구별하지 않습니다. 소스가 다르지만 네임스페이스 및 차원이 동일한 지표를 게시하는 경우 CloudWatch는 이 지표를 단일 지표로 처리합니다. 이는 확장된 분산형 시스템의 서비스 지표에 유용할 수 있습니다. 예를 들어 웹 서버 애플리케이션의 모든 호스트가 처리 중인 요청의 대기 시간을 나타내는 동일한 지표를 게시할 수 있습니다. CloudWatch는 이러한 지표를 단일 지표로 처리하므로 애플리케이션 전체의 모든 요청에 ​​대한 최솟값, 최댓값, 평균, 합계 등의 통계를 얻을 수 있습니다.

Percentiles

백분위수는 데이터 세트에서 값의 상대적 위치를 나타냅니다. 예를 들어 95 백분위는 데이터의 95%가 이 값보다 아래에 있고 5%가 이 값보다 위에 있다는 것을 의미합니다. 백분위수는 지표 데이터의 분포를 정확하게 이해하는 데 도움이 됩니다.

백분위 수는 종종 이상치를 격리하는 데 사용됩니다. 일반적인 분포에서 데이터의 95%는 평균값으로부터 2 표준 편차 내에 있으며, 데이터의 99.7%는 평균값으로부터 3 표준 편차 내에 있습니다. 3 표준 편차 밖에 있는 데이터는 평균값에서 크게 벗어나 있다는 점에서 종종 이상치로 간주됩니다. 예를 들어 뛰어난 고객 경험을 보장하기 위해 EC2 인스턴스의 CPU 사용률을 모니터링하고 있다고 가정합니다. 평균값을 모니터링하면 이상치가 감춰질 수 있습니다. 최대값을 모니터링하면 단 하나의 이상치로도 결과가 잘못될 수 있습니다. 백분위수를 사용하면 CPU 사용률에 대한 95 백분위를 모니터링하여 비정상적으로 부하가 많은 인스턴스를 확인할 수 있습니다.

일부 CloudWatch 지표는 백분위수를 통계로 지원합니다. 이러한 지표의 경우 다른 CloudWatch 통계(평균, 최솟값, 최댓값, 합계)를 사용할 때와 마찬가지로 백분위수를 사용하여 시스템 및 애플리케이션을 모니터링할 수 있습니다. 예를 들어 경보를 생성할 때 통계 함수로 백분위수를 사용할 수 있습니다. 백분위수를 소수점 이하 10자리까지 지정할 수 있습니다(예: p95.0123456789).

사용자 지정 지표에 대해 요약되지 않은 원시 데이터 요소를 게시하는 경우 사용자 지정 지표에 백분위수 통계를 사용할 수 있습니다. 지표 값에 음수 값이 포함된 지표에서는 백분위수 통계를 사용할 수 없습니다.

CloudWatch가 백분위수를 계산하려면 원시 데이터 요소가 필요합니다. 대신 통계 세트를 사용해 데이터를 게시하면 아래 조건 중 하나가 true인 경우에만 이 데이터에 대한 백분위수 통계를 검색할 수 있습니다.

  • 통계 세트의 SampleCount 값은 1이고 Min, Max 및 Sum은 모두 같습니다.

  • Min과 Max는 같고 Sum은 Min에 SampleCount를 곱한 값과 같습니다.

다음 AWS 서비스에는 백분위수 통계를 지원하는 지표가 포함되어 있습니다.

  • API Gateway

  • Application Load Balancer

  • Amazon EC2

  • Elastic Load Balancing

  • Kinesis

  • Amazon RDS

또한 CloudWatch는 백분위수와 비슷한 용도로 사용할 수 있는 절사 평균 및 기타 성능 통계도 지원합니다. 자세한 내용은 CloudWatch 통계 정의 단원을 참조하세요.

Alarms

경보를 사용하여 작업을 자동으로 시작할 수 있습니다. 경보는 지정한 기간에 단일 지표를 감시하고 시간에 따른 임계값에 대한 지표 값을 기준으로 지정된 작업을 하나 이상 수행합니다. 이 작업은 Amazon SNS 주제 또는 Auto Scaling 정책에 전송되는 알림입니다. 대시보드에 경보를 추가할 수도 있습니다.

경보는 지속적인 상태 변경에 대해서만 작업을 호출합니다. CloudWatch 경보는 단순히 특정 상태에 있다고 해서 작업을 호출하지 않습니다. 상태가 변경되어 지정된 기간 수 동안 유지되어야 합니다.

경보를 생성할 때 지표의 분해능 이상인 경보 모니터링 기간을 선택합니다. 예를 들어 Amazon EC2에 대한 기본 모니터링은 5분마다 인스턴스에 대한 지표를 제공합니다. 기본 모니터링 지표에 대한 경보 설정 시 기간을 300초(5분) 이상으로 선택합니다. Amazon EC2에 대한 세부 모니터링은 1분의 분해능으로 인스턴스에 대한 지표를 제공합니다. 세부 모니터링 지표에 대한 경보 설정 시 기간을 60초(1분) 이상으로 선택합니다.

고분해능 지표에 대해 경보를 설정할 경우 고분해능 경보를 10초 또는 30초 기간으로 지정하거나 60초의 배수 기간으로 정기 경보를 설정할 수 있습니다. 고분해능 경보는 요금이 더 비쌉니다. 고분해능 지표에 대한 자세한 내용은 사용자 지정 지표 게시 단원을 참조하십시오.

자세한 내용은 Amazon CloudWatch 경보 사용그래프의 지표에서 경보 생성 단원을 참조하세요.