Study Notes - CloudFormation


CloudFormation 是 AWS Infrastructure as code (IaS) 的實踐,整理一系列學習筆記與心得。基本概念、生命週期、Debug 技巧等 ….

效益

CloudFormation 主要用來將資源模組化 (model),然後可以快速配置新環境,節省時間,因為是透過文字描述檔 (Template),所以可以進 Source Control,達到版控的目的。文件提到有以下三個效益:

  • Simplify Infrastructure Management:簡化基礎建設資源的管理
  • Quickly Replicate Your Infrastructure:快速重建基礎建設資源
  • Easily Control and Track Changes to Your Infrastructure:更加容易管理和追蹤資源異動

系列文章

底下是 CloudFormation 系列文章的連結與整理。

類似工具與技術 (Alternatives)

除了 CloudFormation,其他還有很多的產品,是 Chef、Ansible、Puppet、Salt 是類似的東西。

這些產品可以做到類似的 IaC 的事情,但是概念與用途不見得雷同

但我覺得還是有差異的,其他的比較是針對 OS 上面的 Application 做自動化,CloudFormation 則是可以從 Network、Instance (VM) 提供 (Provisioning)、配置 (Configure Management),涵蓋層面廣泛很多,缺點就是:他是 AWS 自己的,無法跨其他 Cloud。

除了 CloudFormation,還有其他很多類似的工具,以下整理知名的:

  • Terraform:是最有名的 IaC 產品,可以跨不同的 Cloud,像是 AWS、Azure 等。
  • Ansible:也有 Cloud Module,可以做類似的事情,但不是那麼完整,他還是比較適合 Application Level 的 Deployment。
  • Chef / Puppet: 都比較適合應用程式的部署 (Deployment), 也可以做作業系統內部的程式 Provisioning.

我把 DevOps 分成幾個 Stages: Provisioning, Deployment, Configuration, Observation, Security.

CloudFormation 則是屬於 Provisioning、Configuration、Security,完成後再讓應用程式透過其他工具部署上去。

用 Container 的術語來說,我描述的 DevOps Stages 叫做 Orchestration,現在流行的有 K8S / AWS ECS

延伸閱讀 (站內)

參考資料


Comments