翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Neptune サーバーレス DB クラスターの容量スケーリング
Neptune サーバーレス DB クラスターのセットアップは、通常のプロビジョニングクラスターの設定と似ていますが、スケーリングの最小単位と最大単位を追加設定し、インスタンスタイプを db.serverless
に設定します。スケーリング設定は Neptune キャパシティユニット (NCUs) で定義され、それぞれが 2 GiB (ギビバイト) のメモリ (RAM) と、関連する仮想プロセッサキャパシティ (v CPU) とネットワークで構成されます。これはServerlessV2ScalingConfiguration
オブジェクトの一部として設定され、JSON次のように で表されます。
"ServerlessV2ScalingConfiguration": { "MinCapacity":
(minimum NCUs, a floating-point number such as 1.0)
, "MaxCapacity":(maximum NCUs, a floating-point number such as 128.0)
}
任意の時点で、各 Neptune ライターまたはリーダーインスタンスには、そのインスタンスでNCUs現在使用されている数を表す浮動小数点数で測定される容量があります。インスタンスレベルでメトリクス CloudWatch ServerlessDatabaseCapacityを使用してNCUs、特定の DB インスタンスが現在使用している数と、インスタンスが使用している最大容量の割合NCUUtilizationを確認できます。これらのメトリクスは両方とも DB クラスターレベルでも使用でき、DB クラスター全体の平均リソース使用率を示します。
Neptune Serverless DB クラスターを作成するときは、すべてのサーバーレスインスタンスの Neptune キャパシティユニット (NCUs) の最小数と最大数の両方を設定します。
NCU 指定する最小値は、DB クラスター内のサーバーレスインスタンスを縮小できる最小サイズを設定し、同様に、NCU最大値はサーバーレスインスタンスを増大できる最大サイズを確立します。設定NCUできる最大値は 128.0 でNCUs、最小値は 1.0 ですNCUs。
Neptune は、、メモリCPU、ネットワークなどのリソースの使用率をモニタリングすることで、各 Neptune Serverless インスタンスの負荷を継続的に追跡します。負荷は、アプリケーションのデータベース操作、サーバーのバックグラウンド処理、その他の管理タスクによって発生します。
サーバーレスインスタンスの負荷が現在の容量の制限に達するか、Neptune が他のパフォーマンス問題を検出すると、インスタンスは自動的にスケールアップします。インスタンスの負荷が低下すると、容量は設定された最小容量単位にスケールダウンし、CPU容量はメモリの前に解放されます。このアーキテクチャでは、制御されたステップダウン方式でリソースを解放でき、需要の変動に効果的に対処できます。
リーダーインスタンスはライターインスタンスと一緒にスケーリングすることも、プロモーション層を設定して個別にスケーリングすることもできます。プロモーション層 0 と 1 のリーダーインスタンスは、ライターと同時にスケーリングされるため、フェイルオーバー時にライターからワークロードを迅速に引き継ぐために、適切な容量に合わせてサイズ調整されます。プロモーション層 2 ~ 15 のリーダーは、ライターインスタンスとは無関係に、また互いに独立してスケーリングします。
高可用性を確保するために Neptune DB クラスターをマルチ AZ クラスターとして作成した場合、Neptune Serverless はデータベース負荷に応じてインスタンスをAZsスケールアップおよびスケールダウンします。セカンダリ AZ のリーダーインスタンスのプロモーション層を 0 または 1 に設定すると、プライマリ AZ のライターインスタンスの容量に合わせてスケールアップまたはスケールダウンできるため、いつでも現在のワークロードを引き継ぐことができます。
注記
Neptune DB クラスターのストレージは、クラスターをマルチ AZ クラスターとして作成したかどうかにかかわらずAZs、3 つの にまたがるすべてのデータの 6 つのコピーで構成されます。ストレージレプリケーションはストレージサブシステムによって処理され、Neptune サーバーレスの影響を受けません。
Neptune サーバーレス DB クラスターの最小容量値の選択
最小容量に設定できる最小値は 1.0
ですNCUs。
最小値は、アプリケーションが効率的に動作するために必要な値よりも低く設定しないようにしてください。この値を低く設定しすぎると、メモリ集約的な特定のワークロードでタイムアウト率が高くなる可能性があります。
最小値をできるだけ低く設定すると、需要が少ないときにはクラスターが最小限のリソースしか使用しないため、コストを節約できます。ただし、ワークロードが非常に低いものから非常に高いものへと大きく変動する傾向がある場合は、最小値を高く設定することをお勧めします。最小値を高くすると、Neptune サーバーレスインスタンスのスケールアップが速くなるためです。
これは、Neptune が現在の容量に基づいてスケーリング単位を選択するためです。現在の容量が少ない場合、Neptune は最初はゆっくりとスケールアップします。最小値が高い場合、Neptune はより大きなスケーリングインクリメントから開始するため、ワークロードの急激な増加にもより速くスケールアップできます。
Neptune サーバーレス DB クラスターの最小容量値の選択
最大容量に設定できる最大値は 128.0
でNCUs、最大容量に設定できる最小値は 2.5
ですNCUs。設定する最大容量値は、設定した最小容量値より大きくなければなりません。
原則として、最大値は、アプリケーションで発生する可能性のあるピーク負荷に対応できる十分な大きさに設定してください。この値を低く設定しすぎると、メモリ集約的な特定のワークロードでタイムアウト率が高くなる可能性があります。
最大値をできるだけ高く設定すると、予想外のワークロードでもアプリケーションが処理できる可能性が高くなるという利点があります。デメリットは、リソースコストを予測して制御する能力をある程度失うことです。需要が予想外に急増すると、予算の予想をはるかに超えるコストがかかる可能性があります。
最大値を注意深く設定することの利点は、ピーク需要に対応できると同時に、Neptune のコンピューティングコストに上限を設けることができることです。
注記
Neptune サーバーレス DB クラスターの容量範囲を変更すると、一部の設定パラメータのデフォルト値が変更されます。Neptune は、一部の新しいデフォルトを直ちに適用できますが、一部の動的パラメータの変更は、再起動後に有効になります。pending-reboot
ステータスは、一部のパラメータの変更を適用するために再起動が必要であることを示しています。
既存の設定を使用してサーバーレス要件を見積もる
通常、例外的に高いか低いワークロードを満たすために、プロビジョニングした DB インスタンスの DB インスタンスクラスを変更する場合、その経験を活かして、同等の Neptune サーバーレス容量範囲を概算で見積もることができます。
最適な最小容量設定を見積もる
既存の Neptune DB クラスターについてわかっていることを応用して、最適なサーバーレスの最小容量設定を見積もることができます。
例えば、プロビジョニングされたワークロードのメモリ要件が T3
や などの小さな DB インスタンスクラスに対して高すぎる場合はT4g
、 R5
または R6g
DB インスタンスクラスに匹敵するメモリを提供する最小NCU設定を選択します。
または、クラスターのワークロードが低い場合、db.r6g.xlarge
DB インスタンスクラスを使用するとします。DB インスタンスクラスには 32 GiB のメモリがあるため、最小NCU設定を 16 に指定して、ほぼ同じ容量にスケールダウンできるサーバーレスインスタンスを作成できます (それぞれ約 2 GiB のメモリNCUに対応)。db.r6g.xlarge
インスタンスの使用率が低い場合は、より小さい値を指定できる可能性があります。
DB インスタンスがメモリまたはバッファキャッシュに一定量のデータを保持できる場合にアプリケーションが最も効率的に機能する場合は、そのために十分なメモリを提供するのに十分な大きさの最小NCU設定を指定することを検討してください。そうしないと、サーバーレスインスタンスがスケールダウンしたときにバッファーキャッシュからデータが削除され、インスタンスがスケールアップしたときに時間をかけてバッファーキャッシュに読み戻さなければならなくなる可能性があります。バッファキャッシュにデータを取り戻す I/O の量が多い場合は、NCU最小値を大きくすると価値があります。
サーバーレスインスタンスがほとんどの時間特定の容量で実行されていることがわかった場合は、最小容量をそれより少しだけ小さく設定するとよいでしょう。Neptune サーバーレスは、現在の容量が必要容量より極端に小さくない場合、スケールアップする規模と速度を最も効果的に見積もることができます。
プロビジョン済みライターと Neptune サーバーレスリーダーの混合設定では、リーダーはライターと一緒にスケーリングしません。これらは個別にスケーリングするため、最小容量を小さく設定すると、レプリケーションの遅延が大きくなる場合があります。書き込み集約的なワークロードがある場合、ライターが行う変更に対応できるだけの十分な容量がない可能性があります。このような場合は、ライター容量と同等の最小容量を設定してください。特に、プロモーション層 2 ~ 15 のリーダーでレプリカのラグが発生した場合は、クラスターの最小容量設定を増やしてください。
最適な最大容量設定を見積もる
既存の Neptune DB クラスターについてわかっていることを応用して、最適なサーバーレス最大容量設定を見積もることができます。
例えば、クラスターのワークロードが高い場合に db.r6g.4xlarge
DB インスタンスクラスを使用するとします。この DB インスタンスクラスには 128 GiB のメモリがあるため、最大NCU設定を 64 に設定して、同等の Neptune Serverless インスタンスを設定できます (それぞれ約 2 GiB のメモリNCUに対応します)。db.r6g.4xlarge
インスタンスが常にワークロードを処理できるとは限らない場合には、DB インスタンスをさらにスケールアップさせるため、より高い値を指定することができます。
ワークロードの予期しない急増がまれな場合は、その急増時でもアプリケーションのパフォーマンスを維持できるよう、最大容量を十分に高く設定するとよいでしょう。一方、異常な急上昇時にスループットを低下させることができるように、最大容量を低く設定したい場合もありますが、これにより Neptune は予想されるワークロードを問題なく処理でき、コストも抑えられます。