AWS::DynamoDB::GlobalTable - AWS CloudFormation

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS::DynamoDB::GlobalTable

AWS::DynamoDB::GlobalTable リソースを使用すると、バージョン 2019.11.21 グローバルテーブルを作成および管理できます。このリソースは、バージョン 2017.11.29 グローバルテーブルの作成や管理には使用できません。詳細については、「グローバルテーブル」を参照してください。

重要

タイプ AWS::DynamoDB::Table のリソースは、テンプレート内でタイプを変更してタイプ AWS::DynamoDB::GlobalTable のリソースに変換できません。このように変換すると、DynamoDB テーブルが削除される可能性があります。

代わりに、 GlobalTable リソースを使用して、1 つのリージョンに新しいテーブルを作成できます。これは、単一のリージョンテーブルと同様に請求されます。後でスタックを更新して他のリージョンを追加すると、グローバルテーブルの料金が適用されます。

DynamoDB グローバルテーブルを操作するときは、以下の動作に注意してください。

  • スタックオペレーションを実行するIAMプリンシパルには、グローバルテーブルレプリカを作成する予定のすべてのリージョンで、以下に示すアクセス許可が必要です。IAM プリンシパルのアクセス許可には、IP 送信元アドレスに基づく制限があってはなりません。一部のグローバルテーブルオペレーション (レプリカの追加など) は非同期であり、プリンIAMシパルは完了するまで有効である必要があります。がスタックの更新を完了するまで、プリンシパル (ユーザーまたはIAMロール) CloudFormation を削除しないでください。

    • dynamodb:CreateTable

    • dynamodb:UpdateTable

    • dynamodb:DeleteTable

    • dynamodb:DescribeContinuousBackups

    • dynamodb:DescribeContributorInsights

    • dynamodb:DescribeTable

    • dynamodb:DescribeTableReplicaAutoScaling

    • dynamodb:DescribeTimeToLive

    • dynamodb:ListTables

    • dynamodb:UpdateTimeToLive

    • dynamodb:UpdateContributorInsights

    • dynamodb:UpdateContinuousBackups

    • dynamodb:ListTagsOfResource

    • dynamodb:TagResource

    • dynamodb:UntagResource

    • dynamodb:BatchWriteItem

    • dynamodb:CreateTableReplica

    • dynamodb:DeleteItem

    • dynamodb:DeleteTableReplica

    • dynamodb:DisableKinesisStreamingDestination

    • dynamodb:EnableKinesisStreamingDestination

    • dynamodb:GetItem

    • dynamodb:PutItem

    • dynamodb:Query

    • dynamodb:Scan

    • dynamodb:UpdateItem

    • dynamodb:DescribeTableReplicaAutoScaling

    • dynamodb:UpdateTableReplicaAutoScaling

    • iam:CreateServiceLinkedRole

    • kms:CreateGrant

    • kms:DescribeKey

    • application-autoscaling:DeleteScalingPolicy

    • application-autoscaling:DeleteScheduledAction

    • application-autoscaling:DeregisterScalableTarget

    • application-autoscaling:DescribeScalingPolicies

    • application-autoscaling:DescribeScalableTargets

    • application-autoscaling:PutScalingPolicy

    • application-autoscaling:PutScheduledAction

    • application-autoscaling:RegisterScalableTarget

  • プロビジョンド請求モードを使用する場合、 CloudFormation は各レプリカに自動スケーリングポリシーを作成し、書き込み容量を制御します。WriteProvisionedThroughputSettings プロパティを使用してこのポリシーを設定する必要があります。 CloudFormation は、すべてのレプリカに同じ書き込み容量の自動スケーリングプロパティがあることを確認します。グローバルテーブルの書き込み容量の値を直接指定することはできません。

  • プロビジョニングされた容量をテーブルで使用する場合は、オートスケーリングを AWS::DynamoDB::GlobalTable リソースで直接設定する必要があります。テーブルレプリカまたはグローバルセカンダリインデックスに対して、 経由、 AWS::ApplicationAutoScaling::ScalableTarget経由、APIまたは 経由で追加の自動スケーリングポリシーを設定しないでくださいAWS::ApplicationAutoScaling::ScalingPolicy。設定すると、予期しない動作が発生する可能性があり、サポート対象外となります。

  • では AWS CloudFormation、各グローバルテーブルは、レプリカの数に関係なく、単一のリージョンの単一のスタックによって制御されます。テンプレートをデプロイすると、 CloudFormation は 1 つのスタックオペレーションの一部としてすべてのレプリカを作成/更新します。同じ AWS::DynamoDB::GlobalTable リソースを複数のリージョンにデプロイしないでください。デプロイするとエラーが発生し、サポート対象外となります。アプリケーションテンプレートを複数のリージョンにデプロイする場合は、条件を使用して単一リージョンにのみリソースを作成できます。または、アプリケーションスタックとは別のスタック内に AWS::DynamoDB::GlobalTable リソースを定義し、単一リージョンにのみデプロイされることを確認してください。

