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