翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
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 テンプレートでこのエンティティを宣言するには、次の構文を使用します。
JSON
{ "Type" : "AWS::DynamoDB::GlobalTable", "Properties" : { "AttributeDefinitions" :
[ AttributeDefinition, ... ]
, "BillingMode" :String
, "GlobalSecondaryIndexes" :[ GlobalSecondaryIndex, ... ]
, "KeySchema" :[ KeySchema, ... ]
, "LocalSecondaryIndexes" :[ LocalSecondaryIndex, ... ]
, "Replicas" :[ ReplicaSpecification, ... ]
, "SSESpecification" :SSESpecification
, "StreamSpecification" :StreamSpecification
, "TableName" :String
, "TimeToLiveSpecification" :TimeToLiveSpecification
, "WriteProvisionedThroughputSettings" :WriteProvisionedThroughputSettings
} }
YAML
Type: AWS::DynamoDB::GlobalTable Properties: AttributeDefinitions:
- AttributeDefinition
BillingMode:String
GlobalSecondaryIndexes:- GlobalSecondaryIndex
KeySchema:- KeySchema
LocalSecondaryIndexes:- LocalSecondaryIndex
Replicas:- ReplicaSpecification
SSESpecification:SSESpecification
StreamSpecification:StreamSpecification
TableName:String
TimeToLiveSpecification:TimeToLiveSpecification
WriteProvisionedThroughputSettings:WriteProvisionedThroughputSettings
プロパティ
AttributeDefinitions
-
グローバルテーブルとインデックスのキースキーマを記述する属性のリスト。
必須: はい
タイプ: の配列 AttributeDefinition
最小:
1
アップデートに関する要件: 中断はありません
BillingMode
-
読み取りと書き込みのスループットに対する請求方法と容量の管理方法を指定します。次の値を指定できます:
-
PAY_PER_REQUEST
-
PROVISIONED
グローバルテーブル内のすべてのレプリカは、同じ請求モードになります。
PROVISIONED
請求モードを使用した場合は、WriteProvisionedThroughputSettings
プロパティによってオートスケーリング構成を指定する必要があります。このプロパティのデフォルト値はPROVISIONED
です。必須: いいえ
型: 文字列
許可される値:
PROVISIONED | PAY_PER_REQUEST
アップデートに関する要件: 中断はありません
-
GlobalSecondaryIndexes
-
グローバルテーブルに作成するグローバルセカンダリインデックス。最大で 20 個のグローバルセカンダリインデックスを作成できます。グローバルテーブル内の各レプリカには、同じグローバルセカンダリインデックス設定が適用されます。単一スタックオペレーションでは、1 つのグローバルセカンダリインデックスの作成または削除のみができます。
インデックスのバックフィルには時間がかかる場合があるため、 CloudFormation はインデックスがアクティブになるまで待機しません。スタックオペレーションがロールバックされた場合、追加されたインデックスは削除されない CloudFormation 可能性があります。その場合、インデックスを手動で削除する必要があります。
必須: いいえ
タイプ: の配列 GlobalSecondaryIndex
アップデートに関する要件: 中断はありません
KeySchema
-
テーブルのプライマリキーを構成する属性を指定します。
KeySchema
プロパティの属性は、AttributeDefinitions
プロパティにも定義する必要があります。必須: はい
最小:
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) 設定を指定します。この設定は、すべてのレプリカに適用されます。
必須: いいえ
アップデートに関する要件: 中断はありません
WriteProvisionedThroughputSettings
-
書き込み容量のオートスケーリングポリシーを指定します。このポリシーは、すべてのレプリカに適用されます。
BillingMode
をPROVISIONED
に設定する場合は、この設定を指定する必要があります。必須: いいえ
タイプ: 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
は、スタックのデプロイ先リージョン内のレプリカのものです。