

# DynamoDB に CloudWatch アラームを作成する
<a name="Monitoring-metrics-creating-cloudwatch-alarms"></a>

[CloudWatch アラーム](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)は、指定した期間にわたって単一のメトリクスを監視し、一定期間にわたってしきい値と比較したメトリクスの値に基づいて、1 つ以上の指定したアクションを実行します。アクションは、Amazon SNS のトピックまたは自動スケーリングのポリシーに送信される通知です。ダッシュボードにアラームを追加すると、複数のリージョンにまたがって AWS リソースやアプリケーションをモニタリングし、アラートを受け取ることもできます。作成できるアラームの数に制限はありません。CloudWatch のアラームは、メトリクスが特定の状態にあるだけではアクションを呼び出しません。アクションを呼び出すには、指定した期間継続している必要があります。推奨される DynamoDB アラームのリストについては、「[推奨アラーム](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#DynamoDB)」を参照してください。

**注記**  
CloudWatch アラームを作成するときは、必要なすべてのディメンションを指定する必要があります。これは、CloudWatch が欠落しているディメンションのメトリクスを集計しないためです。ディメンションが欠落している CloudWatch アラームを作成しても、アラームの作成時にエラーは発生しません。

1 つのプロビジョニングされたテーブル内に、5 つの読み込みキャパシティユニットがあるとします。この場合、プロビジョニングされた読み込みキャパシティ全体を消費する前に通知を受け取るには、テーブルのプロビジョニングされたキャパシティの消費量が 80% に達したときに通知を送信するように CloudWatch アラームを作成します。アラームは、CloudWatch コンソールまたは AWS CLI を使用して作成できます。

## CloudWatch コンソールでのアラームの作成
<a name="monitoring-metrics-creating-an-alarm-cw-console"></a>

**CloudWatch コンソールでアラームを作成するには**

1. AWS マネジメントコンソール にサインインして、CloudWatch コンソール ([https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)) を開きます。

1. ナビゲーションペインで、**[アラーム]**、**[すべてのアラーム]** の順に選択します。

1. [**アラームの作成**] を選択します。

1. **[メトリクス名]** 列で、モニタリングするテーブルと **`ConsumeReadCapacityUnits`** を含む行を見つけます。この行の横にあるチェックボックスをオンにして、**[メトリクスを選択]** を選択します。

1. **[メトリクスと条件の指定]** で、**[統計]** の **[合計]** を選択します。**[期間]** として **[1 分]** を選択します。

1. [**Conditions (条件)**] で、次のように指定します。

   1. [**Threshold type (しきい値タイプ)**] で [**静的**] を選択します。

   1. **[`ConsumedReadCapacityUnits` が以下のとき]** で、**[より大きい/等しい]** を選択し、しきい値を 240 に指定します。

1. [**次へ**] を選択します。

1. **[通知]** で、**[`In alarm`]** を選択し、アラームが `ALARM` 状態のときに通知する SNS トピックを選択します。

1. 完了したら、[**次へ**] を選択します。

1. 次のページで、アラームの名前と説明を入力し、**[次へ]** を選択します。

1. [**Preview and create (プレビューして作成)**] で、情報と条件が正しいことを確認し、[**アラームの作成**] を選択します。

## AWS CLI でのアラームの作成
<a name="Monitoring-metrics-creating-an-alarm-cli"></a>

```
aws cloudwatch put-metric-alarm \
    -\-alarm-name ReadCapacityUnitsLimitAlarm \
    -\-alarm-description "Alarm when read capacity reaches 80% of my provisioned read capacity" \
    -\-namespace AWS/DynamoDB \
    -\-metric-name ConsumedReadCapacityUnits \
    -\-dimensions Name=TableName,Value=myTable \
    -\-statistic Sum \
    -\-threshold 240 \
    -\-comparison-operator GreaterThanOrEqualToThreshold \
    -\-period 60 \                           
    -\-evaluation-periods 1 \
    -\-alarm-actions arn:aws:sns:us-east-1:123456789012:capacity-alarm
```

アラームのテストを行います。

```
aws cloudwatch set-alarm-state -\-alarm-name ReadCapacityUnitsLimitAlarm -\-state-reason "initializing" -\-state-value OK
```

```
aws cloudwatch set-alarm-state -\-alarm-name ReadCapacityUnitsLimitAlarm -\-state-reason "initializing" -\-state-value ALARM
```

## その他の AWS CLI の例
<a name="Monitoring-metrics-more-cli-examples"></a>

次の手順では、テーブルのプロビジョニングされたスループットクォータを超えるリクエストがある場合に、通知を受け取る方法を示します。

1. Amazon SNS トピック `arn:aws:sns:us-east-1:123456789012:requests-exceeding-throughput` を作成します。詳細については、「[Amazon Simple Notification Service をセットアップする](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/US_SetupSNS.html)」を参照してください。

1. アラームを作成します。

   ```
   aws cloudwatch put-metric-alarm \
           -\-alarm-name ReadCapacityUnitsLimitAlarm \
           -\-alarm-description "Alarm when read capacity reaches 80% of my provisioned read capacity" \
           -\-namespace AWS/DynamoDB \
           -\-metric-name ConsumedReadCapacityUnits \
           -\-dimensions Name=TableName,Value=myTable \
           -\-statistic Sum \
           -\-threshold 240 \
           -\-comparison-operator GreaterThanOrEqualToThreshold \
           -\-period 60 \                           
           -\-evaluation-periods 1 \
           -\-alarm-actions arn:aws:sns:us-east-1:123456789012:capacity-alarm
   ```

1. アラームのテストを行います。

   ```
   aws cloudwatch set-alarm-state --alarm-name RequestsExceedingThroughputAlarm --state-reason "initializing" --state-value OK
   ```

   ```
   aws cloudwatch set-alarm-state --alarm-name RequestsExceedingThroughputAlarm --state-reason "initializing" --state-value ALARM
   ```

次の手順では、システムエラーが発生した場合に通知を受け取る方法を示します。

1. Amazon SNS トピック `arn:aws:sns:us-east-1:123456789012:notify-on-system-errors` を作成します。詳細については、「[Amazon Simple Notification Service をセットアップする](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/US_SetupSNS.html)」を参照してください。

1. アラームを作成します。

   ```
   aws cloudwatch put-metric-alarm \
       --alarm-name SystemErrorsAlarm \
       --alarm-description "Alarm when system errors occur" \
       --namespace AWS/DynamoDB \
       --metric-name SystemErrors \
       --dimensions Name=TableName,Value=myTable Name=Operation,Value=aDynamoDBOperation \
       --statistic Sum \
       --threshold 0 \
       --comparison-operator GreaterThanThreshold \
       --period 60 \
       --unit Count \
       --evaluation-periods 1 \
       --treat-missing-data breaching \
       --alarm-actions arn:aws:sns:us-east-1:123456789012:notify-on-system-errors
   ```

1. アラームのテストを行います。

   ```
   aws cloudwatch set-alarm-state --alarm-name SystemErrorsAlarm --state-reason "initializing" --state-value OK
   ```

   ```
   aws cloudwatch set-alarm-state --alarm-name SystemErrorsAlarm --state-reason "initializing" --state-value ALARM
   ```