Amazon DynamoDB のサービス、アカウント、およびテーブルのクォータ - Amazon DynamoDB

英語の翻訳が提供されている場合で、内容が矛盾する場合には、英語版がオリジナルとして取り扱われます。翻訳は機械翻訳により提供されています。

Amazon DynamoDB のサービス、アカウント、およびテーブルのクォータ

このセクションでは、Amazon DynamoDB 内の現在のクォータについて説明します (またはクォータなしの場合もあります)。各クォータは、指定がない限り、リージョン単位で適用されます。

読み取り/書き込みモードとスループット

24 時間ごとに 1 回、読み込み/書き込みキャパシティーモードを切り替えることができます。

キャパシティーユニットサイズ (プロビジョニングされるテーブルの場合)

最大サイズ 4 KB の項目について、1 つの読み込みキャパシティーユニット = 1 秒あたり 1 回の強力な整合性のある読み込み、あるいは 1 秒あたり 2 回の結果整合性のある読み込み。

最大サイズ 1 KB の項目について、1 つの書き込みキャパシティーユニット = 1 秒あたり 1 回の書き込み

トランザクション読み込みリクエストでは、4 KB までの項目を 1 秒あたりに 1 回読み込むのに読み込みキャパシティーユニットが 2 個必要です。

トランザクション書き込みリクエストでは、1 KB までの項目を 1 秒あたり 1 回書き込むのに書き込みキャパシティーユニットが 2 個必要です。

リクエストユニットサイズ (オンデマンドテーブルの場合)

最大サイズ 4 KB の項目について、1 つの読み込みリクエストユニット = 1 回の強力な整合性のある読み込み、あるいは 2 回の結果整合性のある読み込み。

最大サイズ 1 KB の項目について、1 つの書き込みリクエストユニット = 1 回の書き込み。

トランザクション読み込みリクエストでは、4 KB までの項目を 1 回読み込むのに読み込みリクエストユニットが 2 個必要です。

トランザクション書き込みリクエストでは、1 KB までの項目を 1 回書き込むのに書き込みリクエストユニットが 2 個必要です。

スループットのデフォルトクォータ

AWS では、プロビジョニングできるスループットについて、いくつかのデフォルトのクォータがあります。クォータの拡大をリクエストしない限り、以下のクォータが適用されます。サービスクォータの拡大をリクエストするには、「https://aws.amazon.com/ のサポート」を参照してください。

オンデマンド プロビジョンド

Per table

40,000 read request units and 40,000 write request units

40,000 read capacity units and 40,000 write capacity units

Per account

Not applicable

80,000 read capacity units and 80,000 write capacity units

Minimum throughput for any table or global secondary index

Not applicable

1 read capacity unit and 1 write capacity unit

注記

アカウントで使用可能なスループットをすべて 1 つのテーブルに適用することも、複数のテーブルに分けて適用することもできます。

プロビジョニングされたスループットクォータには、すべてのグローバルセカンダリインデックスのキャパシティーとともに、テーブルのキャパシティーの合計が含まれます。

AWS マネジメントコンソール では、Amazon CloudWatch を使用して [メトリクス] タブで read capacity および write capacity graphs を調べることにより、特定の AWS リージョンにおける現在の読み取りおよび書き込みスループットを確認できます。クォータに近づきすぎていないことを確認してください。

プロビジョニングされたスループットのデフォルトのクォータを増加させた場合は、DescribeLimits オペレーションを使用して現在のクォータ値を確認できます。

スループットの増加または減少 (プロビジョニングされたテーブルの場合)

プロビジョニングされるスループットを増やす

AWS マネジメントコンソール または UpdateTable オペレーションを使用して、必要な回数だけ ReadCapacityUnits または WriteCapacityUnits を増やすことができます。1 回の呼び出しで、テーブル、そのテーブルの任意のグローバルセカンダリインデックス、またはこれらの任意の組み合わせに対して、プロビジョニングされるスループットを増やすことができます。新しい設定は、UpdateTable オペレーションが完了するまでは有効になりません。

