AWS CloudFormation - AWS 上的 DevOps 簡介

AWS CloudFormation

AWS CloudFormation 是有助於開發人員能夠以有序、可預測的方式建立 AWS 資源的服務。資源是使用 JavaScript Object Notation (JSON) 或 Yet Another Markup Language (YAML) 格式編寫的文字檔案。這些範本需要特定的語法和結構,而需要的語法和結構取決於要建立和管理的資源類型。您可以使用任何程式碼編輯器 (例如AWS Cloud9) 在 JSON 或 YAML 中建立資源,並簽入到版本控制系統中,然後 CloudFormation 會以安全、可重複的方式建置指定的服務。

CloudFormation 範本會部署到 AWS 環境中成為堆疊。您可以透過 AWS 管理主控台、AWS 命令列介面或 AWS CloudFormation API 管理堆疊。如果您需要變更堆疊內的執行中資源,請更新堆疊。在變更資源之前,您可以產生變更集以列出請求變更的摘要。藉由變更集,您可以先掌握該變更對執行中資源 (特別是重要資源) 造成的影響,再實行變更作業。

圖 1

圖 1 - AWS CloudFormation 從一個範本工作流程建立整個環境 (堆疊)

您可以使用單一範本建立和更新整個環境,也可以使用個別的範本管理環境中的多個圖層。如此一來,範本即可模組化,同時也提供對許多組織都非常重要的管控層。

在主控台中建立或更新堆疊時,顯示組態狀態的事件將顯示。如果發生錯誤,堆疊預設將回復到以前的狀態。Amazon Simple Notification Service (Amazon SNS) 提供事件的通知。例如,您可以使用 Amazon SNS 透過電子郵件追蹤建立和刪除堆疊的進度,並以程式設計方式和其他程序整合。

AWS CloudFormation 讓組織和部署 AWS 資源集變得更輕鬆,並讓您在設定堆疊時能夠描述任何相依項或傳入特殊參數。

藉由 CloudFormation 範本,您可以使用多種 AWS 服務,例如 Amazon S3、Auto Scaling、Amazon CloudFront、Amazon DynamoDB、Amazon EC2、Amazon ElastiCache、AWS Elastic Beanstalk、Elastic Load Balancing、IAM、AWS OpsWorks 和 Amazon VPC。關於受支援的資源,如需資源的最新清單,請參閲 AWS 資源和屬性類型參考