

# 상태 확인에 실패한 Amazon EC2 인스턴스에 대한 CloudWatch 경보 생성
<a name="creating_status_check_alarms"></a>

[상태 확인 지표](viewing_metrics_with_cloudwatch.md#status-check-metrics)를 사용하여 인스턴스에 실패한 상태 확인이 있을 때 알리는 CloudWatch 경보를 생성할 수 있습니다.

누락된 지표 데이터 요소가 있는 경우 상태 검사 및 상태 검사 경보가 일시적으로 *데이터 부족* 상태로 전환될 수 있습니다. 드물기는 하지만, 지표 보고 시스템이 중단되면 인스턴스가 정상인 경우에도 이 문제가 발생할 수 있습니다. 상태 확인 실패 또는 경보 위반 대신 이 상태를 누락된 데이터로 처리하는 것이 좋습니다. 응답으로 인스턴스에서 중지, 종료, 재부팅 또는 복구 작업을 수행할 때 특히 중요합니다.

------
#### [ Console ]

이 예제는 인스턴스가 상태 확인에 실패할 때 알림을 보내는 경보를 구성합니다. 선택적으로 인스턴스를 중지, 종료 또는 복구할 수 있습니다.

**상태 확인 경보를 생성하는 방법**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)에서 Amazon EC2 콘솔을 엽니다.

1. 탐색 창에서 **인스턴스**를 선택합니다.

1. 인스턴스를 선택하고, **상태 검사(Status Checks)** 탭을 선택한 후 **작업(Actions)**, **상태 검사 경보 생성(Create status check alarm)**을 선택합니다.

1. [**CloudWatch 경보 관리(Manage CloudWatch alarms)**] 페이지의 [**경보 추가 또는 편집(Add or edit alarm)**]에서 [**경보 생성(Create an alarm)**]을 선택합니다.

1. **경보 알림(Alarm notification)**에서 토글을 켜서 Amazon Simple Notification Service(Amazon SNS) 알림을 구성합니다. 기존 Amazon SNS 주제를 선택하거나 이름을 입력하여 새 주제를 생성합니다.

   수신자 목록에 이메일 주소를 추가하거나 새 주제를 생성하는 경우 Amazon SNS에서는 각 새 주소로 확인 이메일을 보냅니다. 각 수신자는 이메일에서 확인 링크를 선택해야 합니다. 확인된 주소만 경보 알림을 수신합니다.

1. **경보 작업(Alarm action)**에서 토글을 켜서 경보가 트리거될 때 수행할 작업을 지정합니다. 작업을 선택합니다.

1. [**경보 임곗값(Alarm thresholds)**]에서 경보에 대한 지표와 기준을 선택합니다.

   **샘플 그룹화 기준**의 기본 설정(**Average**)과 **샘플링할 데이터 유형**의 기본 설정(**Status check failed:either**)을 그대로 두어도 되며, 필요에 따라 원하는 설정으로 변경할 수도 있습니다.

   [**연속 기간(Consecutive Period)**]에서 평가 주기의 개수를 설정하고 [**기간(Period)**]에서 경보가 실행되고 이메일 전송이 이루어지기 전에 적용할 평가 주기의 시간 단위를 설정합니다.

1. (선택 사항) **샘플 지표 데이터**의 경우 **대시보드에 추가**를 선택합니다.

1. **Create**를 선택합니다.

인스턴스 상태 경보를 변경해야 하는 경우 편집할 수 있습니다.

**상태 확인 경보를 편집하는 방법**

1. [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)에서 Amazon EC2 콘솔을 엽니다.

1. 탐색 창에서 **인스턴스**를 선택합니다.

1. 인스턴스를 선택하고 **작업**, **모니터링**, **CloudWatch 경보 관리**를 차례로 선택합니다.

1. [**CloudWatch 경보 관리(Manage CloudWatch alarms)**] 페이지의 [**경보 추가 또는 편집(Add or edit alarm)**]에서 [**경보 편집(Edit an alarm)**]을 선택합니다.

1. [**경보 검색(Search for alarm)**]에서 경보를 선택합니다.

1. 변경을 마치면 [**업데이트(Update)**]를 선택합니다.

------
#### [ AWS CLI ]

다음 예제에서는 인스턴스가 2번 이상 연속으로 인스턴스 검사 또는 시스템 상태 확인에 실패하면 경보가 SNS 주제에 알림을 게시합니다. 사용된 CloudWatch 지표는 `StatusCheckFailed`입니다.

**상태 확인 경보를 생성하는 방법**

1. 기존의 SNS 주제를 선택하거나 새로운 주제를 생성합니다. 자세한 내용은 *AWS Command Line Interface 사용 설명서*에서 [AWS CLI에서 Amazon SNS 액세스](https://docs.aws.amazon.com/cli/latest/userguide/cli-services-sns.html)를 참조하세요.

1. 아래와 같이 [list-metrics](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/list-metrics.html) 명령을 사용하여 Amazon EC2에 유효한 Amazon CloudWatch 지표를 확인합니다.

   ```
   aws cloudwatch list-metrics --namespace AWS/EC2
   ```

1. 아래와 같이 [put-metric-alarm](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/put-metric-alarm.html) 명령을 사용하여 경보를 생성합니다.

   ```
   aws cloudwatch put-metric-alarm \
       --alarm-name StatusCheckFailed-Alarm-for-i-1234567890abcdef0 \
       --metric-name StatusCheckFailed \
       --namespace AWS/EC2 \
       --statistic Maximum \
       --dimensions Name=InstanceId,Value=i-1234567890abcdef0 \
       --unit Count \
       --period 300 \
       --evaluation-periods 2 \
       --threshold 1 \
       --comparison-operator GreaterThanOrEqualToThreshold \
       --alarm-actions arn:aws:sns:us-west-2:111122223333:my-sns-topic
   ```

   기간은 Amazon CloudWatch 지표가 수집되는 시간 프레임(초)입니다. 이 예제에서는 60초와 5분을 곱셈하여 300초를 사용합니다. 평가 기간은 지표 값을 임곗값과 비교해야 하는 연속 기간의 수입니다. 이 예제에서는 2를 사용합니다. 경보 작업은 경보가 트리거될 때 수행할 작업입니다.

------
#### [ PowerShell ]

**상태 확인 경보를 생성하는 방법**  
다음과 같이 [Write-CWMetricAlarm](https://docs.aws.amazon.com/powershell/latest/reference/items/Write-CWMetricAlarm.html) cmdlet을 사용하여 인스턴스가 2번 이상 연속으로 상태 확인에 실패할 때 SNS 주제에 알림을 게시합니다.

```
Write-CWMetricAlarm `
    -AlarmName "StatusCheckFailed-Alarm-for-i-1234567890abcdef0" `
    -MetricName "StatusCheckFailed" `
    -Namespace "AWS/EC2" `
    -Statistic "Maximum" `
    -Dimension @{Name="InstanceId"; Values="i-1234567890abcdef0"} `
    -Unit "Count" `
    -Period 300 `
    -EvaluationPeriod 2 `
    -Threshold 1 `
    -ComparisonOperator "GreaterThanOrEqualToThreshold" `
    -AlarmAction "arn:aws:sns:us-west-2:111122223333:my-sns-topic"
```

기간은 Amazon CloudWatch 지표가 수집되는 시간 프레임(초)입니다. 이 예제에서는 60초와 5분을 곱셈하여 300초를 사용합니다. 평가 기간은 지표 값을 임곗값과 비교해야 하는 연속 기간의 수입니다. 이 예제에서는 2를 사용합니다. 경보 작업은 경보가 트리거될 때 수행할 작업입니다.

------