プロビジョニングされたキャパシティーを追加する場合、アカウントごとのクォータを超えることはできません。また、DynamoDB では、プロビジョニングされたキャパシティーを急速に増やすことはできません。これらの制限に達しない限り、テーブルのプロビジョニング容量を必要なだけ増やすことができます アカウントごとのクォータの詳細については、前述の「スループットのデフォルトクォータ」セクションを参照してください。

プロビジョニングされるスループットを減らす

UpdateTable オペレーションのすべてのテーブルとグローバルセカンダリインデックスでは、ReadCapacityUnitsWriteCapacityUnits (またはその両方) を減らすことができます。新しい設定は、UpdateTable オペレーションが完了するまでは有効になりません。1 日に 4 回までいつでも減らすことができます。日付は、協定世界時 (UTC) に従って定義されます。さらに、過去 1 時間に減少されていない場合はさらに減少できます。一日の減少の最大数は 27 回 になります (最初の 1 時間で 4 回、一日の残り時間で 1 時間ごとに 1 回)。

重要

テーブルとグローバルセカンダリインデックスの減少制限は別々に設定されているため、特定のテーブルのグローバルセカンダリインデックスにはいずれも、独自の減少制限が設定されています。ただし、1 つのリクエストでテーブルとグローバルセカンダリインデックスのスループットを縮小し、いずれかが現在の制限を超えた場合は拒否されます。リクエストが部分的に処理されることはありません。

1 日の最初の 4 時間で、グローバルセカンダリインデックスが設定されているテーブルは次のように変更できます。

  • テーブルの WriteCapacityUnitsReadCapacityUnits (または両方) を 4 時間減らします。

  • グローバルセカンダリインデックスの WriteCapacityUnitsReadCapacityUnits (または両方) を 4 時間減らします。

同じ日の終わりに、テーブルとグローバルセカンダリインデックスのスループットは、合計 27 回ずつ縮小することができる可能性があります。

Tables

テーブルのサイズ

テーブルのサイズには実用的な制限はありません。テーブルは項目数やバイト数について制限がありません。

アカウントあたりのテーブル数

AWS アカウントについては、AWS リージョンごとに 256 個のテーブルという初期クォータがあります。

サービスクォータの拡大をリクエストするには、「https://aws.amazon.com/ のサポート」を参照してください。

グローバルテーブル

AWS では、グローバルテーブルを使用するときにプロビジョニングまたは利用できるスループットについて、いくつかのデフォルトのクォータがあります。

オンデマンド プロビジョンド

Per table

40,000 read request units and 40,000 write request units

40,000 read capacity units and 40,000 write capacity units

Per table, per day

10 TB for all source tables to which a replica was added

10 TB for all source tables to which a replica was added

40,000 を超える書き込みキャパシティーユニット (WCU) を使用するように設定されているテーブルのレプリカを追加する場合は、レプリカの追加 WCU クォータのサービスクォータの拡大をリクエストする必要があります。サービスクォータの拡大をリクエストするには、「https://aws.amazon.com/ のサポート」を参照してください。

トランザクションオペレーションは、書き込みが最初に行われた AWS リージョン内でのみ、不可分性、一貫性、分離性、および耐久性 (ACID) を保証します。グローバルテーブルのリージョン間では、トランザクションはサポートされていません。たとえば、米国東部 (オハイオ) リージョンと米国西部 (オレゴン) リージョンにレプリカを含むグローバルテーブルがあり、米国東部 (バージニア北部) リージョンで TransactWriteItems オペレーションを実行するとします。この場合、変更がレプリケートされると、米国西部 (オレゴン) リージョンで部分的に完了したトランザクションを確認できます。変更は、ソースリージョンでコミットされると、他のリージョンにのみレプリケートされます。

セカンダリインデックス

テーブルごとのセカンダリインデックス

5 の最大ローカルセカンダリインデックスを定義することができます。

20 のグローバルセカンダリインデックスには、1 テーブルあたりの初期クォータがあります。サービスクォータの拡大をリクエストするには、「https://aws.amazon.com/ のサポート」を参照してください。

UpdateTable オペレーションごとに、1 つのグローバルセカンダリインデックスを作成または削除できます。

テーブルあたりの射影された セカンダリインデックス 属性

合計最大 100 の属性を、1 つのテーブルのすべてのグローバルセカンダリインデックスに射影することができます。これは、ユーザー指定の射影された属性だけに適用されます。

