删除AWS CloudFormation堆栈但保留Route53记录集

时间:2017-09-26 19:15:49

标签: amazon-web-services dns amazon-cloudformation amazon-route53

上下文:我一直在使用CloudFormation配置应用程序资源,这已经很好了。但是,我最近将我的应用程序移到了不同​​的基础架构(Kubernetes),为了实现这一改变,我修改了Route53 DNS记录以指向新资源,并留下了CloudFormation创建的所有AWS资源。为清楚起见,我修改的DNS记录是作为CloudFormation堆栈的一部分创建的。

问题:我想删除现在未使用的资源,包括CloudFormation堆栈本身。但是,这样做会删除我非常关心的DNS记录,或者因为已经修改而无法删除DNS记录,从而回滚整个操作。

问题是否有人知道一种聪明的方法,我可以删除CloudFormation堆栈,同时仍保留由其创建的Route53条目,停机时间为零?

注意:我不想手动删除CloudFormation创建的资源(DNS记录除外),并让堆栈闲置。

2 个答案:

答案 0 :(得分:2)

最近,我需要保留使用CloudFormation创建的Route53记录。我根据@jarmod响应执行了以下练习,效果很好。这里的关键是:"DeletionPolicy" : "Retain"有关DeletionPolicy attribute的更多信息。我还将注意到,当我应用更改集更改删除策略时,CloudFormation DID不会在Route53条目中检测到任何偏移。成功!

  1. 创建一个基本的CloudFormation堆栈;负载均衡器,ASG和指向负载均衡器的Route53记录
  2. 使用Route53控制台将Route53条目更改为指向另一个位置
  3. 通过更改集将"DeletionPolicy" : "Retain"应用于我的Route53资源块
  4. 从AWS控制台删除CloudFormation堆栈
  5. 在删除堆栈后,确认Route53仍然有您的条目

Image of CloudFormation Skipping Delete

答案 1 :(得分:1)

拒绝删除Route53的权限并分两个阶段删除堆栈。

Delete Stack Fails

  

当堆栈处于DELETE_FAILED状态时,因为AWS CloudFormation   无法删除资源,请使用以下命令重新运行删除   RetainResources参数并指定AWS的资源   CloudFormation无法删除。 AWS CloudFormation删除堆栈   不删除保留的资源。保留资源   当您无法删除资源时很有用,例如S3存储桶   包含要保留的对象,但仍要删除   堆栈。删除堆栈后,可以手动删除   通过使用关联的AWS服务保留资源。