DynamoDBをCloudWatchで監視する方法【AWSコンソールで簡単設定】
はじめに
DynamoDBを使うなら最初に設定しておきたい5つのポイント
上記記事で紹介した「その4」として、CloudWatchによる監視について紹介します。
DynamoDBはマネージドサービスのため、サーバー監視は不要ですが、アクセス状況やエラー、スロットリングなどを監視することは非常に重要です。
CloudWatchを利用することで、異常を早期に検知し、安定した運用につなげることができます。
本記事では、AWSコンソールからCloudWatchメトリクスを確認する方法を紹介します。
CloudWatchとは?
Amazon CloudWatchは、
AWSリソースの状態を監視するサービス
です。
DynamoDBでは、以下のような情報をリアルタイムで確認できます。
- 読み込み回数
- 書き込み回数
- スロットリング
- エラー数
- レイテンシ
- キャパシティ使用率
CloudWatchで監視するメリット
CloudWatchで監視することで、
- パフォーマンス低下の早期発見
- スロットリングの検知
- エラー発生の把握
- キャパシティ不足の確認
- アクセス状況の可視化
などができます。
最低限監視したいメトリクス
本番環境では、最低限次の5つは確認することをおすすめします。
| メトリクス | 内容 |
|---|---|
| ReadThrottleEvents | 読み込みのスロットリング回数 |
| WriteThrottleEvents | 書き込みのスロットリング回数 |
| ConsumedReadCapacityUnits | 読み込みキャパシティ使用量 |
| ConsumedWriteCapacityUnits | 書き込みキャパシティ使用量 |
| SystemErrors | DynamoDB側で発生したシステムエラー |
イメージ
CloudWatchはDynamoDBの状態を継続的に監視し、メトリクスとして記録してくれます。
設定手順
① CloudWatchを開く
AWSマネジメントコンソールから
CloudWatch
を開きます。
② 「すべてのメトリクス」を選択
左メニューから
「メトリクス」
をクリックします。
続いて
「すべてのメトリクス」
をクリックします。
③ DynamoDBを選択
AWSサービス一覧から
DynamoDB
を選択します。
④ テーブルメトリクスを選択
表示されたカテゴリから
テーブルメトリクス
を選択します。
⑤ 監視したいメトリクスを選択
対象テーブルを選択し、
以下のメトリクスにチェックを付けます。
- ReadThrottleEvents
- WriteThrottleEvents
- ConsumedReadCapacityUnits
- ConsumedWriteCapacityUnits
- SystemErrors
※以下は「ConsumedReadCapacityUnits」のグラフを表示したときの例です。

するとグラフが表示されます。
アラームを設定する
CloudWatchでは、
メトリクスが一定値を超えた場合に通知できます。
例えば、
- ReadThrottleEvents > 0
- WriteThrottleEvents > 0
- SystemErrors > 0
となった場合に
Amazon SNS経由でメール通知することも可能です。
アラーム作成手順
- 対象メトリクスを選択
- 「アラームを作成」 をクリック
- 閾値を設定
- 通知先(SNS)を設定
- アラーム名を入力
- 作成
監視で特に重要なメトリクス
ReadThrottleEvents
読み込み性能が不足すると増加します。
0以外になっていたら、
キャパシティ設定を見直しましょう。
WriteThrottleEvents
書き込み性能が不足すると増加します。
Auto Scalingが適切に動作しているか確認しましょう。
ConsumedReadCapacityUnits
実際にどれだけ読み込みキャパシティを使用したか確認できます。
オンデマンドでもアクセス傾向の把握に役立ちます。
ConsumedWriteCapacityUnits
書き込み量を確認できます。
アクセス増加の把握にも利用されます。
SystemErrors
AWS側で発生したシステムエラーです。
通常は0であることがほとんどです。
よくある質問
Q. CloudWatchは追加料金がかかりますか?
基本的なDynamoDBメトリクスの収集は追加料金なしで利用できます。
ただし、
- カスタムメトリクス
- 詳細なログ保存
- 長期間保存
などは課金対象になる場合があります。
Q. CloudWatch Logsとは違いますか?
はい。
| CloudWatch Metrics | CloudWatch Logs |
|---|---|
| 数値データを監視 | ログを保存・分析 |
DynamoDBでは、
まずはMetricsを見ることが多いです。
Q. スロットリングが発生したらどうすればいいですか?
オンデマンドの場合は、
アクセスが急増していないか確認します。
プロビジョンドの場合は、
Auto Scalingの設定やキャパシティを見直しましょう。
AWS CLIで確認する方法
CloudWatchメトリクスはCLIから取得することもできます。
aws cloudwatch list-metrics \
--namespace AWS/DynamoDB
特定メトリクスを取得する場合は、
aws cloudwatch get-metric-statistics \
--namespace AWS/DynamoDB \
--metric-name ReadThrottleEvents
まとめ
CloudWatchを利用することで、
DynamoDBの状態をリアルタイムに監視できます。
本番環境では、
特に次の5つは必ず確認することをおすすめします。
- ReadThrottleEvents
- WriteThrottleEvents
- ConsumedReadCapacityUnits
- ConsumedWriteCapacityUnits
- SystemErrors
設定手順のおさらい
- CloudWatchを開く
- 「メトリクス」 をクリック
- DynamoDB を選択
- テーブルメトリクス を選択
- 監視したいメトリクスを表示
- 必要に応じてアラームを設定
CloudWatchを活用することで、障害や性能低下を早期に検知できるようになります。
参考
-
AWS公式ドキュメント(Amazon CloudWatch)
https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/WhatIsCloudWatch.html -
AWS公式ドキュメント(DynamoDB Metrics)
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/metrics-dimensions.html