CreateTable オペレーションでは、INCLUDE として ProjectionType を指定した場合には、NonKeyAttributes で指定した、すべてのローカルセカンダリインデックスを含む属性の合計数が 100 を超えてはなりません。同じ属性名を 2 つの異なるインデックスに射影した場合には、合計を計算する際に 2 つの異なる属性として計算されます。

この制限は、ProjectionTypeKEYS_ONLY または ALL であるセカンダリインデックスには適用されません。

パーティションキーおよびソートキー

パーティションキーの長さ

パーティションキーと値の最小長は 1 バイトです。最大長は 2048 バイト です。

パーティションキーの値

テーブルまたはセカンダリインデックスについて、パーティションキー値の明確な数に関する実質的な制限はありません。

ソートキーの長さ

ソートキーと値の最小長は 1 バイトです。最大長は 1024 バイト です。

ソートキー値

一般的に、パーティションキーの値ごとのソートキーの値の数について、実質的に制限はありません。

セカンダリインデックスを持つテーブルは例外です。と local secondary index、アイテムコレクションサイズには制限があります。個別のパーティション キー値ごとに、すべてのテーブルおよびインデックス アイテムの合計サイズが を超えることはできません。 10 GB. これにより、パーティションキー値あたりのソートキーの数が制約を受ける可能性があります。詳細については、Item Collection Size Limit を参照してください。

名前付けルール

テーブル名およびセカンダリインデックス名

テーブルとセカンダリインデックスの名前は、3 文字以上、255 文字以下である必要があります。使用可能な文字は次のとおりです。

  • A-Z

  • a-z

  • 0-9

  • _ (下線)

  • - (ハイフン)

  • .(ドット)

属性名

一般的に、属性名は 1 文字以上、64 KB 以下である必要があります。

以下の例外があります。これらの属性名は 255 文字以下である必要があります。

  • Secondary indexパーティションキー名。

  • Secondary indexソートキー名。

  • ユーザー指定の射影された属性の名前 (local secondary index のみに適用)。CreateTable オペレーションでは、ProjectionTypeINCLUDE に指定した場合には、NonKeyAttributes パラメータの属性名の長さが制限されます。射影タイプ KEYS_ONLY および ALL には影響しません。

これらの属性名は UTF-8 を使用してエンコードする必要があり、それぞれの名前の合計サイズが (エンコード後に) 255 バイトを超えることはできません。

データ型

String

文字列の長さは、最大項目サイズ 400 KB によって制限されます。

文字列は、UTF-8 バイナリエンコードの Unicode です。UTF-8 は可変幅のエンコードであるため、DynamoDB により、UTF-8 バイトを使用して文字列の長さが決まります。

Number

数値は、最大 38 桁の精度であり、正、負、または 0 のいずれかです。

  • 陽性範囲: 1E-1309.9999999999999999999999999999999999999E+125

  • 負の範囲: -9.9999999999999999999999999999999999999E+125-1E-130

DynamoDB は JSON 文字列を使用してリクエストと返信の数値データを表します。詳細については、DynamoDB 低レベル API を参照してください。

数値の精度が重要な場合は、数値型から変換する文字列を使用して、DynamoDB に数値を渡します。

Binary

バイナリの長さは、最大項目サイズ 400 KB によって制限されます。

バイナリ属性を操作するアプリケーションは、データを DynamoDB に送信する前に、それを base64 形式でエンコードする必要があります。DynamoDB は、受信したデータを署名なしバイト配列にデコードし、それを属性の長さとして使用します。

Items

項目のサイズ

DynamoDB の最大項目のサイズは、400 KB で、属性名バイナリの長さ (UTF-8 長) と属性値の長さ (これもバイナリ長) を含みます。属性名はサイズ制限に反映されます。

たとえば、2 つの属性を持つ項目があり、1 つの属性は名前が "shirt-color" で値が "R"、別の属性は名前が "shirt-size" で値が "M" であるとします。この項目の合計サイズは 23 バイトです。

のテーブルのアイテムサイズ ローカルセカンダリインデックスes

