CloudFormation DeletionPolicy 的使用時機與技巧

2020-01-05 AWS

前陣子常常在解釋 CloudFormation DeletionPolicy 的用途,發現大家在寫 CloudFormation 時除了 Resource 以外的參數都很少會去用到,但實際上 DeletionPolicy 卻能讓管理上帶來更多的保護與方便,這篇會解釋一下 DeletionPolicy 可以怎麼用。

本文內容實際以 AWS DeletionPolicy Attribute 為主

基本上 DeletionPolicy 主要功能就是在「Delete Resource」時會發生,其 DeletionPolicy 參數有幾種適用情況

DeletionPolicy: Delete (預設)

不指定 DeletionPolicy 的情況下預設是 Delete,也就是會真的刪除 Resource

使用情境:(預設) 當 CloudFormation 不存在此 Resource 就刪除 Resource。

對於一些重要的 Resource 不適合使用 Delete 多為含有「資料」:

DeletionPolicy: Retain

Retain 本身是為了修正或補救 CloudFormation 與真實 Resource 產生差異時的參數,當該 Resource Delete 時,並不會真實的刪除 Resource 只會把 CloudFormation Resource 刪掉,通常是 CloudFormation 發生 drift 與 Resource 不一致的情況。

使用情境:

  • CloudFormation import 必須指定 Retain 才會觸發 import Resource
  • 避免 CloudFormation 刪除真實 Resource 而做的保護措施
  • 當真實 Resource 不存在,但 CloudFormation 仍存在時產生 drift 的補救方法
  • 當要從 Elastic beanstalk 分離指定 Resource 時,指定 Retain 脫離管理

DeletionPolicy: Snapshot

Snapshot 對於一些會含有「資料」的重要服務支援的參數,當指定為 Snapshot 時被 Delete 後會自動產生 Snapshot。

使用情境:Resource 可以被刪除,但需要保留 Snapshot 備份

Snapshot 僅支援以下 Resource 可以使用:

給 Mr. 沙先生一點建議

彙整

分類

展開全部 | 收合全部

License

訂閱 Mr. 沙先生 的文章

輸入你的 email 用於訂閱