一般問題

問:什麼是 AWS CloudFormation?

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

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

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

問: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 服務頁面。

AWS CloudFormation Registry 和 AWS CloudFormation 自訂資源可讓您管理其他 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 可自動將 Amazon EBS 磁碟區和 Amazon EC2 執行個體標記所屬 AWS CloudFormation 堆疊的名稱。

問:我能否存取 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 產品頁面上的建立免費帳戶。註冊後,請參閱 AWS CloudFormation 文件,其中包含入門指南。

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

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

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

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

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

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

AWS CloudFormation Registry

問:什麼是 AWS CloudFormation Registry?

AWS CloudFormation Registry 是一項受管服務,可讓您登錄、使用和發現 AWS 及第三方資源供應程式。第三方資源供應程式必須先登記,才可使用 AWS CloudFormation 範本用於佈建資源。如須詳細資訊,請參閱我們的文件

問:AWS CloudFormation 中的資源供應程式是什麼?

資源供應程式是指透過建立、讀取、更新、刪除和列出操作,控制潛在資源生命週期的資源類型組合,包括規格和常式。您可以使用資源供應程式,利用 CloudFormation 建模和佈建資源。例如:AWS::EC2::Instance 即為來自 Amazon EC2 供應程式的資源類型。您可以使用 CloudFormation,利用此類型建模並佈建 Amazon EC2 執行個體。若使用 AWS CloudFormation Registry,您可以建立並使用資源供應程式建模和佈建第三方資源,例如 SaaS 監控、團隊生產力或原始碼管理資源。

問:AWS 和第三方資源供應程式有何差別?

AWS 和第三方資源供應程式的差別在於其來源。
AWS 資源供應程式是由 Amazon 和 AWS 建立和維護,目的是管理 AWS 資源和服務。例如:三個 AWS 資源供應程式協助您管理 Amazon DynamoDB、AWS Lambda 和 Amazon EC2 資源。這些供應程式包括的資源類型如:AWS::DynamoDB::Table、AWS::Lambda::Function 和 AWS::EC2::Instance。如須完整參考資訊,請瀏覽文件。

第三方資源供應程式是由其他公司、組織或開發人員社群所建立。能夠幫忙您管理 AWS 及非 AWS 資源,例如 AWS 應用程式資源和非 AWS SaaS 軟體服務,例如:監控、團隊生產力、事件管理或版本控制管理工具。

問:什麼是資源結構描述?

在資源供應程式中,是使用 CloudFormation 資源結構描述定期其性質和屬性,以此方式表現資源類型。此結構描述也用於驗證資源類型的定義。

問:我如何開發資源供應程式或資源類型?

使用 AWS CloudFormation CLI 建立資源供應程式。您可以從定義簡單的資源宣告結構描述開始,當中包含必要的許可以及與其他資源的關係。接著,使用 CloudFormation CLI 產生適用於資源生命週期常式(建立、讀取、更新、刪除和列出)的鷹架及單元和整合測試用的測試虛設常式。

問:我如何登記資源供應程式?

您可以使用開放原始碼 AWS CloudFormation CLI 或直接叫用透過 AWS 軟體開發套件和 AWS CLI 提供的 RegisterType 及相關登錄 API。有關更多詳細資訊,請參閱我們的文件。AWS 資源供應程式立即可用,使用前不需要其他登錄步驟。

計費

問:AWS CloudFormation 的費用是多少?

使用 AWS CloudFormation 搭配以下命名空間的資源供應程式:AWS::*、Alexa::* 和 Custom::*,不收取額外費用。在此情況下,使用 AWS CloudFormation ,以手動建立資源的方式建立的 AWS 資源 (例如 Amazon EC2 執行個體、Elastic Load Balancing 負載平衡器等),需支付相關費用。您只需按實際用量付費;沒有最低費用,也不需要前期承諾。

您搭配上述命名空間以外的資源供應程式使用 AWS CloudFormation 的話,則依每次常式操作收費。常式操作是指資源上的建立、更新、刪除、讀取或列出動作。如需詳細資訊,請參閱我們的定價頁面

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

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

限額和限制

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

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

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

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

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

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

區域與端點

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

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

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

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

進一步了解 AWS CloudFormation 定價

參閱 AWS CloudFormation 定價頁面
準備好開始建立?
開始使用 AWS CloudFormation
還有其他問題嗎?
聯絡我們