バーストキャパシティとアダプティブキャパシティ - Amazon DynamoDB

バーストキャパシティとアダプティブキャパシティ

スループット例外に伴うスロットリングを最小限に抑えるために、DynamoDB はバーストキャパシティを使用して使用量のスパイクを処理します。DynamoDB は、アダプティブキャパシティを使用して、アクセスパターンの不均衡に対応できるようにします。

バーストキャパシティ

DynamoDB は、バーストキャパシティにより、スループットプロビジョニングに柔軟性をもたらします。利用可能なスループットを使い切っていない場合、DynamoDB は、キャパシティの未使用分を、後のスループットのバーストに備えて留保しておき、使用量のスパイクに対応します。バーストキャパシティーにより、スロットリングされていた可能性のある読み込みまたは書き込みリクエストが成功します。

現在、DynamoDB は、未使用の読み込みおよび書き込みキャパシティを最大 5 分 (300 秒) 保持します。読み込みまたは書き込みアクティビティのバーストが発生した場合、これらの余分なキャパシティユニットをすばやく消費できます。これは、テーブルに定義した 1 秒あたりのプロビジョンドスループットキャパシティよりも高速です。

また、DynamoDB はバックグラウンドメンテナンスやその他のタスクのために予告なしにバーストキャパシティを消費する場合があります。

これらのバーストキャパシティの詳細は将来変更される可能性があります。

アダプティブキャパシティ

DynamoDB では、パーティション間にデータを自動的に分散します。これらは、AWS クラウドの複数のサーバーに保存されます。読み込みおよび書き込みアクティビティは常に均等に分散できるとは限りません。データアクセスが不均等の場合は、他のパーティションと比較して、「ホット」パーティションに大容量の読み書きトラフィックが送信されることがあります。パーティションの読み込みおよび書き込みオペレーションは個別に管理されるため、単一のパーティションが 3,000 を超える読み込みオペレーションまたは 1,000 を超える書き込みオペレーションを受け取ると、スロットリングが発生します。アダプティブキャパシティーでは、さらに多くのトラフィックを受け取るパーティションのスループットキャパシティーを自動的に増加させます。

不均等なアクセスパターンに対応できるように、DynamoDB アダプティブキャパシティを使用することで、スロットリングすることなく、アプリケーションでホットパーティションに対して読み書きを継続できます。ただし、トラフィックは、プロビジョニングされた合計容量またはパーティションの最大容量を超えないものとします。アダプティブキャパシティでは、さらに多くのトラフィックを受け取るパーティションのスループットキャパシティを自動的かつ瞬時に増加させます。

次の図は、アダプティブキャパシティの機能を示しています。このテーブルの例のプロビジョニングでは、4 つのパーティション間で 400 WCU が均等に共有されることで、各パーティションで 1 秒間に最大 100 WCU を維持できます。パーティション 1、2、3 はそれぞれ、50 WCU/秒の書き込みトラフィックを受け取ります。パーティション 4 は 150 WCU/秒の書き込みトラフィックを受け取ります。このホットパーティションは、未使用のバーストキャパシティがある場合でも書き込みトラフィックを受け入ることができます。しかし、最終的には 1 秒間に 100 WCU を超えるトラフィックのスロットリングとなります。

DynamoDB アダプティブキャパシティは、パーティション 4 のキャパシティを増大して応答するため、このパーティションはスロットリングされることなく、150 WCU/秒のより高いワークロードを維持できます。

アダプティブキャパシティはすべての DynamoDB テーブルで自動的に有効化されます。追加料金はありません。アダプティブキャパシティを明示的に有効化または無効化する必要はありません。

アクセス頻度の高い項目を分離する

お使いのアプリケーションが 1 つ以上の項目に偏った高いトラフィックを送る場合、アクセス頻度の高い項目が同一パーティション内に存在しないように、アダプティブキャパシティによってパーティションのバランスが再調整されます。アクセス頻度の高い項目を分離することで、ワークロードが単一のパーティションのスループットクォータを超えることから生じるリクエストのスロットリングの可能性が低くなります。ソートキーの単調な増減によって追跡されるトラフィックが項目のコレクションでない限り、項目のコレクションをソートキー別にセグメントに分割することもできます。

アプリケーションから単一の項目に大量のトラフィックが一貫して送信される場合、アダプティブキャパシティはデータを再調整して、そのアクセス頻度の高い単一の項目のみをパーティションに含めることがあります。この場合、DynamoDB では、単一項目のプライマリキーに対して、最大 3,000 RCU および 1,000 WCU のパーティションのスループットを提供できます。アダプティブキャパシティでは、テーブルにローカルセカンダリインデックスがある場合、テーブルの複数のパーティション間で項目コレクションを分割しません。