翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ベストプラクティス
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
スキューを判断するには、シャード単位でモニタリングする必要があります。