問:什麼是 AWS CloudFormation?

AWS CloudFormation 是一種讓開發人員和企業都能輕鬆建立相關 AWS 資源集合,並按順序和可預測的方式對其進行佈建的服務。

問:開發人員現在可以透過 AWS CloudFormation 執行哪些以前無法執行的功能?

AWS CloudFormation 可將重複且可預測的相關資源 (用於支援您的應用程式) 群組建立任務自動化,並加以簡化。現在,建立和互相連接應用程式執行所需的所有資源,就和建立單一 EC2 或 RDS 執行個體一樣簡單。

開始免費使用 AWS

建立免費帳戶
或者,請登入主控台

AWS 免費方案包括 Amazon ElastiCache 提供的 750 小時微型快取節點。

查看 AWS 免費方案詳細資訊 »

問:AWS CloudFormation 與 AWS Elastic Beanstalk 有什麼區別?

這些服務的設計目的是使二者相輔相成。AWS Elastic Beanstalk 提供可在雲端輕鬆部署和執行應用程式的環境。它與開發人員工具整合,提供「一站式」體驗讓您管理應用程式的生命週期。AWS CloudFormation 是一種便捷的佈建機制,適用於眾多 AWS 資源。它支援許多不同應用程式類型的基礎設施需求,如現有的企業級應用程式、傳統應用程式、使用各種 AWS 資源建構的應用程式,以及以容器為基礎的解決方案 (包括使用 AWS Elastic Beanstalk 建構而成的解決方案)。

AWS CloudFormation 支援 Elastic Beanstalk 應用程式環境,將其作為其中一種 AWS 資源類型。例如,這可讓您建立和管理 AWS Elastic Beanstalk 託管的應用程式和 RDS 資料庫,用於儲存應用程式資料。除了 RDS 執行個體,還可在群組中新增任何其他支援的 AWS 資源。

問:AWS CloudFormation 引入哪些新概念?

AWS CloudFormation 引入以下兩個概念:範本 (一種 JSON 或 YAML 格式的文字檔案,用於描述執行應用程式所需部署的所有 AWS 資源) 和堆疊 (AWS 資源集合,在 AWS CloudFormation 產生範本時,做為一個單位進行建立和管理)。

問:如何開始使用 AWS CloudFormation?

您可以透過 AWS 管理主控台輕鬆存取 AWS CloudFormation,主控台提供點選式 Web 界面供您部署和管理堆疊。只需幾個簡單步驟,就能在 AWS 管理主控台中建立新的堆疊:

  1. 命名堆疊:為堆疊提供唯一名稱。
  2. 選擇範本:從本機檔案系統或 Amazon S3 URL 中選擇範本。這可以是其中一個 AWS CloudFormation 範例範本、您自己的自訂範本、在原始程式碼控制儲存庫中管理的範本,或者從第三方獲得的範本。
  3. 指定任何參數:如果範本允許您設定部署,則填寫任意參數或使用指定的預設參數。
  4. 按一下 "Create":開始部署。您可以在 AWS 管理主控台中查看部署的目前狀態,包含所有資源名稱和堆疊事件。

問:AWS CloudFormation 支援哪些資源?

若要查看支援的 AWS 資源完整清單及其功能,請參閱文件發行記錄的支援的 AWS 服務頁面。

AWS CloudFormation 自訂資源可讓您管理其他 AWS 和非 AWS 資源。

問:我能否管理屬於 AWS CloudFormation 堆疊的個別 AWS 資源?

是。AWS CloudFormation 並不會阻礙您完全控制基礎設施中的所有元素。您可以繼續使用所有現有的 AWS 和第三方工具管理 AWS 資源。

問:AWS CloudFormation 範本有什麼元素?

AWS CloudFormation 範本是 JSON 或 YAML 格式的文字檔,由五種元素組成:

  1. 選用的範本參數清單 (堆疊建立時提供的輸入值)
  2. 選用的輸出值清單 (如 Web 應用程式的完整 URL)
  3. 選用的資料表清單,用於查詢靜態設定值 (如 AMI 名稱)
  4. AWS 資源及其設定值的清單
  5. 範本檔案格式版本號碼

