亀のコツコツクラウドインフラ

2025年1月1日 (最終更新日:2025年1月8日)

【AWS DynamoDB】CloudWatchを使った監視・アラート設定!運用管理の効率化

はじめに

以下のような方にオススメの内容です。

  • AWS初心者でDynamoDBを運用している
  • モニタリングの効率化・自動化に興味がある
  • アラート設定のベストプラクティスを知りたい

AWS DynamoDBの運用管理を効率化するために、CloudWatchを使った監視とアラート設定方法を解説します。

DynamoDBのモニタリング

DynamoDBのパフォーマンスの可視化や障害を見逃さないために、CloudWatchの活用をオススメします。

CloudWatchでモニタリングをするべきメトリクスを紹介します。

高:必須レベル
中:必要に応じて
低:特定の状況

メトリクス名重要度説明モニタリング理由
ReadThrottleEvents/WriteThrottleEventsリクエストがプロビジョニングされたスループットを超えた際に発生負荷が高すぎる場合の早期公告として使用します
SystemErrorsDynamoDB内部で発生したシステムエラーの回数を示すシステム全体の安定性を確認し、エラー発生時のトラブルシューティングに使用
ConsumedReadCapacityUnits /ConsumedWriteCapacityUnits実際に消費された読み取りおよび書き込みスループットを表すスループットの利用効率を把握し、不要な過剰プロビジョニングを防ぐ
SuccessfulRequestLatency読み取りおよび書き込みリクエストが成功するまでにかかった時間(ミリ秒単位)テーブルやインデックスのパフォーマンスを測定し、潜在的な遅延問題を特定するために使用
ProvisionedThroughputExceededプロビジョニングされたスループットを超過したリクエストの数テーブルやインデックスの負荷状況を分析し、スケーリングの必要性を判断
PendingReplicationCountグローバルテーブルで未複製のレコード数を示すレプリケーションの遅延を把握し、グローバルなデータ一貫性を維持するために使用
ConditionalCheckFailedRequests条件付き書き込みや削除が失敗したリクエスト数ビジネスロジックの問題を特定するために使用
UserErrorsユーザーが原因で発生したエラー(例: 不適切なパーティションキーを使用したリクエストなど)アプリケーションの問題や不適切なリクエストの特定に使用

ユースケース別のおすすめ設定

スループット不足によるアプリケーションの遅延やエラーを防ぐ

ReadThrottleEvents
WriteThrottleEvents
ProvisionedThroughputExceeded

アラームはReadThrottleEventsまたはWriteThrottleEventsが1分間に1以上がおすすめです。

アラートを構築チームに送信し、自動スケーリングを検討しましょう。

DynamoDB内部のエラーを迅速に検知してトラブルシューティング

SystemErrors

アラートはSystemErrorsが5分間で1以上がおすすめです。

アラートを受け取ったら、AWSサポートに迅速に連絡しましょう。

スループット利用効率を最適化

ConsumedReadCapacityUnits
ConsumedWriteCapacityUnits

アラートはConsumedReadCapacityUnitsまたはConsumedWriteCapacityUnitsがプロビジョンドスループットの10%未満で24時間以上続く設定がおすすめです。

アラートを受け取ったら、テーブルのスループットを下げましょう。(手動または自動スケーリング)

アプリケーションのパフォーマンス問題を検知

SuccessfulRequestLatency

アラートはSuccessfulRequestLatencyが5分間で平均100msを超えるように設定するのがおすすめです。

アラートを受け取ったら、テーブル設計やインデックスの見直しましょう。

グローバルテーブルのレプリケーション遅延を防ぐ

PendingReplicationCount

条件: PendingReplicationCountが1分間で100以上がおすすめです。

アラートを受け取ったら、リソース状態の確認と、AWSサポートへの問い合わせを行いましょう。

CloudWatchのメトリクスがない場合は生成

一部のメトリクスは初期状態では表示されていないものもあります。

以下のメトリクスの生成方法の記事を紹介しているので、参考にしてください。

ReadThrottleEvents/WriteThrottleEventsのメトリクス生成してカスタムメトリクスを作成!【DynamoDB】

SystemErrorsのメトリクス生成してカスタムメトリクスを作成!【DynamoDB】

ベストプラクティスと大事な点

運用上に必要な点をまとめました。

全て設定した方がいいというわけではなく、設定を増やしすぎたことによって、ノイズになってしまうことも少なくありません。

以下のことを押さえていきましょう。

適切なメトリクス選択

アプリケーションや運用の目的に合ったメトリクスのみを監視。

不要なアラートの削減

しきい値やアラート条件を適切に設定し、ノイズを減らす。

アラートの分類

重要度に応じてアラートを分け、優先度を明確化。

定期的な見直し

メトリクスやアラーム設定は運用状況に応じて調整する。

まとめ

DynamoDBの運用効率を高めるためには、CloudWatchを活用したモニタリングとアラート設定が必要です。

適切なメトリクスを選び、ノイズの少ないアラートを設計することで、パフォーマンスの可視化と障害の早期検知が可能になります。

CloudWatchの設定を活用し、DynamoDBの運用管理をより効率的に進めていきましょう。

この記事を書いた人

コツコツ亀

コツコツ亀

Webエンジニアとして活動中
AWSを使用してWebアプリケーションを作ったり、サーバーを構築したりしています。

関連記事

新着記事