翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon DocumentDB Serverless スケーリング設定
トピック
DocumentDB サーバーレスクラスターのスケーリング容量範囲の選択
DocumentDB サーバーレスインスタンスを Amazon DocumentDB クラスターに追加する前に、クラスターに ServerlessV2ScalingConfiguration パラメータも設定されている必要があります。
ServerlessV2ScalingConfiguration パラメータは、クラスター内の任意のサーバーレスインスタンスのサーバーレススケーリング容量範囲を定義する 2 つの値で構成されます。
MinCapacity— クラスター内の DocumentDB サーバーレスインスタンスの最小スケーリング容量。MaxCapacity— クラスター内の DocumentDB サーバーレスインスタンスの最大スケーリング容量。
DocumentDB サーバーレスクラスターの MinCapacity 設定の選択
MinCapacityには、常に 0.5 を選択しようとします。この値を指定することで、インスタンスは、完全にアイドル状態のときに最小容量にスケールダウンしながら、アクティブな状態を維持できます。ただし、そのクラスターの使用方法やその他の設定によっては、最も効果的な最小容量が異なる場合もあります。最小容量設定を選択する場合は、以下の要素を考慮してください。
DocumentDB サーバーレスインスタンスのスケーリングレートは、そのインスタンスの現在の容量によって異なります。現在の容量が大きいほど、スケールアップが速くなります。インスタンスを非常に大きな容量にすばやくスケールアップする必要があるときは、スケーリングレートの要件を満たす値に最小容量を設定することを検討してください。
通常、ワークロードが高いか低いかを見越してインスタンスのインスタンスクラスを変更している場合は、その経験を活かして同等の DocumentDB サーバーレス容量範囲を概算で見積もることができます。プロビジョニングされた Amazon DocumentDB インスタンスタイプのメモリサイズを確認するには、「インスタンス制限」を参照してください。
例えば、クラスターのワークロードが低い場合に
db.r6g.xlargeインスタンスクラスを使用するとします。そのインスタンスクラスのメモリは 32 GiB です。したがって、MinCapacityを 16 に指定すると、ほぼ同じ容量にスケールダウンできるサーバーレスインスタンスをセットアップできます。これは、各 DCU が約 2 GiB のメモリに対応するためです。db.r6g.xlargeインスタンスの使用率が低い場合に、インスタンスをさらにスケールダウンさせるため、やや小さい値を指定することがあります。インスタンスのバッファキャッシュに一定量のデータがあるときにアプリケーションが最も効率的に動作する場合は、頻繁にアクセスされるデータを保持するのに十分なメモリ容量を持つ最小の DCU 設定を指定することを検討してください。それ以外の場合、サーバーレスインスタンスがさらに小さいメモリサイズにスケールダウンした場合、一部のデータがバックキャッシュから削除されます。その後、インスタンスのスケールアップ時に、その情報が経時的に読み込まれてバッファキャッシュに戻ります。データをバッファキャッシュに戻すための I/O 量が大きい場合は、最小 DCU 値を大きくする方が効果的な場合があります。詳細については、「インスタンスのサイズ指定」を参照してください。
ほとんどの時間、DocumentDB サーバーレスインスタンスが特定の容量で実行されている場合、ベースラインよりも小さく、ただし小さすぎない最小容量の設定を検討してください。サーバーレスインスタンスが現在の容量が必要容量より極端に小さくない場合、スケールアップする規模と速度を最も効果的に見積もることができます。
プロビジョン済みワークロードのメモリ要件が T3 や T4g–などの小さなインスタンスクラスに対して大きすぎる場合は、R5 や R6g インスタンスに相当するメモリを提供する最小 DCU 設定を選択します。
特に、指定された機能で使用するには、以下の最小
MinCapacityをお勧めします (これらの推奨値は変更される場合があります)。パフォーマンスインサイト — 2 DCU。
Amazon DocumentDB では、レプリケーションはストレージレイヤーで発生するため、リーダー容量はレプリケーションに直接影響しません。ただし、個別にスケールする DocumentDB サーバーレスインスタンスの場合は、クエリのレイテンシーを避けるために、書き込み負荷の高い期間にワークロードを処理するのに十分な最小容量があることを確認してください。昇格階層 2~15 のリーダーインスタンスでパフォーマンスの問題が発生した場合は、クラスターの最小容量を増やすことを検討してください。リーダーインスタンスのスケールをライターと一緒にスケーリングするか、個別にスケーリングするかを変更する方法の詳細については、「サーバーレスリーダーの昇格階層の表示と変更」を参照してください。
DocumentDB サーバーレスリーダーインスタンスを持つクラスターがある場合、リーダーの昇格階層が 0 または 1 でない場合、リーダーはライターインスタンスと一緒にスケーリングされません。この場合、最小容量を小さく設定すると、レプリケーションの遅延が大きくなる場合があります。これは、データベースがビジー状態のときに、ライターからの変更を適用するのに十分な容量がリーダーにない可能性があるためです。最小容量は、ライターインスタンスと同程度のメモリと CPU 量を表す値に設定することをお勧めします。
DocumentDB サーバーレスインスタンスを最小容量から最大容量までスケーリングするのにかかる時間は、DCU の最小値と最大値の差によって異なります。現在のインスタンスの容量が大きい場合、DocumentDB サーバーレス では、小さな容量から開始する場合よりも大きな増分でインスタンスをスケールアップします。したがって、比較的大きい最大容量を指定し、ほとんどの時間、インスタンスがその容量付近で使用されている場合は、最小 DCU の設定を引き上げることを検討してください。そうすれば、アイドル状態のインスタンスを、より迅速に最大容量にスケールアップできます。
特定のインスタンス制限は、接続制限、カーソル制限、オープントランザクション制限など、サーバーレスインスタンスの現在の容量によって決まります。インスタンスの現在の容量が小さい場合、それに応じて制限も小さくなります。サーバーレスインスタンスをその
MinCapacity値にスケールダウンするときにこれらの制限に問題がある場合は、MinCapacityをより高い値に増やすことを検討してください。詳細については、「Amazon DocumentDB Serverless インスタンスの制限」を参照してください。さらに、アクティブな接続制限、カーソル制限、オープントランザクション制限など、
MinCapacityが 1.0 DCU 以下に設定されている場合、特定のインスタンス制限はより低い最大値に上限が設定されます。これらの上限が設定された制限がワークロードに対して不十分な場合は、少なくとも 1.5 DCU のMinCapacity値を使用してください。詳細については、「Amazon DocumentDB Serverless インスタンスの制限」を参照してください。
クラスターのスケーリング設定を変更する方法については、「Amazon DocumentDB Serverless の管理」を参照してください。
DocumentDB サーバーレスクラスターの MaxCapacity 設定の選択
DocumentDB サーバーレスの最大容量設定には、常にある程度大きい値を選択しようとします。最大容量が大きいと、集中的なワークロードを実行している場合に、インスタンスは最もスケールアップできます。値を小さくすると、予期せぬ料金が発生する可能性を回避できます。そのクラスターの使用方法およびその他の設定によっては、最も効果的な値が当初検討していたより大きくなったり、小さくなったりすることがあります。最大容量設定を選択する場合は、以下の要素を考慮してください。
最大容量は、最小容量より大きくなければなりません。最小容量と最大容量を同一に設定することができます。ただし、その場合は容量がスケールアップまたはスケールダウンすることはありません。したがって、テスト以外では、最小容量と最大容量に同じ値を使用することは適切ではありません。
最大容量は 1.0 DCU 以上、最大 256 DCU である必要があります。
サーバーレスインスタンスのスケーリングとリソース使用量をモニタリングすることをお勧めします。サーバーレスインスタンスが最大容量に頻繁にスケーリングされ、リソースの制約 (
DCUUtilizationメトリクスが 100.0 の場合など) にヒットする場合は、より高いMaxCapacity値を選択することをお勧めします。詳細については、「Amazon DocumentDB Serverless のモニタリング」を参照してください。通常、ワークロードが高いか低いかを見越してプロビジョニングされたインスタンスのインスタンスクラスを変更している場合は、その経験を活用して同等の DocumentDB サーバーレス容量範囲を見積もることができます。プロビジョニングされた Amazon DocumentDB インスタンスのメモリサイズを確認するには、「インスタンス制限」を参照してください。
例えば、クラスターのワークロードが高い場合に
db.r6g.4xlargeインスタンスクラスを使用するとします。そのインスタンスクラスのメモリは 128 GiB です。したがって、DCU の最大設定を 64 に指定すると、ほぼ同じ容量にスケールアップできるサーバーレスインスタンスを設定できます。これは、各 DCU が約 2 GiB のメモリに対応するためです。db.r6g.4xlargeインスタンスにワークロードを効果的に処理するのに十分な容量がないことがあり、インスタンスをよりスケールアップさせるために多少大きい値を指定することができます。データベースの使用に予算の上限がある場合は、すべてのサーバーレスインスタンスを常に最大容量で実行しても、予算の上限に収まるような値を選択してください。クラスターに n 個のサーバーレスインスタンスがある場合、クラスターが常に消費できるサーバーレスの理論上の最大容量は、クラスターの最大 DCU 設定の n 倍であることに注意してください。(例えば、一部のリーダーがライターから独立してスケーリングする場合など、実際の消費量は少なくなる場合があります)。
サーバーレスリーダーインスタンスを利用してライターインスタンスから一部の読み取り専用ワークロードをオフロードするには、最大容量設定を小さく選択できることがあります。これは、各リーダーインスタンスが、クラスターに単一のインスタンスしか含まれていない場合ほど大きくスケーリングする必要がないことを反映するためです。
データベースパラメータの設定間違いやアプリケーション内の非効率的なクエリによる過度の使用から保護したいとします。その場合、設定可能な理論的な最大値よりも最大容量設定を小さく選択することで、誤って過剰に使用することを回避できます。
実際のユーザーアクティビティによるスパイクがまれしか発生しない場合は、最大容量設定を選択する際にその機会を考慮できます。アプリケーションが完全なパフォーマンスとスケーラビリティで動作し続けることを優先する場合は、通常の使用状況よりも大きい最大容量設定を指定できます。アクティビティの非常に極端なスパイク中、アプリケーションのスループットが低下しても問題ない場合は、最大容量を少し小さめに設定できます。アプリケーションの実行を維持するのに十分なメモリと CPU リソースがある設定を選択してください。
クラスターで 各インスタンスのメモリ使用量を増やす設定をオンにする場合は、最大 DCU 値を決定する際にそのメモリを考慮に入れてください。このような設定には、パフォーマンスインサイトの設定が含まれます。それらの機能が使用されているときに、サーバーレスインスタンスがワークロードを処理するのに十分なスケールアップができる 最大 DCU 値になっていることを確認します。最大 DCU の設定が小さいことと、メモリのオーバーヘッドが発生する Amazon DocumentDB 機能が組み合わされることによって発生する問題のトラブルシューティングについては、「メモリ不足エラーを回避する」(以下) を参照してください。
特に、指定された機能で使用するには、以下の最小
MaxCapacityをお勧めします (これらの推奨値は変更される場合があります)。データボリュームが大きいクラスターでのサーバーレスインスタンスの作成 — 2 DCU (クラスター復元の一部としてのサーバーレスインスタンスの作成が含まれます)。
特定のインスタンス制限は、接続制限、カーソル制限、オープントランザクション制限など、インスタンスの現在の容量によって決まります。ワークロードの
MaxCapacity値を選択するときは、これらの制限のいずれかによってボトルネックにならないように、これらのインスタンスの制限を念頭に置いてください。詳細については、「Amazon DocumentDB Serverless インスタンスの制限」を参照してください。
クラスターのスケーリング設定を変更する方法については、「Amazon DocumentDB Serverless の管理」を参照してください。
メモリ不足エラーを回避する
DocumentDB サーバーレスインスタンスの 1 つが常に最大容量の制限に達している場合、Amazon DocumentDB ではこの状態をインスタンスのステータスを [互換性のないパラメータ] に設定することで表示します。DB インスタンスが [互換性のないパラメータ] ステータスの間、一部のオペレーションはブロックされます。例えば、エンジンバージョンをアップグレードすることはできません。Amazon DocumentDB インスタンスのステータスの詳細については、Amazon DocumentDB インスタンスのステータスのモニタリング. を参照してください。
通常、インスタンスでは、メモリ不足エラーが原因で頻繁に再起動した場合、このステータスになります。Amazon DocumentDB では、このタイプの再起動が発生したときにイベントを記録します。リソースイベントを表示するには、「Amazon DocumentDB イベントの表示」を参照してください。パフォーマンスインサイトなどの設定をオンにすることによるオーバーヘッドが原因で、メモリ使用量が異常に大きくなる場合があります。また、インスタンスのワークロードが高い場合や、多数のスキーマオブジェクトに関連するメタデータの管理から発生する場合があります。
インスタンスが頻繁に最大容量に達しないように、メモリの負荷が低くなると、Amazon DocumentDB ではインスタンスのステータスを自動的に [使用可能] に戻します。
この状態から回復させるには、以下アクションの一部またはすべてを実行できます。
クラスターの DocumentDB 容量単位 (DCU) の最小値を変更して、サーバーレスインスタンスの容量の下限を引き上げます。これを行うことで、アイドル状態のデータベースが、クラスターでオンになっている機能に必要なメモリよりも少ない容量にスケールダウンする問題を回避できます。クラスターの DCU 設定を変更した後、サーバーレスインスタンスを再起動します。そうすることで、Amazon DocumentDB がステータスを [使用可能] にリセットできるかどうかが評価されます。
クラスターの DCU の最大値を変更して、サーバーレスインスタンスの容量の上限を引き上げます。そうすることで、クラスターでオンになっている機能やデータベースワークロードに、ビジー状態のデータベースが十分なメモリがある容量にスケールアップできない問題を回避できます。クラスターの DCU 設定を変更した後、サーバーレスインスタンスを再起動します。そうすることで、Amazon DocumentDB がステータスを [使用可能] にリセットできるかどうかが評価されます。
メモリオーバーヘッドが必要な設定をオフにします。例えば、パフォーマンスインサイトなどの機能がオンになっているが、使用していないとします。その場合は、それをオフにできます。または、クラスターの最小容量と最大容量値を調整することで、これらのタイプの機能で使用されるメモリを考慮することもできます。最小および最大容量設定の選択に関するガイドラインについては、「DocumentDB サーバーレスクラスターのスケーリング容量範囲の選択」を参照してください。
インスタンスのワークロードを削減します。例えば、クラスターにリーダーインスタンスを追加して、読み取り専用クエリからのロードを他のインスタンスに分散させることができます。
サーバーレスインスタンスがスケールダウンしないのはなぜですか?
場合によっては、データベースに負荷がかからない状態でも、DocumentDB サーバーレスが最小容量にスケールダウンしない場合があります。これは、次のような理由で発生します。
パフォーマンスインサイトにより、リソースの使用量が増加し、データベースが最小容量までスケールダウンできない可能性があります。主な機能は以下のとおりです。
リーダーインスタンスが最小容量までスケールダウンせず、ライターインスタンスと同じかそれ以上の容量にとどまっている場合は、リーダーインスタンスの優先度の階層を確認します。層 0 または 1 の DocumentDB サーバーレスリーダーインスタンスは、少なくともライターインスタンスと同じ大きさの最小容量に保たれます。リーダーの優先度の階層を 2 以上に変更して、ライターとは無関係にスケールアップおよびスケールダウンされるようにします。詳細については、「Amazon DocumentDB Serverless スケーリング」を参照してください。
データベースワークロードが重いと、リソースの使用量が増える可能性があります。
データベースのボリュームが大きいと、リソースの使用量が増える可能性があります。Amazon DocumentDB はクラスターの管理にメモリと CPU リソースを使用します。Amazon DocumentDB は、データベースボリュームが大きいクラスターを管理するために、より多くの CPU とメモリを必要とします。クラスターの最小容量がクラスター管理に必要な最小容量よりも少ない場合、クラスターは最小容量までスケールダウンされません。
バックグラウンドメンテナンスアクティビティでは、リソースの使用量を定期的に増やすことができます。
それでもデータベースが設定された最小容量までスケールダウンしない場合は、データベースを停止して再起動し、時間の経過とともに蓄積した可能性があるメモリフラグメントを再利用します。データベースを停止して起動するとダウンタイムが発生するため、これを実行するかどうかは慎重に判断することをお勧めします。