構文

AWS CloudFormation テンプレートでこのエンティティを宣言するには、次の構文を使用します。

プロパティ

AttributeDefinitions

グローバルテーブルとインデックスのキースキーマを記述する属性のリスト。

必須: はい

タイプ: の配列 AttributeDefinition

最小: 1

アップデートに関する要件: 中断はありません

BillingMode

読み取りと書き込みのスループットに対する請求方法と容量の管理方法を指定します。次の値を指定できます:

  • PAY_PER_REQUEST

  • PROVISIONED

グローバルテーブル内のすべてのレプリカは、同じ請求モードになります。PROVISIONED 請求モードを使用した場合は、WriteProvisionedThroughputSettings プロパティによってオートスケーリング構成を指定する必要があります。このプロパティのデフォルト値は PROVISIONED です。

必須: いいえ

型: 文字列

許可される値: PROVISIONED | PAY_PER_REQUEST

アップデートに関する要件: 中断はありません

GlobalSecondaryIndexes

グローバルテーブルに作成するグローバルセカンダリインデックス。最大で 20 個のグローバルセカンダリインデックスを作成できます。グローバルテーブル内の各レプリカには、同じグローバルセカンダリインデックス設定が適用されます。単一スタックオペレーションでは、1 つのグローバルセカンダリインデックスの作成または削除のみができます。

インデックスのバックフィルには時間がかかる場合があるため、 CloudFormation はインデックスがアクティブになるまで待機しません。スタックオペレーションがロールバックされた場合、追加されたインデックスは削除されない CloudFormation 可能性があります。その場合、インデックスを手動で削除する必要があります。

必須: いいえ

タイプ: の配列 GlobalSecondaryIndex

アップデートに関する要件: 中断はありません

KeySchema

テーブルのプライマリキーを構成する属性を指定します。KeySchema プロパティの属性は、AttributeDefinitions プロパティにも定義する必要があります。

必須: はい

タイプ: の配列 KeySchema

最小: 1

最大: 2

更新に伴う要件: 置換

LocalSecondaryIndexes

テーブルに作成するローカルセカンダリインデックス。最大で 5 個のローカルセカンダリインデックスを作成できます。各インデックスの範囲は、特定のハッシュキー値に限定されます。各ハッシュキーのサイズは最大 10 GB です。グローバルテーブル内の各レプリカには、同じローカルセカンダリインデックス設定が適用されます。

必須: いいえ

タイプ: の配列 LocalSecondaryIndex

更新に伴う要件: 置換

Replicas

グローバルテーブルのレプリカのリストを指定します。リストには、グローバルテーブルを定義するスタックがデプロイされるリージョンである、少なくとも 1 つの要素が含まれている必要があります。たとえば、us-east-1 にデプロイされたスタックでテーブルを定義する場合は、us-east-1 リージョンで Replicas のエントリが必要です。スタックリージョン内のレプリカを削除することはできません。

重要