建構堆疊時,您可以使用參數在執行時自訂範本的各個方面。例如,建立堆疊時,您可以將 Amazon RDS 資料庫大小、Amazon EC2 執行個體類型、資料庫和 Web 伺服器連接埠號碼傳輸到 AWS CloudFormation。每個參數可以使用預設值和描述,也可標記為 "NoEcho",以便隱藏您在螢幕上以及 AWS CloudFormation 事件日誌中輸入的實際值。建立 AWS CloudFormation 堆疊時,AWS 管理主控台將自動合成並顯示一個彈出式對話表單,供您編輯參數值。

輸出值可以非常方便地透過 AWS 管理主控台或命令列工具,向使用者顯示堆疊的重要資源 (如 Elastic Load Balancing 負載平衡器或 Amazon RDS 資料庫的位址)。您可以透過簡單函數來串連字串常值以及與實際 AWS 資源關聯的屬性值。

問:AWS CloudFormation 如何選擇實際的資源名稱?

您可以在範本中為 AWS 資源指派邏輯名稱。建立堆疊時,AWS CloudFormation 會將邏輯名稱與對應的實際 AWS 資源名稱綁定。實際資源名稱是堆疊和邏輯資源名稱的組合。這樣就可以從一個範本建立多個堆疊,而不必擔心 AWS 資源名稱衝突。

問:為什麼無法命名所有資源?

雖然 AWS CloudFormation 可讓您命名某些資源 (例如 Amazon S3 儲存貯體),不過 CloudFormation 不允許命名所有資源。命名資源會限制範本的重複使用性,而且當更新導致需要取代資源時,會造成命名衝突。為盡量減少這些問題,CloudFormation 會依個別情況決定是否支援資源命名。

問:可否在堆疊建立時使用 AWS CloudFormation 安裝軟體?

是。AWS CloudFormation 提供一組應用程式引導指令碼,您只需在 CloudFormation 範本中加以描述,即可在 EC2 執行個體上安裝套件、檔案和服務。有關詳細資訊和操作說明,請參閱 Bootstrapping Applications via AWS CloudFormation

問:AWS CloudFormation 可否與 Chef 一起使用?

是。AWS CloudFormation 可用於在 EC2 執行個體中引導 Chef Server 和 Chef Client 軟體。有關詳細資訊和操作說明,請參閱 Integrating AWS CloudFormation with Chef

問:AWS CloudFormation 可否與 Puppet 一起使用?

是。AWS CloudFormation 可用於在 EC2 執行個體中引導 Puppet Master 和 Puppet Client 軟體。有關詳細資訊和操作說明,請參閱 Integrating AWS CloudFormation with Puppet

問:AWS CloudFormation 是否支援 Amazon EC2 標記?

是。支援標記功能的 Amazon EC2 資源也可在 AWS 範本中加上標籤。標籤值可以引用範本參數、其他資源名稱、資源屬性值 (如位址),或者由簡單函數 (如串接的字串清單) 計算而得到的值。

AWS CloudFormation 使用所屬 AWS CloudFormation 堆疊的名稱,自動為 Amazon EBS 磁碟區和 Amazon EC2 執行個體加上標籤。

問:我能否存取 Amazon EC2 執行個體,或 Auto Scaling 啟動組態使用者資料欄位?

是。您可以使用簡單函數來串接字串常值和 AWS 資源的屬性值,並將它們傳遞到範本中的使用者資料欄位。請參閱我們的範例範本,進一步了解這些易用的函數。

問:堆疊中某個資源無法成功建立時會發生什麼情形?

預設情況下,會啟用「錯誤時自動復原」功能。這會刪除直到錯誤發生為止 AWS CloudFormation 為堆疊成功建立的所有 AWS 資源。例如,當您意外超過了 Elastic IP 地址的預設限制,或者無權存取要嘗試執行的 EC2 AMI 時,就可以使用此功能。使用此功能可讓您根據已成功建立堆疊或完全未建立堆疊這兩種情況,簡化系統管理以及以 AWS CloudFormation 為基礎建構的分層式解決方案。

問:是否可以等到我的應用程式完成啟動後再建立堆疊?

