ベストプラクティス - Amazon DocumentDB

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ベストプラクティス

Amazon DocumentDB のエラスティッククラスターを使用するためのベストプラクティスについて説明します。インスタンスベースの Amazon DocumentDB クラスターのベストプラクティスはすべて、エラスティッククラスターに適用されます。新しいベストプラクティスが確認されると、このセクションは更新されます。

シャードキーの選択

以下は、シャードキーの作成に関するガイドラインです。

  • クラスター内のすべてのシャードにデータを分散するには、均等分散型のハッシュキーを使用する (ホットキーの使用は避ける)。

  • スキャッターギャザークエリを回避するには、読み取り/更新/削除リクエストでシャードキーを使用する。

  • 読み取り/更新/削除操作では、入れ子型のシャードキーの使用を避ける。

  • バッチ操作では、すべてのシャードが並列実行され、レイテンシーが改善されるよう ordered を false に設定する。

接続管理

以下は、データベースへの接続管理に関するガイドラインです。

  • 接続数、および、新しい接続の開閉の頻度をモニタリングする。

  • アプリケーションの設定のすべてのサブネットに接続を分散する。複数のサブネットにクラスターを設定しているにもかかわらず、サブネットの一部しか使用されないと、最大接続数でボトルネックが発生する可能性があります。

シャーディングされていないコレクション

以下は、非シャード型コレクションに関するガイドラインです。

  • 非シャード型コレクションで負荷を分散するには、使用率の高い非シャード型コレクションを複数のデータベースに保存するようにする。Amazon DocumentDB のエラスティッククラスターは、データベースを複数のシャードに配置します。この時、同じデータベースの非シャード型コレクションは、同じシャードに配置されます。

エラスティッククラスターのスケーリング

以下は、エラスティッククラスターのスケーリングに関するガイドラインです。

  • スケーリング操作によって、データベースエラーやネットワークエラーが短時間断続的に発生する場合があります。可能な限り、ピーク時間帯のスケーリングは避けてください。スケーリングは、メンテナンスウィンドウ中に行うようにしてください。

  • シャード容量をスケールアップまたはスケールダウン (シャードごとの vCPU 数の変更) してコンピューティングを増やすことは、シャード数を増減するよりも、より高速で、断続的なデータベースエラーやネットワークエラーの期間が短いため、推奨されます。

  • 成長が見込まれる場合は、シャード容量をスケールするではなく、シャード数を増やすことをお勧めします。シャード容量を増やしてクラスターをスケールすることで、迅速なスケーリングが必要とされる状況に対応できます。

  • クライアント側の再試行ポリシーをモニタリングして、エクスポネンシャルバックオフとジッターを試し、スケーリング中にエラーが発生したときにデータベースが過負荷にならないようにしてください。

エラスティッククラスターのモニタリング

以下は、エラスティッククラスターのモニタリングに関するガイドラインです。

  • シャードごとのメトリクス peak-to-average の比率を追跡して、不均等なトラフィックを運転している (ホットキー/ホットスポットがある) かどうかを判断します。 peak-to-average 比率を追跡するための主要なメトリクスは次のとおりです。

    • PrimaryInstanceCPUUtilization

      • これはシャード単位にモニタリングできます。

      • クラスターレベルでは、平均から p99 までのスキューをモニタリングできます。

    • PrimaryInstanceFreeableMemory

      • これはシャード単位にモニタリングできます。

      • クラスターレベルでは、平均から p99 までのスキューをモニタリングできます。

    • DatabaseCursorsMax

      • スキューを判断するには、シャード単位でモニタリングする必要があります。

    • Documents-Inserted/Updated/Returned/Deleted

      • スキューを判断するには、シャード単位でモニタリングする必要があります。