기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS::DynamoDB::GlobalTable
AWS::DynamoDB::GlobalTable
리소스를 사용하면 버전 2019.11.21 글로벌 테이블을 생성하고 관리할 수 있습니다. 이 리소스는 버전 2017.11.29 글로벌 테이블을 생성하거나 관리하는 데 사용할 수 없습니다. 자세한 내용은 글로벌 테이블을 참조하세요.
중요
템플릿에서 유형을 변경하여 AWS::DynamoDB::Table
유형의 리소스를 AWS::DynamoDB::GlobalTable
유형의 리소스로 변환할 수 없습니다. 이렇게 하면 DynamoDB 테이블이 삭제될 수 있습니다.
대신 GlobalTable 리소스를 사용하여 단일 리전에 새 테이블을 생성할 수 있습니다. 단일 리전 테이블과 동일하게 청구됩니다. 나중에 스택을 업데이트하여 다른 리전을 추가하면 글로벌 테이블 요금이 적용됩니다.
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은 각 복제본에 대한 자동 조정 정책을 생성하여 쓰기 용량을 제어합니다.
WriteProvisionedThroughputSettings
속성을 사용하여 이 정책을 구성해야 합니다. CloudFormation은 모든 복제본이 동일한 쓰기 용량 자동 조정 속성을 갖도록 합니다. 글로벌 테이블의 쓰기 용량 값을 직접 지정할 수 없습니다. -
테이블에서 프로비저닝된 용량을 사용하는 경우
AWS::DynamoDB::GlobalTable
리소스에서 직접 자동 조정을 구성해야 합니다. API나AWS::ApplicationAutoScaling::ScalableTarget
또는AWS::ApplicationAutoScaling::ScalingPolicy
를 통해 테이블 복제본 또는 글로벌 보조 인덱스에 추가 자동 조정 정책을 구성하면 안 됩니다. 그렇게 하면 예기치 않은 동작이 발생할 수 있으며 지원되지 않습니다. -
에서 AWS CloudFormation각 글로벌 테이블은 복제본 수에 관계없이 단일 리전의 단일 스택에 의해 제어됩니다. 템플릿을 배포하면 CloudFormation은 단일 스택 작업의 일부로 모든 복제본을 생성/업데이트합니다. 동일한
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
, "WarmThroughput" :WarmThroughput
, "WriteOnDemandThroughputSettings" :WriteOnDemandThroughputSettings
, "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
WarmThroughput:WarmThroughput
WriteOnDemandThroughputSettings:WriteOnDemandThroughputSettings
WriteProvisionedThroughputSettings:WriteProvisionedThroughputSettings
속성
AttributeDefinitions
-
글로벌 테이블 및 인덱스에 대한 키 스키마를 설명하는 속성의 목록입니다.
필수 항목 여부: 예
유형: AttributeDefinition 배열
최소:
1
업데이트 필요 조건: 무중단
BillingMode
-
읽기 및 쓰기 처리량에 대한 청구 방법과 용량 관리 방법을 지정합니다. 유효한 값은 다음과 같습니다.
-
PAY_PER_REQUEST
-
PROVISIONED
글로벌 테이블의 모든 복제본은 동일한 과금 모드를 갖습니다.
PROVISIONED
과금 모드를 사용하는 경우WriteProvisionedThroughputSettings
속성을 통해 자동 조정 구성을 제공해야 합니다. 이 속성의 기본값은PROVISIONED
입니다.필수 항목 여부: 아니요
유형: 문자열
Allowed values:
PROVISIONED | PAY_PER_REQUEST
업데이트 필요 조건: 무중단
-
GlobalSecondaryIndexes
-
글로벌 테이블에서 생성될 글로벌 보조 인덱스입니다. 최대 20개의 글로벌 보조 인덱스를 생성할 수 있습니다. 글로벌 테이블의 각 복제본은 동일한 글로벌 보조 인덱스 설정을 갖습니다. 단일 스택 작업에서 하나의 글로벌 보조 인덱스만 생성하거나 삭제할 수 있습니다.
인덱스를 채우는 데 시간이 오래 걸릴 수 있으므로 CloudFormation은 인덱스가 활성화될 때까지 기다리지 않습니다. 스택 작업이 롤백되는 경우 CloudFormation은 추가된 인덱스를 삭제하지 않을 수 있습니다. 이 경우 인덱스를 수동으로 삭제해야 합니다.
필수 항목 여부: 아니요
유형: GlobalSecondaryIndex 배열
업데이트 필요 조건: 무중단
KeySchema
-
테이블의 기본 키를 구성하는 속성을 지정합니다.
KeySchema
속성의 속성을AttributeDefinitions
속성에도 정의해야 합니다.필수 항목 여부: 예
최소:
1
최대:
2
업데이트 필요: 대체
LocalSecondaryIndexes
-
테이블에서 생성될 로컬 보조 인덱스입니다. 최대 5개 로컬 보조 인덱스를 생성할 수 있습니다. 각 인덱스의 범위는 해당 해시 키 값으로 지정됩니다. 각 해시 키의 크기는 최대 10기가바이트입니다. 글로벌 테이블의 각 복제본은 동일한 로컬 보조 인덱스 설정을 갖습니다.
필수 항목 여부: 아니요
유형: LocalSecondaryIndex 배열
업데이트 필요: 대체
Replicas
-
글로벌 테이블의 복제본 목록을 지정합니다. 목록에는 글로벌 테이블을 정의하는 스택이 배포되는 리전인 하나 이상의 요소가 포함되어야 합니다. 예를 들어 us-east-1에 배포된 스택에서 테이블을 정의하는 경우 us-east-1 리전과 함께
Replicas
에 항목이 있어야 합니다. 스택 리전에서 복제본을 제거할 수 없습니다.중요
복제본을 추가하는 데 빈 테이블의 경우 몇 분이 걸리고 큰 테이블의 경우 최대 몇 시간이 걸릴 수 있습니다. 복제본을 추가하거나 제거하려면 해당 변경 사항만 포함하는
UpdateStack
작업을 제출하는 것이 좋습니다.업데이트하는 동안 복제본을 추가하거나 삭제하는 경우 다른 리소스를 업데이트하지 않는 것이 좋습니다. 새 복제본을 추가하는 동안 스택 업데이트가 실패하여 롤백되는 경우 복제본을 수동으로 삭제해야 할 수도 있습니다.
필요한 만큼의 복제본으로 새 글로벌 테이블을 생성할 수 있습니다. 테이블 생성 후 복제본을 추가하거나 제거할 수 있지만 각 업데이트에서 단일 복제본만 추가하거나 제거할 수 있습니다.
필수 항목 여부: 예
유형: ReplicaSpecification 배열
최소:
1
업데이트 필요 조건: 무중단
SSESpecification
-
서버 측 암호화를 활성화하도록 설정합니다. 이 설정은 모든 복제본에 적용됩니다. 고객 관리형 KMS 키를 사용하려는 경우
ReplicaSpecification.ReplicaSSESpecification
속성을 사용하여 각 복제본에 대한 키를 제공해야 합니다.필수 항목 여부: 아니요
유형: SSESpecification
업데이트 필요 조건: 무중단
StreamSpecification
-
글로벌 테이블의 스트림 설정을 지정합니다. 글로벌 테이블에 여러 복제본이 포함된 경우 이 속성 값을 제공해야 합니다. 글로벌 테이블에 복제본이 하나만 있는 경우에만 스트림 설정을 변경할 수 있습니다.
필수 항목 여부: 아니요
Type: StreamSpecification
업데이트 필요 조건: 무중단
TableName
-
글로벌 테이블의 이름입니다. 이름을 지정하지 않으면 AWS CloudFormation 이 고유한 ID를 생성하고 테이블 이름으로 해당 ID를 사용합니다. 자세한 내용은 이름 유형을 참조하세요.
중요
이름을 지정하는 경우, 이 리소스를 대체해야 하는 업데이트는 수행할 수 없습니다. 그러나 거의 또는 전혀 중단하지 않아도 되는 업데이트는 가능합니다. 리소스를 바꿔야 한다면 새 이름을 지정하십시오.
필수 항목 여부: 아니요
유형: 문자열
Pattern:
[a-zA-Z0-9_.-]+
최소:
3
최대:
255
업데이트 필요: 대체
TimeToLiveSpecification
-
테이블에 대한 TTL(Time to Live) 설정을 지정합니다. 이 설정은 모든 복제본에 적용됩니다.
필수 항목 여부: 아니요
Type: TimeToLiveSpecification
업데이트 필요 조건: 무중단
WarmThroughput
-
테이블 또는 보조 인덱스가 동시에 지원할 수 있는 읽기 및 쓰기 작업 수에 대한 가시성을 제공합니다. 설정은 예정된 피크 이벤트의 처리량 요구 사항을 충족하도록
UpdateTable
작업을 사용하여 수정할 수 있습니다.필수 항목 여부: 아니요
유형: WarmThroughput
업데이트 필요 조건: 무중단
WriteOnDemandThroughputSettings
-
글로벌 테이블 또는 글로벌 보조 인덱스에 대한 쓰기 요청 설정을 설정합니다. 리소스가
PAY_PER_REQUEST
를 사용하는 경우에만이 설정을 지정할 수 있습니다BillingMode
.필수 항목 여부: 아니요
유형: WriteOnDemandThroughputSettings
업데이트 필요 조건: 무중단
WriteProvisionedThroughputSettings
-
쓰기 용량에 대한 Auto Scaling 정책을 지정합니다. 이 정책은 모든 복제본에 적용됩니다.
BillingMode
가PROVISIONED
로 설정된 경우 이 설정을 지정해야 합니다.필수 항목 여부: 아니요
유형: WriteProvisionedThroughputSettings
업데이트 필요 조건: 무중단
반환 값
Ref
이 리소스의 논리적 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
이 반환됩니다.