テーブルの local secondary index ごとに、以下を合計したサイズに関して 400 KB の制限があります。

  • テーブルの項目データのサイズ。

  • その項目に対応する local secondary index エントリのサイズ。キーの値と射影された属性を含みます。

Attributes

項目あたりの属性名と値のペア

項目あたりの属性の累積サイズは、DynamoDB の最大項目サイズ (400 KB) 内である必要があります。

リスト、マップ、またはセットの値の最大数

値を含む項目が 400 KB のサイズ制限内である限り、リスト、マップ、またはセットの値の最大数の制限はありません。

属性値

属性がテーブルまたはインデックスのキー属性として使用されていない場合は、空の文字列属性とバイナリ属性値を使用できます。空の文字列とバイナリ値は、セット、リスト、およびマップ型内で許可されます。属性値は空のセット (文字列セット、数値セット、またはバイナリセット) にすることはできません。ただし、空のリストおよびマップは許可されます。

入れ子の属性の深さ

DynamoDB は深さが最大 32 レベルの入れ子の属性をサポートします。

式パラメータ

発現パラメータには、 ProjectionExpressionConditionExpressionUpdateExpression、および FilterExpression.

Lengths

任意の式の最大長は 4 KB です。たとえば、ConditionExpression a=b のサイズは 3 バイトです。

1 つの式属性名または式属性値の最大長は 255 バイトです。たとえば、#name は 5 バイト、:val は 4 バイトです。

式のすべての置換変数の最大長は 2 MBです。これはすべての ExpressionAttributeNames および ExpressionAttributeValues の長さの合計です。

演算子およびオペランド

UpdateExpression で許容される演算子または関数の最大数は 300 です。たとえば、UpdateExpression SET a = :val1 + :val2 + :val3 は 2 つの「+」演算子を含みます。

IN コンパレータのオペランドの最大数は 100 です。

予約語

DynamoDB に、予約語と競合する名前の使用を防止する機構はありません 詳細な一覧については、「予約語 DynamoDB」を参照してください。

ただし、expressionパラメータで予約済みワードを使用する場合は、 ExpressionAttributeNames。 詳細については、以下を参照してください。 DynamoDB の式の属性名.

DynamoDB トランザクション

DynamoDB トランザクション API オペレーションには以下の制約があります。

  • トランザクションには、25 個を超える一意のアクションを含めることはできません。

  • トランザクションには、4 MB を超えるデータを含めることはできません。

  • トランザクション内の 2 つのアクションを、同じテーブルの同じ項目に対して実行することはできません。たとえば、ConditionCheckUpdate の両方を 1 つのトランザクションで同じ項目に対して実行することはできません。

  • トランザクションは、複数の AWS アカウントまたはリージョンのテーブルで動作できません。

  • トランザクションオペレーションは、書き込みが最初に行われた AWS リージョン内でのみ、不可分性、一貫性、分離性、および耐久性 (ACID) を保証します。グローバルテーブルのリージョン間では、トランザクションはサポートされていません。たとえば、米国東部 (オハイオ) リージョンと米国西部 (オレゴン) リージョンにレプリカを含むグローバルテーブルがあり、米国東部 (バージニア北部) リージョンで TransactWriteItems オペレーションを実行するとします。この場合、変更がレプリケートされると、米国西部 (オレゴン) リージョンで部分的に完了したトランザクションを確認できます。変更は、ソースリージョンでコミットされると、他のリージョンにのみレプリケートされます。

DynamoDB ストリーム

DynamoDB ストリーム のシャードの同時リーダー

同じ DynamoDB ストリーム シャードから同時に 2つを超えるプロセスによる読み取りを許可しないでください。この制限を超えると、リクエストのスロットリングが発生する場合があります。

ストリームが有効なテーブルの最大書き込みキャパシティー

AWS では、DynamoDB ストリームが有効な DynamoDB テーブルの書き込みキャパシティーについて、いくつかのデフォルトのクォータがあります。クォータの拡大をリクエストしない限り、以下のクォータが適用されます。サービスクォータの拡大をリクエストするには、「https://aws.amazon.com/ のサポート」を参照してください。

  • 米国東部(バージニア北部), 米国東部 (オハイオ), 米国西部 (北カリフォルニア), 米国西部 (オレゴン), 南米 (サンパウロ), 欧州 (フランクフルト), 欧州 (アイルランド), アジアパシフィック (東京), アジアパシフィック (ソウル), アジアパシフィック (シンガポール), アジアパシフィック (シドニー), 中国 (北京) リージョン:

    • テーブル単位 – 40,000 書き込みキャパシティーユニット

  • その他のすべてのリージョン

    • テーブル単位 – 10,000 書き込みキャパシティーユニット

