モニタリングは、DynamoDB および AWS ソリューションの信頼性、可用性、パフォーマンスを維持する上で重要な部分です。マルチポイント障害を簡単にデバッグできるように、AWS ソリューションのすべての部分からモニタリングデータを収集する必要があります。
トピック
モニタリング計画
DynamoDB のモニタリングを開始する前に、以下の質問に対する回答を反映したモニタリング計画を作成します。
-
どのような目的でモニタリングしますか?
-
どのリソースをモニタリングしますか?
-
どのくらいの頻度でこれらのリソースをモニタリングしますか?
-
どのモニタリングツールを利用しますか?
-
誰がモニタリングタスクを実行しますか?
-
問題が発生したときに誰が通知を受け取りますか?
パフォーマンスのベースライン
さまざまなタイミングと負荷条件でパフォーマンスを測定することにより、使用環境における通常の DynamoDB パフォーマンスのベースラインを確定します。DynamoDB をモニタリングするには、モニタリングの履歴データを保存することを検討します。保存データを最新のパフォーマンスデータと比較するベースラインとして使用し、通常のパフォーマンスのパターンやパフォーマンスの異常を検出して、問題への対応を検討することができます。ベースラインを確立するには、少なくとも、次の項目をモニタリングする必要があります。
-
指定された期間に消費された読み込みまたは書き込み容量ユニットの数。プロビジョニングされたスループットの使用量を追跡できます。
-
テーブルにプロビジョニングされた書き込みまたは読み込み容量を指定期間中に超えたリクエストで、テーブルにプロビジョニングされたスループットクォータをどのリクエストが超えたかを判断できます。
-
エラー。リクエストがエラーになったかどうかを判断できます。
統合サービス
DynamoDB は、ユーザーに代わってテーブルを自動的にモニタリングし、Amazon CloudWatch を介してメトリクスを報告します。さらに、以下の AWS のサービスとの統合により、DynamoDB リソースのモニタリングとトラブルシューティングも促進します。
-
AWS CloudTrail は、AWS アカウント により、またはそのアカウントに代わって行われた API コールおよび関連イベントを取得し、指定した Amazon S3 バケットにログファイルを配信します。詳細については、「AWS CloudTrail を使用して DynamoDB オペレーションをログに記録する」を参照してください。
-
Contributor Insights は、テーブルやインデックス内で最も頻繁にアクセスおよびスロットリングされるキーをすばやく特定するための診断ツールです。詳細については、「CloudWatch Contributor Insights for DynamoDB を使用してデータアクセスを分析する」を参照してください。
自動モニタリングツール
AWS は、DynamoDB のモニタリングに使用できるさまざまなツールを提供しています。モニタリングタスクをできるだけ自動化することをお勧めします。以下の自動化されたモニタリングツールを使用して、DynamoDB を監視し、問題が発生したときにレポートできます。
-
AWS CloudTrail アラーム – 指定した期間にわたって単一のメトリクスを監視し、複数の期間にわたって特定のしきい値と比較したメトリクス値に基づいて、1 つ以上のアクションを実行します。
アクションは、Amazon Simple Notification Service (Amazon SNS) トピックまたは Amazon EC2 Auto Scaling ポリシーに通知として送信されます。AWS CloudTrail アラームが特定の状態にあるというだけでは、アクションは呼び出されません。アラームの状態が変わり、指定した数の期間にわたって変化が持続する必要があります。詳細については、「Amazon CloudWatch で DynamoDB のメトリクスをモニタリングする」を参照してください。
-
AWS CloudTrail ログのモニタリング - アカウント間でログファイルを共有し、AWS CloudTrail ログファイルを AWS CloudTrail Logs に送信してリアルタイムでモニタリングします。また、ログ処理アプリケーションを Java で作成し、AWS CloudTrail による配信後にログファイルが変更されていないことを検証します。詳細については、「AWS CloudTrail ユーザーガイド」の「Amazon CloudWatch Logs とは」を参照してください。