Amazon CloudWatch 경보 사용 - Amazon CloudWatch

Amazon CloudWatch 경보 사용

Amazon CloudWatch에서 지표 경보복합 경보를 생성할 수 있습니다.

  • 지표 경보는 단일 CloudWatch 지표를 감시하거나 CloudWatch 지표를 기반으로 하는 수학 표현식의 결과를 감시합니다. 이러한 경보는 여러 기간에 대해 지정된 임곗값과 지표 또는 표현식의 값 비교하여 하나 이상의 작업을 수행합니다. 작업은 Amazon SNS 주제에 알림을 전송하거나, Amazon EC2 작업 또는 Amazon EC2 Auto Scaling 작업을 수행하거나, Systems Manager에서 OpsItem 또는 인시던트를 생성하는 것일 수 있습니다.

  • 복합 경보에는 사용자가 생성한 다른 경보의 경보 상태를 고려하는 규칙 표현식이 포함됩니다. 복합 경보는 규칙의 모든 조건이 충족되는 경우에만 ALARM 상태로 전환됩니다. 복합 경보의 규칙 표현식에 지정된 경보에는 지표 경보 및 기타 복합 경보가 포함될 수 있습니다.

    복합 경보를 사용하면 경보 노이즈를 줄일 수 있습니다. 여러 지표 경보를 생성할 수 있으며, 복합 경보를 생성하고 복합 경보에 대해서만 경보를 설정할 수도 있습니다. 예를 들어 모든 기본 지표 경보가 ALARM 상태인 경우에만 복합 경보가 ALARM 상태로 전환되도록 할 수 있습니다.

    복합 경보는 경보 상태가 변경될 때 Amazon SNS 알림을 전송할 수 있고 경보가 ALARM 상태가 될 때 Systems Manager OpsItem 또는 인시던트를 생성할 수 있지만, EC2 작업 또는 Auto Scaling 작업을 수행할 수는 없습니다.

참고

AWS 계정에서 원하는 만큼 경보를 생성할 수 있습니다.

대시보드에 경보를 추가할 수 있으므로 여러 리전에 걸쳐 AWS 리소스 및 애플리케이션에 대한 경보를 모니터링하고 수신할 수 있습니다. 대시보드에 경보를 추가하면 경보가 INSUFFICIENT_DATA 상태인 경우 회색으로, ALARM 상태인 경우 빨간색으로 바뀝니다. 경보가 OK 상태인 경우 색상이 표시되지 않습니다.

CloudWatch 콘솔 탐색 창의 즐겨찾기 및 최근 항목(Favorites and recents) 옵션에서 최근에 방문한 경보를 즐겨찾기에 추가할 수도 있습니다. 즐겨찾기 및 최근 항목(Favorites and recents) 옵션에는 즐겨 찾는 경보 및 최근에 방문한 경보에 대한 열이 있습니다.

경보는 경보 상태가 변경될 때만 작업을 호출합니다. 단, Auto Scaling 작업이 있는 경보는 예외입니다. Auto Scaling 작업의 경우 경보는 분당 한 번씩 계속해서 경보가 새 상태로 유지되는 작업을 호출합니다.

경보는 동일한 계정의 지표를 감시할 수 있습니다. CloudWatch 콘솔에서 교차 계정 기능을 사용 설정한 경우 다른 AWS 계정의 지표를 감시하는 경보를 생성할 수도 있습니다. 교차 계정 복합 경보 생성은 지원되지 않습니다. ANOMALY_DETECTION_BAND, INSIGHT_RULESERVICE_QUOTA 함수가 교차 계정 경보에 대해 지원되지 않는다는 점을 제외하고 수학 표현식을 사용하는 교차 계정 경보 생성이 지원됩니다.

참고

CloudWatch는 지정된 작업을 테스트하거나 검증하지 않으며 존재하지 않은 작업을 호출하려는 시도로 인해 발생하는 Amazon EC2 Auto Scaling 또는 Amazon SNS 오류를 감지하지도 않습니다. 경보 작업이 존재하는지 확인하십시오.

지표 경보 상태

지표 경보에는 다음과 같은 상태가 있을 수 있습니다.

  • OK – 지표 또는 표현식이 정의된 임곗값 내에 있습니다.

  • ALARM – 지표 또는 표현식이 정의된 임곗값을 벗어났습니다.

  • INSUFFICIENT_DATA – 경보가 방금 시작되었거나 지표를 사용할 수 없거나 지표에서 경보 상태를 결정하는 데 사용할 수 있는 데이터가 충분하지 않습니다.

경보 평가

