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 プリンシパルが有効である必要があります。スタックの更新 CloudFormation が完了するまで、プリンシパル (ユーザーまたは IAM ロール) を削除しないでください。

    • 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 は各レプリカに Auto Scaling ポリシーを作成して、書き込み容量を制御します。このポリシーは、 WriteProvisionedThroughputSettingsプロパティを使用して設定する必要があります。 CloudFormation は、すべてのレプリカに同じ書き込みキャパシティーの Auto Scaling プロパティがあることを確認します。グローバルテーブルの書き込み容量の値を直接指定することはできません。

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

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

Syntax

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 タイプ」を参照してください。

重要

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

必須: いいえ

タイプ: 文字列

パターン: [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

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

注記

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

TableId

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