CloudFormation 範本基礎

在 AWS 上自動化部署

Dunieski Otano

Amazon Web Services Solutions Architect

為何使用基礎架構即程式碼

drift

  • 手動在主控台點選會隨時間產生 drift
  • IaC 以檔案宣告期望狀態
  • 可重現、可審查、有版本
  • CloudFormation、SAM、CDK 是 AWS 工具組
在 AWS 上自動化部署

CloudFormation 範本結構

param

  • Resources(必填):你要佈建的基礎架構
  • Parameters:部署時傳入的輸入值
  • Outputs:stack 輸出的值
  • Mappings、Conditions、Transform:輔助工具(Transform 啟用 SAM)
在 AWS 上自動化部署

內建函式(Intrinsic functions)

intrinsic

  • Ref:參照參數或其他資源
  • Fn::GetAtt:讀取資源的屬性
  • Fn::Sub:將變數代入字串
  • 短寫:Ref!GetAtt!Sub
在 AWS 上自動化部署

使用變更集合預覽更新

  • 變更集合可預覽更新會做什麼
  • 列出每個 Add、Modify、Remove 動作
  • 標示會被取代的資源
  • 執行或丟棄,避免意外更新

changeset

在 AWS 上自動化部署

偏移偵測(Drift detection)

  • Drift:資源在 CloudFormation 之外被變更
  • 逐資源狀態:IN_SYNC、MODIFIED、DELETED、NOT_CHECKED
  • 逐資源報告顯示差異
  • 重新部署範本以對齊

detection

在 AWS 上自動化部署

部署與更新 Stack

  • Create stack:首次部署
  • Update stack:就地更新資源
  • Stack events* 顯示每一步
  • 失敗的更新會回復到先前狀態

update

在 AWS 上自動化部署

一起來練習吧!

在 AWS 上自動化部署

Preparing Video For Download...