경보를 생성할 때 다음과 같은 세 가지 설정을 지정하여 CloudWatch가 경보 상태를 변경할 시기를 평가할 수 있도록 합니다.

  • 기간은 경보에 대해 개별 데이터 포인트를 생성하기 위해 지표 또는 표현식을 평가하는 기간입니다. 초로 표시됩니다.

  • [평가 기간(Evaluation Periods)]은 경보 상태를 결정할 때 평가할 가장 최근의 기간 또는 데이터 요소의 수입니다.

  • 경보에 대한 데이터 요소(Datapoints to Alarm)는 평가 기간 내에 경보가 ALARM 상태에 도달하게 만드는 위반 데이터 요소의 수입니다. 위반 데이터 포인트가 연속적일 필요는 없지만, 평가 기간(Evaluation Period)과 동일한 마지막 데이터 포인트 수 이내여야 합니다.

1분 이상인 기간의 경우 경보는 1분마다 평가되며 평가는 기간평가 기간에 정의된 기간을 기준으로 합니다. 예를 들어 기간이 5분(300초)이고 평가 기간이 1인 경우 5분이 끝날 때 1분에서 5분까지의 데이터를 기반으로 경보가 평가됩니다. 그런 다음 6분이 끝나면 2분에서 6분까지의 데이터를 기반으로 경보를 평가합니다.

경보 기간이 10초 또는 30초인 경우 경보는 10초마다 평가됩니다.

다음 그림에서 지표 경보에 대한 경보 임곗값은 3개 단위로 설정됩니다. [평가 기간(Evaluation Period)]과 [경보에 대한 데이터 요소(Datapoints to Alarm)]가 둘 다 3입니다. 즉, 가장 최근의 연속된 세 기간에서 기존 데이터 요소가 모두 임곗값을 초과하면 경보가 ALARM 상태가 됩니다. 그림에서는 기간 3에서 6 사이에 이러한 일이 발생합니다. 기간 6에서는 값이 임곗값 아래로 떨어지므로 평가 대상 기간 중 하나가 위반 상태가 아닙니다. 따라서 경보 상태가 다시 OK로 변경됩니다. 9번째 기간에 다시 한 번 임곗값이 위반되지만, 오직 하나의 기간 동안에만 그렇습니다. 결과적으로 경보 상태는 OK로 남아 있습니다.

경보 임곗값이 경보 트리거

[평가 기간(Evaluation Period)]과 [경보에 대한 데이터 요소(Datapoints to Alarm)]를 다른 값으로 구성하는 경우 이는 ‘M out of N(N 중 M)’ 경보를 설정한 것입니다. [경보에 대한 데이터 요소(Datapoints to Alarm)]가 (‘M’)이고 [평가 기간(Evaluation Periods)]은 (‘N’)입니다. 평가 간격은 평가 기간에 기간 길이를 곱한 값입니다. 예를 들어, 1분 기간으로 5개의 데이터 포인트 중 4개를 구성하는 경우 평가 간격은 5분입니다. 10분의 기간으로 3개의 데이터 포인트 중 3개를 구성하는 경우 평가 간격은 30분입니다.

참고

경보를 생성한 직후 데이터 요소가 누락되고 경보를 생성하기 전에 지표가 CloudWatch에 보고된 경우 CloudWatch는 경보를 평가할 때 경보가 생성되기 전부터 가장 최근의 데이터 요소를 검색합니다.

경보 작업

경보 상태가 OK, ALARM, INSUFFICIENT_DATA 간에 변경될 때 경보가 수행하는 작업을 지정할 수 있습니다.

세 가지 상태 각각으로 전환하기 위한 대부분의 작업을 설정할 수 있습니다. Auto Scaling 작업을 제외한 모든 작업은 상태 전환 시에만 수행되며 상태가 몇 시간 또는 며칠 동안 지속되는 경우 다시 수행되지 않습니다. 임곗값이 위반되면 경보가 이메일을 보내고 위반 조건이 끝나면 또 다른 작업을 보내는 여러 작업이 허용된다는 사실을 활용할 수 있습니다. 이를 통해 규모 조정 또는 복구 작업이 예상한 시점에 트리거되고 원하는 대로 작동하는지 확인할 수 있습니다.

다음이 경보 작업으로 지원됩니다.

  • Amazon Simple Notification Service 주제를 사용하여 한 명 이상의 구독자에게 알립니다. 구독자는 개인일 뿐만 아니라 애플리케이션일 수도 있습니다. Amazon SNS에 대한 자세한 내용은 Amazon SNS란 무엇인가요? 단원을 참조하세요.

  • Lambda 함수를 간접적으로 호출합니다. 이는 경보 상태 변경에 대한 사용자 지정 작업을 자동화하는 가장 쉬운 방법입니다.

  • EC2 지표를 기반으로 하는 경보는 EC2 인스턴스 중지, 종료, 재부팅 또는 복구와 같은 EC2 작업을 수행할 수도 있습니다. 자세한 내용은 EC2 인스턴스를 중지, 종료, 재부팅 또는 복구하는 경보 생성 단원을 참조하십시오.

  • 경보는 오토 스케일링의 규모를 조정하는 작업을 수행할 수 있습니다. 자세한 내용은 Amazon EC2 Auto Scaling의 단계 및 단순 크기 조정 정책 단원을 참조하세요.

  • 경보는 Systems Manager Ops Center에서 OpsItem을 생성하거나 AWS Systems Manager Incident Manager에서 인시던트를 생성할 수 있습니다. 이러한 작업은 경보가 ALARM 상태가 될 때만 수행됩니다. 자세한 내용은 경보에서 OpsItem을 생성하도록 CloudWatch 구성인시던트 생성 단원을 참조하세요.

