AWS CloudFormation 是 AWS 原生的 「基礎設施即代碼 (Infrastructure as Code, IaC)」 服務。
簡單來說,它的概念是:「不要手動去 AWS Console 點擊滑鼠建立資源,而是寫一份『程式碼/腳本』,讓 AWS 自動幫你把整個環境蓋起來。」
這也是 AWS 架構師考試(SAA, SAP)與 DevOps 實務中最重要的服務之一。1. 核心概念 (Core Concepts)
要理解 CloudFormation,只需記住這三個名詞:
A. Template (範本) —— 就是那份「藍圖」
- 這是一個純文字檔案,格式為 JSON 或 YAML(推薦用 YAML,比較好讀)。
- 你在裡面描述你「想要」什麼資源。例子:「我想要一台 t2.micro 的 EC2,和一個 S3 Bucket。」
- 這是一種 宣告式 (Declarative) 語言,你只要告訴它「結果要什麼」,不需要寫「怎麼做」。
B. Stack (堆疊) —— 蓋出來的「建築物」
- 當你把 Template 上傳給 AWS,CloudFormation 就會根據藍圖生成一組資源,這組資源統稱為一個 Stack。
- 管理單位:你操作的是 Stack,而不是個別資源。刪除 Stack = 裡面定義的 EC2、RDS、VPC 會全部被自動刪除(乾淨俐落)。
C. Change Set (變更集) —— 施工前的「預覽圖」
- 當你想要修改現有的 Stack(例如:把資料庫變大)時,直接執行可能會嚇到人。
- 你可以先建立一個 Change Set,它會告訴你:「如果你執行這個更新,我會替換掉這台 EC2,並保留那個 S3。」
- 確認沒問題後,再按執行 (Execute)。
2. 為什麼要用它? (Benefits)
- 自動化與一致性:避免「人工手滑」設定錯誤。開發環境 (Dev) 和生產環境 (Prod) 可以保證 100% 長得一樣,因為是用同一份 Code 跑出來的。
- 版本控制 (Git):因為基礎設施變成了「程式碼」,你可以把它存入 GitHub/GitLab。誰在什麼時候改了防火牆規則,通通查得到。
- 快速複製:要在另一個 Region(例如從東京搬到美國)建立一模一樣的架構,只需要把 Template 再跑一次即可。
- 免費:CloudFormation 服務本身免費,你只需為它建立出來的資源(如 EC2)付費。
3. 考試/面試 重點功能 (Key Features)
這些是認證考試中關於 CloudFormation 的常見關鍵字:
- Drift Detection (漂移偵測):情境:你用 CloudFormation 建好了環境,結果有個同事「手癢」直接去 Console 改了 Security Group 的規則。功能:Drift Detection 可以掃描並告訴你:「現在實際的環境跟你的 Template 藍圖不一樣了!」
- Nested Stacks (巢狀堆疊):情境:架構太大,Template 寫了 2000 行,很難維護。功能:把常用的部分(如標準 VPC 網路架構)寫成一個獨立 Template,然後在其他 Template 裡引用它。這就是模組化的概念。
- StackSets:關鍵字:Cross-Region (跨區域) 或 Cross-Account (跨帳號)。功能:讓你按一個按鈕,就同時在多個 AWS 帳號、多個 Region 部署同樣的 Stack。
- DependsOn:控制資源建立的順序。例如:必須先建立 VPC,然後才能建立 EC2。
- DeletionPolicy:防止誤刪重要資料。例如:設定資料庫的 DeletionPolicy 為 Retain,即使你刪除了 Stack,這個資料庫也會被保留下來。
4. 常見比較:CloudFormation vs. Terraform vs. CDK

總結
如果你想在 AWS 上建立「可複製」、「可版控」、「自動化」的環境,CloudFormation 是最基礎的標準答案。















