DeletionPolicy
속성
DeletionPolicy
속성을 사용하면 스택이 삭제될 때 리소스를 보존하고 경우에 따라 백업할 수 있습니다. 제어할 각 리소스에 대한 DeletionPolicy
속성을 지정합니다. 리소스에 DeletionPolicy
속성이 없는 경우 AWS CloudFormation은 기본적으로 리소스를 삭제합니다.
스택에서 리소스를 삭제하는 리소스를 제거하는 스택 업데이트 작업에도 이 기능이 적용됩니다. 예를 들어 스택 템플릿에서 리소스를 제거한 경우 템플릿을 포함한 스택을 업데이트합니다. 이 기능은 스택 업데이트 작업 도중 물리적 인스턴스가 교체되지 않은 리소스에는 적용되지 않습니다. 예를 들어 CloudFormation에서 스택 업데이트 도중 교체하는 리소스의 속성을 편집하는 경우가 있습니다.
참고
예외: 기본 정책은 AWS::RDS::DBCluster
리소스 및 DBClusterIdentifier
속성을 지정하지 않는 AWS::RDS::DBInstance
리소스의 경우 Snapshot
입니다.
스택이 삭제될 때 리소스를 유지하려면 해당 리소스에 Retain
을 지정합니다. 어떤 리소스에든 Retain
을 사용할 수 있습니다. 예를 들어, 스택을 삭제한 후에도 해당 리소스를 계속해서 사용하거나 수정할 수 있도록 중첩 스택, Amazon S3 버킷 또는 EC2 인스턴스를 보관할 수 있습니다.
참고
CloudFormation 외부에서 리소스를 수정하려는 경우 Retain
삭제 정책을 사용한 다음 스택을 삭제합니다. 그렇지 않으면 리소스가 CloudFormation 템플릿과 동기화되지 않아서 스택 오류가 발생할 수 있습니다.
AWS::EC2::Volume
과 같이 스냅샷을 지원하는 리소스의 경우 Snapshot
을 지정하여 리소스를 삭제하기 전에 CloudFormation에서 스냅샷을 생성합니다.
다음 코드 조각에는 Retain
삭제 정책을 사용하는 Amazon S3 버킷 리소스가 포함되어 있습니다. 이 스택을 삭제하면 CloudFormation에서 버킷이 삭제되지 않고 그대로 유지됩니다.
JSON
{ "AWSTemplateFormatVersion" : "2010-09-09", "Resources" : { "MyBucket" : { "Type" : "AWS::S3::Bucket", "DeletionPolicy" : "Retain" } } }
YAML
AWSTemplateFormatVersion: '2010-09-09' Resources: MyBucket: Type: AWS::S3::Bucket DeletionPolicy: Retain
DeletionPolicy
옵션
Delete
-
CloudFormation에서 스택 삭제 중에 해당되는 경우 모든 리소스와 모든 해당 콘텐츠가 삭제됩니다. 어떤 리소스 유형에든 이 삭제 정책을 추가할 수 있습니다. 기본적으로
DeletionPolicy
를 지정하지 않으면 CloudFormation에서 리소스가 삭제됩니다. 그러나 다음 사항을 고려해야 합니다.-
AWS::RDS::DBCluster
리소스의 기본 정책은Snapshot
입니다. -
AWS::RDS::DBInstance
속성을 지정하지 않은DBClusterIdentifier
리소스의 기본 정책은Snapshot
입니다. -
Amazon S3 버킷의 경우 삭제에 성공하려면 버킷에 있는 모든 객체를 삭제해야 합니다.
참고
CloudFormation의 기본 동작은 ForceDeleteWithoutRecovery 플래그가 있는 보안 암호를 삭제하는 것입니다.
-
Retain
-
CloudFormation에서 스택을 삭제하는 경우 리소스 또는 해당 콘텐츠가 삭제되지 않고 리소스가 유지됩니다. 어떤 리소스 유형에든 이 삭제 정책을 추가할 수 있습니다. CloudFormation에서 스택 삭제가 완료되면 스택은
Delete_Complete
상태가 됩니다. 하지만 보관된 리소스는 계속 존재하며 해당 리소스를 삭제할 때까지 적용 요금이 계속 발생합니다.업데이트 작업의 경우 다음 고려 사항이 적용됩니다.
-
리소스가 삭제되면
DeletionPolicy
는 물리적 리소스를 유지하지만 CloudFormation의 범위에서 삭제되도록 합니다. -
이전 리소스를 대체하기 위해 새로운 물리적 리소스가 생성되도록 리소스가 업데이트되면 CloudFormation 범위를 포함하여 이전 리소스가 완전히 삭제됩니다.
-
RetainExceptOnCreate
-
처음에 리소스를 생성한 스택 작업을 제외하고
RetainExceptOnCreate
는 스택 작업에 대해Retain
처럼 동작합니다. 리소스를 생성한 스택 작업이 롤백되는 경우 CloudFormation에서 해당 리소스를 삭제합니다. 스택 삭제와 같은 다른 모든 스택 작업의 경우 CloudFormation에서 리소스와 해당 콘텐츠를 보존합니다. 그 결과 비어 있고 사용되지 않는 새 리소스는 삭제되고 사용 중인 리소스와 해당 데이터는 유지됩니다. 템플릿을 업데이트하지 않고 이 삭제 정책을 API 파라미터로 사용하려면UpdateStack
API 설명서를 참조하세요. Snapshot
-
스냅샷을 지원하는 리소스의 경우 CloudFormation에서는 리소스를 삭제하기 전에 리소스에 대한 스냅샷을 생성합니다. CloudFormation에서 스택 삭제가 완료되면 스택은
Delete_Complete
상태가 됩니다. 하지만 이 정책을 사용하여 생성된 스냅샷은 계속 존재하며 해당 스냅샷을 삭제할 때까지 적용 요금이 계속 발생합니다.스냅샷을 지원하는 리소스는 다음과 같습니다.