Lambda 경보 작업

CloudWatch 경보는 주어진 상태 변경에 대해 Lambda 함수의 비동기 호출을 보장합니다. 단, 다음과 같은 경우는 예외입니다.

  • 함수가 존재하지 않는 경우.

  • CloudWatch가 Lambda 함수를 호출할 권한이 없는 경우.

CloudWatch가 Lambda 서비스에 연결할 수 없거나 다른 이유로 메시지가 거부된 경우, CloudWatch는 호출이 성공할 때까지 재시도합니다. Lambda는 메시지를 대기열에 추가하여 실행 재시도를 처리합니다. Lambda가 오류를 처리하는 방법에 대한 정보 등 이 실행 모델에 대한 자세한 내용은 AWS Lambda 개발자 안내서의 비동기 호출을 참조하세요.

동일한 계정이나 다른 AWS 계정에서 Lambda 함수를 호출할 수 있습니다.

Lambda 함수를 경보 작업으로 간접적으로 호출하도록 경보를 지정하는 경우 함수 이름, 함수 별칭 또는 특정 버전의 함수를 지정하도록 선택할 수 있습니다.

Lambda 함수를 경보 작업으로 지정할 때 CloudWatch 서비스 보안 주체가 함수를 호출할 수 있도록 함수에 대한 리소스 정책을 생성해야 합니다.

이를 수행하는 한 가지 방법은 다음 예제와 같이 AWS CLI를 사용하는 것입니다.

aws lambda add-permission \ --function-name my-function-name \ --statement-id AlarmAction \ --action 'lambda:InvokeFunction' \ --principal lambda.alarms.cloudwatch.amazonaws.com \ --source-account 111122223333 \ --source-arn arn:aws:cloudwatch:us-east-1:111122223333:alarm:alarm-name

또는 다음 예제 중 하나와 비슷한 정책을 생성한 다음, 함수에 할당할 수 있습니다.

다음 예제에서는 경보가 있는 계정을 지정하여 해당 계정(111122223333)의 경보만 함수를 간접적으로 호출할 수 있도록 합니다.

{ "Version": "2012-10-17", "Id": "default", "Statement": [{ "Sid": "AlarmAction", "Effect": "Allow", "Principal": { "Service": "lambda.alarms.cloudwatch.amazonaws.com" }, "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:us-east-1:444455556666:function:function-name", "Condition": { "StringEquals": { "AWS:SourceAccount": "111122223333" } } }] }

다음 예제는 범위가 좁아 지정된 계정의 지정된 경보만 함수를 간접적으로 호출할 수 있습니다.

{ "Version": "2012-10-17", "Id": "default", "Statement": [ { "Sid": "AlarmAction", "Effect": "Allow", "Principal": { "Service": "lambda.alarms.cloudwatch.amazonaws.com" }, "Action": "lambda:InvokeFunction", "Resource": "arn:aws:lambda:us-east-1:444455556666:function:function-name", "Condition": { "StringEquals": { "AWS:SourceAccount": "111122223333", "AWS:SourceArn": "arn:aws:cloudwatch:us-east-1:111122223333:alarm:alarm-name" } } }] }

소스 계정을 지정하지 않는 정책은 혼동된 대리자 문제에 취약하므로 이러한 정책은 생성하지 않는 것이 좋습니다.

CloudWatch에서 Lambda로 전송된 이벤트 객체

Lambda 함수를 경보 작업으로 구성하면 CloudWatch는 함수를 간접적으로 호출할 때 Lambda 함수에 JSON 페이로드를 전송합니다. 이 JSON 페이로드는 함수의 이벤트 객체 역할을 합니다. 이 JSON 객체에서 데이터를 추출하여 함수에 사용할 수 있습니다. 다음은 지표 경보의 이벤트 객체에 대한 예제입니다.

