Site icon Mr. 沙先生

如何透過 CloudFormation Import 管理已存在的 Resource

長期以來 CloudFormation 就不能管理「非 CloudFormation 建立」的 Resource,但是一般專案執行都是從「不熟」情況下先手動在 Web Console 點出想要的服務,等到熟悉之後才會開始玩到 CloudFormation 這類型的 IaC 服務,而同類型的 Terraform import 本來就內建了。

還在煩惱怎麼讓已存在的 Resource IaC (infrastructure as code) 的時候,AWS re:Invent 19 前幾天來了一個及時雨「New – Import Existing Resources into a CloudFormation Stack」馬上來試試看

先整理一下

CloudFormation import 「可以做」的事情

CloudFormation import 「解決」的事情

CloudFormation import 的「特性」和「限制」

CloudFormation import 的「延伸議題

  1. 如果 import 後只有指定 Bucket name,但該 Bucket 有開啟 Version 等其他參數沒寫在 CloudFormation 會怎樣?

不會怎樣,當下次拿相同的 CloudFormation Update 也不會覆蓋現有 Resource 參數,因為 CloudFormation template 並無異動

  1. 如果我 import 把 AutoScaling DesiredCapacity 填成 2 而且還 import 成功,但實際是 DesiredCapacity 為 1,下次拿同樣的 Stack update 會發生什麼事情?

不會有任何 ChangeSet,因為是拿「同樣」的 Stack update,CloudFormation 的 ChangeSet 是看前後版本 CloudFormation 差異產生。

  1. 乘 2. 所以使用 import 有可能 CloudFormation 和真實 Resource 會發生不同步的狀況?

對,所以必須再透過 drift 檢查狀態是否正常。

Exit mobile version