

새로운 *CloudFormation 템플릿 참조 안내서*입니다. 북마크와 링크를 업데이트하세요. CloudFormation을 시작하는 데 도움이 필요한 경우 [AWS CloudFormation 사용 설명서](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html)를 참조하세요.

# `DeletionPolicy` 속성
<a name="aws-attribute-deletionpolicy"></a>

`DeletionPolicy` 속성을 사용하면 스택이 삭제될 때 리소스를 보존하고 경우에 따라 백업할 수 있습니다. 제어할 각 리소스에 대한 `DeletionPolicy` 속성을 지정합니다. 리소스에 `DeletionPolicy` 속성이 없는 경우 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
<a name="aws-attribute-deletionpolicy-example.json"></a>

```
{
  "AWSTemplateFormatVersion" : "2010-09-09",
  "Resources" : {
    "MyBucket" : {
      "Type" : "AWS::S3::Bucket",
      "DeletionPolicy" : "Retain"
    }
  }
}
```

## YAML
<a name="aws-attribute-deletionpolicy-example.yaml"></a>

```
AWSTemplateFormatVersion: '2010-09-09'
Resources:
  MyBucket:
    Type: AWS::S3::Bucket
    DeletionPolicy: Retain
```

## `DeletionPolicy` 옵션
<a name="aws-attribute-deletionpolicy-options"></a>

`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](https://docs.aws.amazon.com/AWSCloudFormation/latest/APIReference/API_UpdateStack.html) API 설명서를 참조하세요.

`Snapshot`  
스냅샷을 지원하는 리소스의 경우 CloudFormation에서는 리소스를 삭제하기 전에 리소스에 대한 스냅샷을 생성합니다. CloudFormation에서 스택 삭제가 완료되면 스택은 `Delete_Complete` 상태가 됩니다. 하지만 이 정책을 사용하여 생성된 스냅샷은 계속 존재하며 해당 스냅샷을 삭제할 때까지 적용 요금이 계속 발생합니다.  
스냅샷을 지원하는 리소스는 다음과 같습니다.  
+ [AWS::DocDB::DBCluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-docdb-dbcluster.html)
+ [AWS::EC2::Volume](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-ec2-volume.html)
+ [AWS::ElastiCache::CacheCluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticache-cachecluster.html)
+ [AWS::ElastiCache::ReplicationGroup](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticache-replicationgroup.html)
+ [AWS::Neptune::DBCluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-neptune-dbcluster.html)
+ [AWS::RDS::DBCluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-rds-dbcluster.html)
+ [AWS::RDS::DBInstance](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-rds-dbinstance.html)
+ [AWS::Redshift::Cluster](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-redshift-cluster.html)