{ 'source': 'aws.cloudwatch', 'alarmArn': 'arn:aws:cloudwatch:us-east-1:444455556666:alarm:lambda-demo-metric-alarm', 'accountId': '444455556666', 'time': '2023-08-04T12:36:15.490+0000', 'region': 'us-east-1', 'alarmData': { 'alarmName': 'lambda-demo-metric-alarm', 'state': { 'value': 'ALARM', 'reason': 'test', 'timestamp': '2023-08-04T12:36:15.490+0000' }, 'previousState': { 'value': 'INSUFFICIENT_DATA', 'reason': 'Insufficient Data: 5 datapoints were unknown.', 'reasonData': '{"version":"1.0","queryDate":"2023-08-04T12:31:29.591+0000","statistic":"Average","period":60,"recentDatapoints":[],"threshold":5.0,"evaluatedDatapoints":[{"timestamp":"2023-08-04T12:30:00.000+0000"},{"timestamp":"2023-08-04T12:29:00.000+0000"},{"timestamp":"2023-08-04T12:28:00.000+0000"},{"timestamp":"2023-08-04T12:27:00.000+0000"},{"timestamp":"2023-08-04T12:26:00.000+0000"}]}', 'timestamp': '2023-08-04T12:31:29.595+0000' }, 'configuration': { 'description': 'Metric Alarm to test Lambda actions', 'metrics': [ { 'id': '1234e046-06f0-a3da-9534-EXAMPLEe4c', 'metricStat': { 'metric': { 'namespace': 'AWS/Logs', 'name': 'CallCount', 'dimensions': { 'InstanceId': 'i-12345678' } }, 'period': 60, 'stat': 'Average', 'unit': 'Percent' }, 'returnData': True } ] } } }

다음은 복합 경보의 이벤트 객체에 대한 예제입니다.

{ 'source': 'aws.cloudwatch', 'alarmArn': 'arn:aws:cloudwatch:us-east-1:111122223333:alarm:SuppressionDemo.Main', 'accountId': '111122223333', 'time': '2023-08-04T12:56:46.138+0000', 'region': 'us-east-1', 'alarmData': { 'alarmName': 'CompositeDemo.Main', 'state': { 'value': 'ALARM', 'reason': 'arn:aws:cloudwatch:us-east-1:111122223333:alarm:CompositeDemo.FirstChild transitioned to ALARM at Friday 04 August, 2023 12:54:46 UTC', 'reasonData': '{"triggeringAlarms":[{"arn":"arn:aws:cloudwatch:us-east-1:111122223333:alarm:CompositeDemo.FirstChild","state":{"value":"ALARM","timestamp":"2023-08-04T12:54:46.138+0000"}}]}', 'timestamp': '2023-08-04T12:56:46.138+0000' }, 'previousState': { 'value': 'ALARM', 'reason': 'arn:aws:cloudwatch:us-east-1:111122223333:alarm:CompositeDemo.FirstChild transitioned to ALARM at Friday 04 August, 2023 12:54:46 UTC', 'reasonData': '{"triggeringAlarms":[{"arn":"arn:aws:cloudwatch:us-east-1:111122223333:alarm:CompositeDemo.FirstChild","state":{"value":"ALARM","timestamp":"2023-08-04T12:54:46.138+0000"}}]}', 'timestamp': '2023-08-04T12:54:46.138+0000', 'actionsSuppressedBy': 'WaitPeriod', 'actionsSuppressedReason': 'Actions suppressed by WaitPeriod' }, 'configuration': { 'alarmRule': 'ALARM(CompositeDemo.FirstChild) OR ALARM(CompositeDemo.SecondChild)', 'actionsSuppressor': 'CompositeDemo.ActionsSuppressor', 'actionsSuppressorWaitPeriod': 120, 'actionsSuppressorExtensionPeriod': 180 } } }

CloudWatch 경보가 누락 데이터를 처리하는 방법 구성

때로 지표에 대해 예상되는 데이터 요소의 일부가 CloudWatch에 보고되지 않는 경우도 있습니다. 연결이 끊기거나 서버가 정지할 때, 설계에 따라 지표 보고 데이터가 간헐적으로만 전송될 때 이런 일이 일어날 수 있습니다.

CloudWatch를 사용하면 경보를 평가할 때 누락된 데이터 요소를 처리하는 방법을 지정할 수 있습니다. 이렇게 하면 모니터링 중인 데이터 유형에 적합한 경우에만 ALARM 상태가 되도록 경보를 구성할 수 있습니다. 누락된 데이터에 문제가 없는 경우의 거짓 긍정을 피할 수 있습니다.

각 경보가 항상 세 가지 상태 중 하나인 것과 마찬가지로 CloudWatch에 보고된 각각의 특정 데이터 요소는 다음과 같은 세 범주 중 하나에 속합니다.

  • 위반하지 않음(임곗값에서)

  • 위반(임곗값 위반)

  • 누락됨