注記

プロビジョニングされたスループットクォータは、DynamoDB ストリームが有効な DynamoDB テーブルにも適用されます。詳細については、スループットのデフォルトクォータ を参照してください。

DynamoDB Accelerator (DAX)

AWS リージョンの提供状況

AWS リージョンのリストは、 DAX が利用可能です。を参照してください。 DynamoDB Accelerator (DAX)AWS General Reference.

Nodes

DAX クラスターは、1 つのみのプライマリノードと、0~9 個のリードレプリカノードで構成されます。

ノードの総数 (AWS アカウントごと) は、1 つの AWS リージョン内で 50 を超えることはできません。

パラメータグループ

リージョンごとに最大 20 の DAX パラメータグループを作成できます。

サブネットグループ

リージョンごとに最大 50 の DAX サブネットグループを作成できます。

サブネットグループ内では、最大 20 のサブネットを定義できます。

API 固有の制限

CreateTable/UpdateTable/DeleteTable

一般的に、最大 50 の CreateTableUpdateTable、およびDeleteTable リクエストを同時に実行できます (任意の組み合わせ)。つまり、CREATINGUPDATING、または DELETING の状態のテーブルの合計数が 50 を超えることはできません。

唯一の例外は、1 つ以上の セカンダリインデックス を持つテーブルを作成する場合です。そのようなリクエストは一度に 25 件まで実行できます。ただし、テーブルまたはインデックスの仕様が複雑な場合は、DynamoDB によって同時オペレーション数が一時的に減らされることがあります。

BatchGetItem

1 回の BatchGetItem オペレーションで、最大 100 項目を取得できます。取得するすべての項目の合計サイズは 16 MB を超えることはできません。

BatchWriteItem

単一の BatchWriteItem オペレーションは、最大 25 の PutItem または DeleteItem リクエストを含むことができます。書き込むすべての項目の合計サイズは 16 MB を超えることはできません。

DescribeTableReplicaAutoScaling

DescribeTableReplicaAutoScaling メソッドでは、1 秒あたり 10 リクエストのみサポートされます。

DescribeLimits

DescribeLimits は定期的に呼び出すのみにします。1 分以内に複数回呼び出すと、スロットリングエラーが発生する可能性があります。

DescribeContributorInsights/ListContributorInsights/UpdateContributorInsights

DescribeContributorInsightsListContributorInsights、およびUpdateContributorInsights は定期的に呼び出すのみにします。DynamoDB では、これらの API のそれぞれで 1 秒あたり最大 5 つのリクエストがサポートされます。

Query

Query の結果セットは、呼び出しあたり 1 MB に制限されます。クエリ応答から LastEvaluatedKey を使用して、結果をさらに取り出すこともできます。

Scan

Scan の結果セットは、呼び出しあたり 1 MB に制限されます。スキャン応答から LastEvaluatedKey を使用して、結果をさらに取り出すこともできます。

UpdateTableReplicaAutoScaling

UpdateTableReplicaAutoScaling メソッドは、1秒あたり10個のリクエストのみをサポートします。

保管時の DynamoDB の暗号化

AWS所有のカスタマーマスターキー(CMK)からAWS管理のCMKに、24時間窓あたり最大4回まで、テーブルごとに、テーブルの作成時点から切り替えることができます。過去6時間に変更がない場合、追加の変更が許可されます。これにより、1日の最大変更回数が8回(最初の6時間に4回、その後の6時間ごとに1回)に実質的に変化します。

AWS 所有 CMK への暗号化キーの切り替えは、必要な回数だけ行うことができます。

クォータの拡大をリクエストしない限り、以下のクォータが適用されます。サービスクォータの拡大をリクエストするには、「https://aws.amazon.com/ のサポート」を参照してください。