是。AWS CloudFormation 提供 WaitCondition 資源,扮演屏障的角色,在從您的應用程式或管理系統等外部資源收到完成訊號前,阻止其他資源的建立。

問:是否可以在刪除堆疊時儲存我的資料?

是。AWS CloudFormation 允許您在範本中定義資源的刪除政策。您可以指定在刪除 Amazon EBS 磁碟區或 Amazon RDS 資料庫執行個體前為它們建立快照。也可以指定在刪除堆疊時應保留的資源,不要將其刪除。如果要在刪除堆疊時保留 Amazon S3 儲存貯體,可以使用此功能。

問:建立堆疊後,能否對其進行更新?

是。您可以使用 AWS CloudFormation,以可控制且可預測的方式修改和更新現有堆疊中的資源。透過使用範本來管理堆疊變更,您就可以對 AWS 基礎設施套用版本控制,如同您對基礎設施上執行之軟體套用版本控制的方法一樣。

問:能否在 Virtual Private Cloud (VPC) 中建立堆疊?

是。CloudFormation 支援建立 VPC、子網路、閘道、路由表和網路 ACL,還支援在 VPC 中建立彈性 IP、Amazon EC2 執行個體、EC2 安全群組、Auto Scaling 群組、Elastic Load Balancer、Amazon RDS 資料庫執行個體和 Amazon RDS 安全群組等資源。



問:如何註冊 AWS CloudFormation?

若要註冊 AWS CloudFormation,請按一下 AWS CloudFormation 詳細資訊頁面上的 Create Free Account。註冊後,請參閱 AWS CloudFormation 文件,其中包含入門指南。

問:註冊 AWS CloudFormation 時為什麼需要驗證我的電話號碼?

AWS CloudFormation 註冊要求您在 AWS 上登記有效電話號碼和電子郵件地址,以便我們需要聯繫您時使用。驗證您的電話號碼只需要幾分鐘時間。註冊過程中您會接到一通自動電話,然後需要您使用電話鍵盤輸入 PIN 碼。

問:註冊後,如何開始使用?

了解如何開始使用 AWS CloudFormation 的最佳方式就是仔細閱讀包含在技術文件中的入門指南。只需短短幾分鐘,您就能部署和使用我們提供的其中一個範例範本,這些範本示範如何建立執行 Tracks 和 WordPress 等應用程式所需的基礎設施。

問:是否有範例範本可用來測試 AWS CloudFormation?

是,AWS CloudFormation 提供範例範本,您可以用來測試執行相關服務,並了解其功能。我們的範例範本會解說如何按照多個可用區域冗餘、擴展和發出警示的最佳實務,以協調的方式互相連接和使用多種 AWS 資源。若要開始使用,您只需前往 AWS 管理主控台,按一下 Create Stack,然後按照步驟選擇和啟動其中一個範例即可。建立後,在主控台中選擇您的堆疊,並檢閱 TemplateParameter 標籤,以查看用於建立各個堆疊的範本檔案詳細資訊。

問:AWS CloudFormation 的費用是多少?

使用 AWS CloudFormation 並不收取其他費用。您只需為建立的 AWS 資源 (如 Amazon EC2 執行個體和 Elastic Load Balancing 負載平衡器等) 付費。

問:對於堆疊建立失敗期間復原的資源,我是否需要付費?

是。無論整個堆疊能否建立成功,範本產生實體期間建立的 AWS 資源均需收費。

問:範本或堆疊的數量是否有限制?

範本的數量沒有限制。每個 AWS CloudFormation 帳戶最多可建立 200 個堆疊。請在此處填寫提高額度申請表,我們將在兩個工作天內答覆您的請求。

問:描述欄位的長度是否有限制?

範本、參數、輸出和資源描述欄位的長度限制為 4096 個字元。

問:範本中參數或輸出的數量是否有限制?

一個範本最多可包含 60 個參數和 60 個輸出。

問:每個區域的 AWS CloudFormation 服務存取點各為何?

有關各個區域的終端節點,請參閱技術文件

問:目前有哪些 AWS 區域提供 AWS CloudFormation?

請參閱區域性產品和服務,了解 CloudFormation 在不同區域的可用性詳細資訊。