Amazon CloudWatch
사용 설명서

Amazon CloudWatch 개념

다음 용어와 개념은 Amazon CloudWatch의 이해와 사용에 매우 중요합니다.

네임스페이스

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

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

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

지표

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

AWS 서비스는 CloudWatch에 지표를 전송하기 때문에 사용자가 자체적으로 지정한 지표를 CloudWatch에 전송할 수 있습니다. 데이터 요소는 순서에 상관 없이 추가할 수 있습니다. 이러한 데이터 요소에 대한 통계를 정렬된 시계열 집합으로 검색할 수 있습니다.

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

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

자세한 내용은 얻을 수 있는 지표 보기사용자 지정 메트릭 게시 단원을 참조하십시오.

타임스탬프

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

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

CloudWatch 경보는 UTC로 된 현재 시간을 기준으로 지표를 확인합니다. 사용자 지정 지표가 현재 UTC 시간이 아닌 타임스탬프로 CloudWatch로 전송되면 경보에 데이터 부족 상태가 표시되나 경보가 지연되는 결과가 초래될 수 있습니다.

지표 보존 기간

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

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

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

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

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

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

CloudWatch는 2016년 7월 9일부터 5분 및 1시간 지표 데이터를 보존하기 시작했습니다.

차원

차원은 지표의 자격 증명에 속하는 이름/값 페어입니다. 각 지표에 차원을 최대 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

다음 차원이 사용되거나 차원을 지정하지 않은 경우에는 통계를 검색할 수 없습니다.

  • Server=Prod

  • Server=Beta

  • Domain=Frankfurt

  • Domain=Rio

통계

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

통계 설명
Minimum

지정된 기간 중 관찰된 가장 낮은 값입니다. 이 값을 사용하여 애플리케이션에 대한 낮은 볼륨의 활동을 확인할 수 있습니다.

Maximum

지정된 기간 중 관찰된 가장 높은 값입니다. 이 값을 사용하여 애플리케이션에 대한 높은 볼륨의 활동을 확인할 수 있습니다.

Sum

일치하는 지표에 대해 제출된 모든 값이 서로 더해진 값입니다. 이 통계는 지표의 총 볼륨을 확인할 때 유용할 수 있습니다.

Average

지정된 기간 중 Sum/SampleCount의 값입니다. 이 통계를 MinimumMaximum과 비교하면 지표의 전체 범위와 평균 사용량이 MinimumMaximum에 얼마나 근접했는지 확인할 수 있습니다. 이와 같은 비교를 통해 필요에 따라 리소스를 늘리거나 줄어야 하는 시점을 파악할 수 있습니다.

SampleCount

통계 계산에 사용된 데이터 요소의 수(숫자)입니다.

pNN.NN

지정된 백분위 수의 값. 소수점 두 자리까지 사용하여 백분위 수를 지정할 수 있습니다(예: p95.45). 음수 값이 포함된 지표에서는 백분위수 통계를 사용할 수 없습니다. 자세한 내용은 백분위수 단원을 참조하십시오.

사전 산출된 통계값을 추가할 수 있습니다. 데이터 요소 값 대신 SampleCount, Minimum, MaximumSum에 대한 값을 지정합니다. CloudWatch에서는 대신 평균을 계산합니다. 이러한 방식으로 추가된 값은 일치하는 지표와 연결된 다른 모든 값과 함께 집계됩니다.

단위

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

사용자 지정 지표를 만들 때 단위를 지정할 수도 있습니다. 단위를 지정하지 않을 경우 CloudWatch는 None을 단위로 사용합니다. 단위를 사용하면 데이터에 개념적 의미를 더할 수 있습니다. CloudWatch에서는 단위가 내부적으로 크게 중요하지 않지만 기타 애플리케이션에서는 선택한 단위를 기반으로 의미 있는 정보를 추출할 수 있습니다.

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

기간

기간은 특정 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는 세 번 실패가 발견될 때까지 이를 알리지 않습니다.

집계

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

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

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

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

백분위수

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

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

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

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

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

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

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

경보

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

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

경보를 만들 때 지표를 모니터링할 빈도와 동일하거나 더 긴 기간을 선택합니다. 예를 들어 Amazon EC2에 대한 기본 모니터링은 5분마다 인스턴스에 지표를 제공합니다. 기본 모니터링 지표에 대한 경보 설정 시 기간을 300초(5분) 이상으로 선택합니다. Amazon EC2에 대한 세부 모니터링은 1분마다 인스턴스에 지표를 제공합니다. 세부 모니터링 지표에 대한 경보 설정 시 기간을 60초(1분) 이상으로 선택합니다.

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

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