각 경보에 대해 CloudWatch가 누락된 데이터 요소를 다음 중 하나로 처리하도록 지정할 수 있습니다.

  • notBreaching – 누락 데이터 요소를 ‘양호’하고 임곗값 내에 있는 것으로 처리합니다.

  • breaching - 누락 데이터 요소를 ‘불량’하고 임곗값을 위반한 것으로 처리합니다

  • ignore - 현재 경보 상태를 유지합니다.

  • missing - 경보 평가 범위의 모든 데이터 요소가 누락된 경우 경보를 INSUFFICIENT_DATA 상태로 전환합니다.

가장 좋은 선택은 지표 유형과 경보 용도에 따라 다릅니다. 예를 들어 데이터를 지속적으로 보고하는 지표를 사용하여 애플리케이션 롤백 경보를 생성하는 경우 누락된 데이터 포인트는 문제를 나타낼 수 있으므로 위반으로 처리하는 것이 좋습니다. 그러나 Amazon DynamoDB의 ThrottledRequests와 같이 오류가 발생할 때만 데이터 요소를 생성하는 지표의 경우 누락 데이터를 notBreaching으로 처리할 수 있습니다. 기본값은 missing입니다.

중요

Amazon EC2 지표에 구성된 경보는 누락된 지표 데이터 포인트가 있는 경우 일시적으로 INSUFICITENT_DATA 상태로 전환될 수 있습니다. 드물기는 하지만, Amazon EC2 인스턴스가 정상인 경우에도 지표 보고가 중단되면 이 문제가 발생할 수 있습니다. 중지, 종료, 재부팅 또는 복구 작업을 수행하도록 구성된 Amazon EC2 지표에 대한 경보의 경우 누락된 데이터를 missing으로 처리하고 경보 상태일 때만 해당 경보를 트리거하도록 경보를 구성하는 것이 좋습니다.

경보에 대한 최상의 옵션을 선택하면 불필요하고 오해의 소지가 있는 경보 조건 변경을 막을 수 있으며, 시스템 상태를 보다 정확하게 나타낼 수 있습니다.

중요

누락된 데이터를 처리하는 방법에 대해 다른 옵션을 선택하더라도 AWS/DynamoDB 네임스페이스에서 메트릭을 평가하는 경보는 항상 누락된 데이터를 무시합니다. AWS/DynamoDB 메트릭에 누락된 데이터가 있는 경우 해당 지표를 평가하는 경보는 현재 상태를 유지합니다.

데이터가 누락되었을 때 경보 상태 평가 방법

경보가 상태 변경 여부를 평가할 때마다 CloudWatch는 [평가 기간(Evaluation Periods)]으로 지정된 수보다 더 높은 수의 데이터 요소를 검색하려고 합니다. 검색을 시도하는 데이터 포인트의 정확한 수는 경보 기간의 길이, 표준 해상도 또는 고해상도 지표에 토대를 두고 있는지 여부에 따라 달라집니다. 검색을 시도하는 데이터 포인트의 기간이 평가 범위입니다.

CloudWatch가 이러한 데이터 요소를 검색하면 다음과 같이 진행됩니다.

  • 평가 범위 내에 누락된 데이터 요소가 없다면 CloudWatch는 가장 최근에 수집된 데이터 요소를 기반으로 경보를 평가합니다. 평가된 데이터 요소의 수는 경보의 [평가 기간(Evaluation Periods)]과 같습니다. 평가 범위보다 훨씬 이전의 추가 데이터 요소는 필요하지 않으며 무시됩니다.

  • 평가 범위의 일부 데이터 요소가 누락되었지만 평가 범위에서 성공적으로 검색된 기존 데이터 요소의 총수가 경보의 [평가 기간(Evaluation Periods)] 이상인 경우 CloudWatch는 평가 범위보다 훨씬 이전의 필요한 추가 데이터 요소를 포함하여 성공적으로 검색된 가장 최근의 실제 데이터 요소를 기반으로 경보 상태를 평가합니다. 이 경우 누락 데이터 처리 방법에 대한 값이 필요 없으며, 이를 무시합니다.

  • 평가 범위의 일부 데이터 요소가 누락되었으며 검색된 실제 데이터 요소의 수가 경보의 [평가 기간(Evaluation Periods)] 수보다 적은 경우 CloudWatch는 누락 데이터 처리 방법에 대해 지정된 결과로 누락 데이터 요소를 채운 다음, 경보를 평가합니다. 그러나 평가 범위의 실제 데이터 요소는 모두 평가에 포함됩니다. CloudWatch는 되도록 몇 번만 누락 데이터 요소를 사용합니다.

참고

이 동작의 특정 사례에서는 CloudWatch 경보가 지표 흐름이 중지된 후 일정 기간 동안 마지막 데이터 요소 집합을 반복적으로 재평가할 수 있습니다. 이 재평가를 통해 지표 스트림 중지 직전에 상태가 변한 경우 경보가 상태를 변경하고 작업을 다시 실행할 수 있습니다. 이 동작을 완화하려면 더 짧은 기간을 사용하십시오.

