Amazon Web Services ブログ

DynamoDB の CloudWatch Contributor Insights が一般公開されました

Amazon DynamoDB では、1 か月あたり数リクエストから 1 秒あたり数百万のリクエストまで、簡単にスケーリングできる完全マネージド型のキーバリューデータベースサービスをお客様に提供しています。DynamoDB は、あらゆる規模で一貫した 1 桁のミリ秒の応答時間を実現することにより、世界最大規模のアプリケーションを複数サポートしています。実質的に無制限のスループットとストレージでアプリケーションを構築できます。DynamoDB グローバルテーブルは、データを複数の AWS リージョンにレプリケートして、グローバルに分散されたアプリケーションのデータにローカルで高速にアクセスできるようにします。マイクロ秒のレイテンシーでさらに高速なアクセスが必要なユースケースでは、DynamoDB Accelerator (DAX) が完全マネージド型のインメモリキャッシュを提供しています。

2019 年 11 月に、Amazon DynamoDB の Amazon CloudWatch Contributer Insights をプレビューとして発表しました。本日、すべての AWS リージョンで一般的にご利用いただけるようになったことをお知らせします。

Amazon DynamoDB の Amazon CloudWatch Contributer Insights

2019 年 11 月に開始された Amazon CloudWatch Contributor Insights は、ログデータを分析し、時系列視覚化データを作成して、システムパフォーマンスに影響を与える上位のコントリビューターを確認できるようにしています。これを行うには、Contributor Insights ルールを作成して、CloudWatch Logs (AWS のサービスからのログを含む) と、自社のサービスまたはオンプレミスサーバーから送信されたカスタムログを評価します。たとえば、不良ホストを見つけたり、最も重いネットワークユーザーを特定したり、エラーを最も多く生成している URL を見つけたりできます。

DynamoDB の上にアプリケーションを構築する開発者にとっては、トラフィックの傾向や頻繁にアクセスするキーなどのデータベースアクセスパターンを理解して、DynamoDB のコストとパフォーマンスを最適化するのに役立ちます。DynamoDB の CloudWatch Contributor Insights を使用して、コンソールで数回クリックするだけでこれらのパターンの視覚化データを作成できます。DynamoDB は必要な CloudWatch リソースを自動的に作成してから、グラフの概要ビューを提供します。この概要ビューは DynamoDB コンソールにありますが、CloudWatch コンソールの他の CloudWatch Contributor Insights ルール、レポートやレポートデータのグラフを使用して、個々のルールの詳細を確認することもできます。

このようなグラフを使用して、トラフィックの傾向を確認し、DynamoDB テーブルのホットキーを特定できます。

仕組み

それがどのように機能し、開発者にどのようなメリットがあるかを見てみましょう。これが DynamoDB のテーブルです。

テーブルを選択すると、テーブルの詳細が表示されます。 [Contributor Insights] という新しいタブをクリックします。

CloudWatch Contributor InsightsDISABLED になりました。上部の [Contributor Insights] タブを選択して有効にできます。

[Contributor Insights] タブにアクセスすると、そのステータスを確認できます。アクティベーションプロセスは非常に簡単です (これは、この機能で私が気に入っているポイントの 1 つです)。 [Manage Contributer Insights] をクリックすると、ダイアログポップアップが表示されます。

[Enabled] を選択して [Confirm] をクリックすると、ダッシュボードが表示され、DynamoDB の CloudWatch Contributor Insights がテーブルへのすべてのアクセスを記録します。

しばらくすると、テーブルの洞察がいくつかのグラフで表示されます。

ダッシュボードの右上隅で時間範囲を変更するか、単にグラフをクリックして直接ドラッグすることができます。

ダッシュボードは何を教えてくれますか?

ダッシュボードには 4 つのメトリクスが表示されます。これらは、アプリケーションのパフォーマンスを調整するための強力な洞察です。 DynamoDB は、パーティションキーとパーティションキー + ソートキーに対して個別の視覚化データを作成するため、テーブルにソートキーがない場合、4 つすべてではなく 2 つのグラフしか表示されません。

  • 最もアクセス回数が多かったアイテム (パーティションキーのみ) – テーブルまたはグローバルセカンダリインデックスで最もアクセス回数が多かったアイテムのパーティションキーを識別します。
  • 最もアクセス回数が多かったアイテム (パーティションキー + ソートキー) – テーブルまたはグローバルセカンダリインデックスで最もアクセス回数が多かったアイテムのパーティションキーとソートキーを識別します。
  • 最もスロットル回数が多かったアイテム (パーティションキーのみ) – テーブルまたはグローバルセカンダリインデックスで最もスロットル回数が多かったアイテムのパーティションキーを識別します。
  • 最もスロットル回数が多かったアイテム (パーティションキー + ソートキー) – テーブルまたはグローバルセカンダリインデックスで最もスロットル回数が多かったアイテムのパーティションキーとソートキーを識別します。

最もアクセス回数が多かったアイテム

これらのメトリクスとグラフが意味することを、「最もアクセス回数が多かったアイテム」メトリクスから説明します。このメトリクスは、読み取りトラフィックと書き込みトラフィックの両方に基づいて、キーがアクセスされる頻度を示します。

これらのグラフの外れ値は、最も頻繁にアクセスされるキー、または最もホットなキーです。多くの DynamoDB ワークロードには少なくとも不均衡なトラフィックがいくつかありますが、このグラフを使用して、ワークロードが DynamoDB のキーごとの制限に達するかどうかを確認できます。一方、明らかな外れ値のない密にクラスター化されたラインがいくつかある場合は、ワークロードが指定された時間枠にわたってアイテム間で比較的バランスが取れていることを示しています (ワークロードのバランスがよく取れていて素晴らしいです)。

最もスロットル回数が多かったアイテム

「最もスロットル回数が多かったアイテム」は、最もスロットルされたキーのスロットルカウントの経時的なグラフを示しています。このグラフにデータが表示されない場合は、リクエストがスロットルされていないことを意味します。接続されたラインではなく孤立した点が点在している場合は、アイテムが短期間だけスロットルされていたことを示しています。

このブログ記事「正しい DynamoDB パーティションキーの選択」では、Amazon DynamoDB を使用するスキーマを設計するために適切なパーティションキーを選択する際の考慮事項と戦略の重要性について説明しています。適切なパーティションキーを選択することは、DynamoDB の上にスケーラブルで信頼性の高いアプリケーションを設計および構築するための重要なステップです。また、DynamoDB のドキュメントページ「パーティションキーを効果的に設計および使用するためのベストプラクティス」もご覧ください。

CloudWatch ダッシュボードとの統合

この機能は、使いやすさのために CloudWatch と統合されています。上記のいずれのグラフも、既存の CloudWatch ダッシュボードに統合できます。それを行う方法を見てみましょう。DynamoDB ダッシュボードに戻り、[Add to dashboard] をクリックします。
CloudWatch マネジメントコンソールにリダイレクトされ、どのダッシュボードを追加するか尋ねられます。

既存のダッシュボードを選択するか、新しいダッシュボードを作成できます。たとえば、ここではこれらのメトリクスを既存のテストダッシュボードに [test20180321] として配置しました。

機能をアクティブにしても、既存の本番環境には影響を与えません。有効と無効はいつでも切り替えられます。

本日より一般公開

この機能は、現在すべての AWS リージョンで一般的にご利用いただけます。

– シニアエバンジェリスト 亀田