空のテーブルではレプリカの追加に数分かかり、大きなテーブルでは最大で数時間かかる場合があります。レプリカを追加または削除するには、その変更のみを含む UpdateStack オペレーションを送信することをお勧めします。

更新中にレプリカを追加または削除する場合、他のリソースは更新しないことをお勧めします。新しいレプリカの追加中にスタックが更新に失敗してロールバックされた場合は、レプリカを手動で削除する必要がある場合があります。

必要に応じて、いくつでもレプリカを持つ新しいグローバルテーブルを作成できます。テーブルの作成後にレプリカを追加または削除できますが、各更新で追加または削除できるレプリカは 1 つだけです。

必須: はい

タイプ: の配列 ReplicaSpecification

最小: 1

アップデートに関する要件: 中断はありません

SSESpecification

サーバー側の暗号化を有効にする設定を指定します。これらの設定は、すべてのレプリカに適用されます。カスタマーマネージドKMSキーを使用する場合は、 ReplicaSpecification.ReplicaSSESpecificationプロパティを使用して各レプリカにキーを指定する必要があります。

必須: いいえ

タイプ: SSESpecification

アップデートに関する要件: 中断はありません

StreamSpecification

グローバルテーブルのストリーム設定を指定します。グローバルテーブルに複数のレプリカが含まれている場合、このプロパティに値を指定する必要があります。ストリーム設定を変更できるのは、グローバルテーブルにレプリカが 1 つしかない場合です。

必須: いいえ

タイプ: StreamSpecification

アップデートに関する要件: 中断はありません

TableName

グローバルテーブルの名前。名前を指定しない場合、 AWS CloudFormation は一意の ID を生成し、その ID をテーブル名として使用します。詳細については、「Name タイプ」を参照してください。

重要

名前を指定すると、このリソースの置換が必要な更新はできません。中断が不要であるか、一定の中断が必要な更新であれば、行うことができます。リソースを置き換える必要がある場合は、新しい名前を指定します。

必須: いいえ

タイプ: 文字列

Pattern: [a-zA-Z0-9_.-]+

最小: 3

最大: 255

更新に伴う要件: 置換

TimeToLiveSpecification

テーブルの有効期限 (TTL) 設定を指定します。この設定は、すべてのレプリカに適用されます。

必須: いいえ

タイプ: TimeToLiveSpecification

アップデートに関する要件: 中断はありません

WriteProvisionedThroughputSettings

書き込み容量のオートスケーリングポリシーを指定します。このポリシーは、すべてのレプリカに適用されます。BillingModePROVISIONED に設定する場合は、この設定を指定する必要があります。

必須: いいえ

タイプ: WriteProvisionedThroughputSettings

更新に伴う要件: 中断なし

戻り値

参照番号

このリソースの論理 ID を組み込み Ref 関数に渡すと、Ref はテーブル名を返します。

Ref 関数の使用方法の詳細については、「Ref」を参照してください。

Fn::GetAtt

Fn::GetAtt 組み込み関数は、このタイプの指定された属性の値を返します。利用可能な属性とサンプル戻り値は以下のとおりです。

Fn::GetAtt 組み込み関数の使用方法の詳細については、「Fn::GetAtt」を参照してください。

Arn

などの DynamoDB テーブルの Amazon リソースネーム (ARN)arn:aws:dynamodb:us-east-2:123456789012:table/myDynamoDBTable。返される ARN は、スタックのデプロイ先リージョン内のレプリカのものです。

StreamArn

などの DynamoDB ストリームARNの arn:aws:dynamodb:us-east-1:123456789012:table/testddbstack-myDynamoDBTable-012A1SL7SMP5Q/stream/2015-11-30T20:10:00.000。返される StreamArn は、スタックのデプロイ先リージョン内のレプリカのものです。

注記

この属性を使用するには、StreamSpecification プロパティを指定する必要があります。

TableId

テーブルの一意の識別子 (a123b456-01ab-23cd-123a-111222aaabbb など)。返される TableId は、スタックのデプロイ先リージョン内のレプリカのものです。