다음은 경보 평가 동작에 대한 예를 설명한 테이블입니다. 첫 번째 표에서 [경보에 대한 데이터 요소(Datapoints to Alarm)]와 [평가 기간(Evaluation Periods)]은 둘 다 3입니다. CloudWatch는 가장 최근 3개의 데이터 요소 중 일부가 누락된 경우 경보를 평가할 때 가장 최근 데이터 요소 5개를 검색합니다. 5는 경보의 평가 범위입니다.

평가 범위가 5이므로 1열에는 가장 최근 데이터 요소 5개가 표시됩니다. 이러한 데이터 요소는 가장 최근 데이터 요소가 오른쪽에 표시됩니다. 0는 비위반 데이터 요소, X는 위반 데이터 요소, -는 누락 데이터 요소입니다.

2열은 필요한 데이터 요소 3개 중 누락된 개수를 표시합니다. 가장 최신 데이터 요소 5개가 평가되었더라도 경보 상태 평가를 위해 3개(Evaluation Periods(평가 기간)에 대한 설정)만 필요합니다. 2열의 데이터 요소 개수는 누락된 데이터 요소 처리 방법에 대한 설정을 사용하여 반드시 "채워야" 하는 데이터 요소의 수입니다.

3~6열의 열 머리글은 누락 데이터를 처리하는 방법으로 가능한 값입니다. 이러한 열의 행에는 누락 데이터를 처리할 수 있는 이러한 각 방법에 대해 설정된 경보 상태가 표시됩니다.

데이터 포인트 채워야 하는 데이터 요소 수 MISSING IGNORE 위반 위반하지 않음

0 - X - X

0

OK

OK

OK

OK

- - - - 0

2

OK

OK

OK

OK

- - - - -

3

INSUFFICIENT_DATA

현재 상태 유지

ALARM

OK

0 X X - X

0

ALARM

ALARM

ALARM

ALARM

- - X - -

2

ALARM

현재 상태 유지

ALARM

OK

앞 테이블의 2행에서는 누락 데이터를 위반으로 처리하는 경우에도 경보 상태는 OK로 유지됩니다. 기존 데이터 포인트 중 하나가 위반 상태가 아니며, 위반으로 처리되는 2개의 누락 데이터 포인트와 함께 이를 평가하기 때문입니다. 다음번에 이 경보를 평가할 때도 데이터가 여전히 누락된 경우 해당 비위반 데이터 요소가 더 이상 평가 범위에 있지 않기 때문에 경보는 ALARM 상태가 됩니다.

가장 최근의 데이터 요소 5개가 모두 누락된 세 번째 행은 누락 데이터 처리 방법에 대한 다양한 설정이 경보 상태에 어떻게 영향을 주는지를 보여 줍니다. 누락된 데이터 요소를 위반으로 간주하는 경우 경보는 ALARM 상태가 되지만, 비위반으로 간주하는 경우 경보는 OK 상태가 됩니다. 누락된 데이터 요소를 무시하면 경보는 누락 데이터 요소 이전의 현재 상태를 유지합니다. 그리고 누락된 데이터 요소를 단지 누락으로 간주한다면 경보에 평가를 수행하기에 충분한 최근 실제 데이터가 없으며 경보는 INSUFFICIENT_DATA 상태가 됩니다.

네 번째 행에서는 가장 최근의 데이터 요소 세 개가 위반이며 경보의 [평가 기간(Evaluation Periods)]과 [경보에 대한 데이터 요소(Datapoints to Alarm)]가 둘 다 3으로 설정되어 있으므로 경보가 모든 경우에 ALARM 상태가 됩니다. 이 경우 누락된 데이터 요소는 무시되며 누락 데이터 평가 방법에 대한 설정은 필요하지 않습니다. 평가할 실제 데이터 요소가 3개 있기 때문입니다.

5행은 ‘조기 경보 상태’라고 하는 특별한 경우의 경보 평가를 나타냅니다. 자세한 내용은 경보 상태 조기 전환 방지 단원을 참조하세요.

다음 테이블의 경우 기간은 다시 5분이며, Datapoints to Alarm(경보에 대한 데이터 포인트)는 2, Evaluation Periods(평가 기간)는 3입니다. 'N 중 M' 경보는 '3 중 2'입니다.

평가 범위는 5입니다. 이것은 검색되는 최근 데이터 포인트의 최대 수이며 일부 데이터 포인트가 누락된 경우 사용할 수 있습니다.

데이터 포인트 누락 데이터 포인트 가운데 수(#) 누락 IGNORE 위반 위반하지 않음

0 - X - X

0

ALARM

ALARM

ALARM

ALARM

0 0 X 0 X

0

ALARM

ALARM

ALARM

ALARM

0 - X - -

1

OK

OK

ALARM

OK

- - - - 0

2

OK

OK

ALARM

OK

- - - - X

2

ALARM

현재 상태 유지

ALARM

OK

1행과 2행에서는 가장 최근의 데이터 요소 3개 중 2개가 위반이므로 경보는 항상 ALARM 상태가 됩니다. 2행에서는 가장 최근 데이터 요소 3개가 누락되지 않았기 때문에 평가 범위에서 가장 오래된 두 데이터 요소가 필요하지 않으므로 오래된 이 두 데이터 요소는 무시됩니다.

3행과 4행에서는 누락된 데이터를 위반으로 처리하는 경우에만 경보가 ALARM 상태가 됩니다(여기서는 가장 최근의 누락 데이터 요소 두 개가 모두 위반으로 처리됨). 4행에서 위반으로 처리되는 이 두 누락 데이터 요소는 ALARM 상태를 트리거하는 데 필요한 위반 데이터 요소 두 개를 제공합니다.

5행은 ‘조기 경보 상태’라고 하는 특별한 경우의 경보 평가를 나타냅니다. 자세한 내용은 다음 섹션을 참조하세요.

경보 상태 조기 전환 방지

CloudWatch 경보 평가에는 데이터가 간헐적일 때 조기에 경보가 ALARM 상태가 되는 거짓 경보를 방지하기 위한 로직이 포함됩니다. 이전 단원에 있는 표의 5행에 표시된 예가 이 로직을 보여 줍니다. 해당 행과 다음 예에서 [평가 기간(Evaluation Periods)]은 3이고 평가 범위는 데이터 요소 5개입니다. [경보에 대한 데이터 요소(Datapoints to Alarm)]는 3입니다. 단, [경보에 대한 데이터 요소(Datapoints to Alarm)]가 2인 ‘M out of N(N 중 M)’ 예는 예외입니다.

경보의 가장 최근 데이터가 - - - - X이며 누락 데이터 요소 4개가 있고 가장 최근 데이터 요소로 위반 데이터 요소가 있다고 가정합니다. 다음 데이터 요소는 비위반일 수 있으므로 데이터가 - - - - X 또는 - - - X -이고 [경보에 대한 데이터 요소(Datapoints to Alarm)]가 3일 경우 경보는 즉시 ALARM 상태가 되지 않습니다. 이렇게 하면 다음 데이터 요소가 비위반이고 데이터가 - - - X O 또는 - - X - O가 되도록 하는 경우 거짓 긍정이 방지됩니다.

그러나 마지막 몇 개의 데이터 요소가 - - X - -인 경우 누락된 데이터 요소를 누락으로 처리하더라도 경보는 ALARM 상태가 됩니다. 이는 [평가 기간(Evaluation Periods)] 동안 사용 가능한 가장 오래된 위반 데이터 요소 수가 최소한 [경보에 대한 데이터 요소(Datapoints to Alarm)]의 값만큼 오래되고 더 최근의 다른 모든 데이터 요소가 위반 또는 누락인 경우 경보가 항상 ALARM 상태가 되도록 설계되었기 때문입니다. 이 경우 사용 가능한 데이터 요소의 총수가 M([경보에 대한 데이터 요소(Datapoints to Alarm)])보다 적더라도 경보는 ALARM 상태가 됩니다.

이 경보 로직은 ‘M out of N(N 중 M)’ 경보에도 적용됩니다. 평가 범위 동안 가장 오래된 위반 데이터 요소가 최소한 [경보에 대한 데이터 요소(Datapoints to Alarm)]의 값만큼 오래되고 더 최근의 모든 데이터 요소가 위반 또는 누락인 경우 경보는 M([경보에 대한 데이터 요소(Datapoints to Alarm)]) 값에 상관없이 ALARM 상태가 됩니다.

고분해능 경보

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

수학 표현식에 대한 경보

하나 이상의 CloudWatch 지표를 기반으로 하는 수학 표현식의 결과에 대한 경보를 설정할 수 있습니다. 경보에 사용되는 수학 표현식에는 지표를 10개까지 포함할 수 있습니다. 각 지표의 기간은 동일해야 합니다.

수학 표현식을 기반으로 하는 경보의 경우 누락된 데이터 포인트를 처리하는 방법을 CloudWatch에 지정할 수 있습니다. 이 경우 수학 표현식이 해당 데이터 포인트에 대한 값을 반환하지 않으면 데이터 포인트가 누락된 것으로 간주됩니다.

수학 표현식을 기반으로 하는 경보는 Amazon EC2 작업을 수행할 수 없습니다.

지표 수학 표현식 및 구문에 대한 자세한 내용은 CloudWatch 지표에 수학 표현식 사용 단원을 참조하세요.

백분위수 기반 CloudWatch 경보 및 데이터 샘플 부족

경보를 위한 통계로 백분위수를 설정하면 정확한 통계 평가를 위한 데이터가 충분하지 않을 때 어떻게 할 것인지 지정할 수 있습니다. 경보가 통계를 어떻게든 평가하도록 하고 가능하면 경보 상태를 변경하도록 선택할 수 있습니다. 또는 샘플 크기가 작을 때 경보가 지표를 무시하고 통계적으로 의미가 있을 정도로 충분한 데이터가 모일 때까지 기다렸다가 평가할 수 있습니다.

0.5(포함) ~ 1.00(제외) 범위 백분위수의 경우, 평가 기간 동안 10/(1-백분위수) 보다 적은 데이터 포인트가 있을 때 이 설정이 사용됩니다. 예를 들어 p99 백분위수에서 경보 샘플이 1,000개보다 적을 경우 이 설정이 사용됩니다. 0 ~ 0.5(제외) 범위 백분위수의 경우, 10/백분위수 보다 적은 백분위수가 있을 때 이 설정이 사용됩니다.

CloudWatch 경보의 공통 기능

다음 기능은 모든 CloudWatch 경보에 적용됩니다.

  • 생성할 수 있는 경보 수에는 제한이 없습니다. 경보를 생성하거나 업데이트하려면 CloudWatch 콘솔, PutMetricAlarm API 작업 또는 AWS CLI의 put-metric-alarm 명령을 사용합니다.

  • 경보 이름은 UTF-8 문자만 포함해야 하고 ASCII 제어 문자를 포함할 수 없습니다.

  • CloudWatch 콘솔, DescribeAlarms API 작업 또는 AWS CLI의 describe-alarms 명령을 사용하여 현재 구성된 경보의 일부 또는 전체를 나열하고 특정 상태의 경보를 나열할 수 있습니다.

  • DisableAlarmActionsEnableAlarmActions API 작업 또는 AWS CLI의 disable-alarm-actionsenable-alarm-actions 명령을 사용하여 경보를 사용 설정 및 사용 중지할 수 있습니다.

  • SetAlarmState API 작업 또는 AWS CLI의 set-alarm-state 명령을 사용함으로써 경보를 임의의 상태로 설정하여 경보를 테스트할 수 있습니다. 이러한 일시적인 상태 변경은 다음 경보 비교 시까지만 지속됩니다.

  • 사용자 지정 지표를 생성하기 전에 사용자 지정 지표에 대한 경보를 생성할 수 있습니다. 경보가 유효하려면 사용자 지정 지표에 대한 모든 측정기준을 비롯해 지표 네임스페이스 및 지표 이름을 경보 정의에 포함시켜야 합니다. 이렇게 하려면 PutMetricAlarm API 작업 또는 AWS CLI의 put-metric-alarm 명령을 사용하면 됩니다.

  • CloudWatch 콘솔, DescribeAlarmHistory API 작업 또는 AWS CLI의 describe-alarm-history 명령을 사용하여 경보 기록을 볼 수 있습니다. CloudWatch는 30일 동안 경보 기록을 유지합니다. 각 상태 전환은 고유한 타임스탬프로 표시됩니다. 드문 경우지만 기록에 상태 변경에 대한 알림이 두 개 이상 있을 수 있습니다. 이 경우 타임스탬프를 사용하여 고유한 상태 변경을 확인할 수 있습니다.

  • CloudWatch 콘솔 탐색 창의 즐겨찾기 및 최근 항목(Favorites and recents) 옵션에서 즐겨찾기에 추가하려는 경보 위에 마우스를 놓고 옆에 있는 별 기호를 선택하여 경보를 즐겨찾기에 추가할 수 있습니다.

  • 경보에 대한 평가 기간의 수에 각 평가 기간의 길이를 곱한 값이 1일을 초과할 수 없습니다.

참고

일부 AWS 리소스는 특정 조건에서 지표 데이터를 CloudWatch에 전송하지 않습니다.

예를 들어 Amazon EBS는 Amazon EC2 인스턴스에 연결되지 않은 사용 가능한 볼륨에 대한 지표 데이터를 전송하지 않을 수 있습니다. 해당 볼륨에 대해 모니터링할 지표 활동이 없기 때문입니다. 이러한 지표에 대한 경보 세트가 있으면 상태가 INSUFFICIENT_DATA로 변경됩니다. 이는 리소스가 비활성 상태임을 나타내지만 그렇다고 반드시 문제가 있음을 의미하지는 않습니다. 각 경보가 누락된 데이터를 처리하는 방법을 지정할 수 있습니다. 자세한 내용은 CloudWatch 경보가 누락 데이터를 처리하는 방법 구성 단원을 참조하십시오.