您需要了解的有關 AWS CloudFormation 的所有信息

已發表: 2021-12-28

Encap - 博客(續)


AWS CloudFormation是 Amazon 提供的一項專門服務,旨在幫助用戶設置和建模 AWS 資源。 它使您能夠將更多時間花在重要的事情上,例如專注於管理 AWS 資源並將您的注意力集中在 AWS 內運行的應用程序上。

您可以創建一個模板,為您提供 AWS 中所需資源的描述,例如 Amazon RDS 數據庫實例和 Amazon EC2 實例。 CloudFormation 旨在為用戶優化配置和預置這些 AWS 資源。 不再需要單獨創建或配置這些資源,因為 AWS CloudFormation 完全負責。

在本博客中,我們將嘗試了解您需要了解的有關 AWS 配置的所有信息。

AWS CloudFormation 的工作


AWS CloudFormation是一個在堆棧概念上起作用的概念。 它使您可以針對一個單元集體創建和刪除 AWS 資源。 用戶可以定義與映射、堆棧參數、輸出值和資源屬性相關的特徵。 這是通過一個模板完成的,該模板是一個符合 JSON 的文件。

您可以從頭開始編寫和創建模板,也可以使用 AWS 預先提供的示例模板之一。 除此之外,用戶還可以充分利用 CloudFormation 中的許多 AWS 產品,例如 Amazon EC2、Amazon RDS、Amazon Elastic Beanstalk。

在創建堆棧時,AWS CloudFormation 會對 AWS 進行特定的服務調用。 這有助於配置和預置 AWS 資源。 CloudFormation 僅執行您有權執行的操作。 例如,如果您希望使用 AWS CloudFormation 創建 Amazon EC2,那麼您將需要特殊權限。 除此之外,還需要刪除堆棧和終止實例。

要管理權限,個人可以使用 AWS Identity and Access Management。 在此之後,AWS CloudFormation 處理的調用由模板聲明。 為確保您在 YAML 或 JSON 中創建和修改 CloudFormation 模板,需要使用AWS CloudFormation Designer。 您可以創建帳戶並立即開始設計。

此外,您還可以更喜歡其他文本編輯器來執行相同的操作,但 AWS 設計器是獲得有效性的合適平台。 CloudFormation 模板詳細說明了您希望使用的資源以及與它們關聯的設置。 例如,如果您希望創建一個 EC2 實例,那麼您的模板將聲明相同並相應地描述屬性。

創建模板後,將其保存在 S3 存儲桶中或本地。 您還必須確保使用 .yaml、.txt 或 .json 等擴展名保存它。 通過在本地計算機上指定 Amazon S3 URL 或模板文件位置來形成 CloudFormation 堆棧。 如果您認為模板包含一些參數,那麼您可以提供相同的輸入值,然後您可以繼續創建堆棧的方向。 這些參數允許您為 CloudFormation 模板輸入值,並且您可以在每次希望創建堆棧時自定義資源。

請記住,如果您只是指定或調用本地存儲的模板,則 CloudFormation 將自動將其上傳到 AWS 賬戶的 S3 存儲桶中。 AWS CloudFormation 旨在為您可以上傳模板文件的所有區域創建存儲桶。 在賬戶中啟用了 Amazon S3 權限的每個人都可以訪問 CloudFormation 中的存儲桶。

AWS CloudFormation 概念


無論何時使用 AWS CloudFormation,您都可以使用模板和堆棧。 您可以創建模板來描述 AWS 資源及其屬性。 每當您創建堆棧時,CloudFormation 都會預配模板中描述的資源。

1. 模板


AWS CloudFormation 模板是 JSON 或 YAML 格式的文本文件。 使用任何擴展名(例如 .yaml、.template、.txt 或 .json)保存這些文件很容易。 AWS CloudFormation 使用這些模板作為構建 AWS 資源的藍圖。

例如,您可以在模板中將 Amazon EC2 實例描述為實例類型、AMI ID、塊儲存設備映射和 Amazon EC2 密鑰對名稱。 每當您創建堆棧時,您還可以提及 CloudFormation 用於創建您在模板中描述的任何內容的模板。

2. 堆棧

當您使用AWS CloudFormation時,您可以將相關資源作為一個稱為堆棧的單元進行管理。 只需創建、更新和刪除堆棧,就可以輕鬆創建、更新甚至刪除資源集合。 堆棧中存在的所有資源都由堆棧的 CloudFormation 模板定義。

假設您創建了一個包含 Auto Scaling 組、Amazon Relational Database Service 數據庫實例和 Elastic Load Balancing 負載均衡器的模板。 對於這些資源的創建,您可以通過提交您創建的模板來創建堆棧,CloudFormation 會為您提供所有這些資源。 您可以使用 CloudFormation 控制台、AWS CLI 和 API 來處理堆棧。

3. 變更集

如果您認為應該更改為堆棧中正在運行的資源,則可以更新堆棧。 在對資源進行任何更改之前,可以生成一個更改集,它基本上是所有建議更改的摘要。 變更集允許您查看變更如何影響正在運行的資源,尤其是在實施關鍵資源之前。

例如,如果您更改 Amazon RDS 數據庫實例的名稱,AWS CloudFormation 將創建一個新數據庫並刪除舊數據庫。 除非您已經備份了舊數據庫,否則您不能冒險丟失舊數據庫中的數據。 如果您形成了一個變更集,您將看到該變更將導致數據庫被替換,並且您會覺得您在更新堆棧之前已經進行了相應的計劃。

為什麼需要 AWS CloudFormation?

要創建支持驗收、生產和測試環境的架構,需要 AWS CloudFormation 來幫助執行一些相同的活動。 CloudFormation 為構建此架構而執行的常見活動是啟動實例、創建負載均衡器、進行所需的安裝、將實例附加到負載均衡器、創建 RDS 和配置 EC2 安全組、創建和配置安全組以及創建自動-縮放組。

用於基礎設施自動化的 AWS CloudFormation 模板是一個 JSON 文件,基本上旨在成為一個強大的工具,可以管理所有重要的事情。 它基本上有助於指定資源的必要性,而 CloudFormation 以可預測的切線為您提供資源配置。

可以使用 AWS CloudFormation 的情況

AWS CloudFormation 使用 AWS 管理控制台、AWS 命令​​行界面和 API 幫助部署或升級模板及其資源集合。 它的使用案例不收取額外費用,因為您只需為運行專用應用程序重要的 AWS 資源付費。

因此,可以得出結論,AWS CloudFormation 是基礎設施即代碼,這實際上意味著它可以用於閱讀、重用和審查事物。 下面,我們將看到一些使用 AWS CloudFormation 的情況。 這將有助於獲得更好的清晰度。

AWS Cloud Formation 有助於執行以下操作:

1. 簡單的基礎設施管理

要製作還包含後端數據庫的可擴展 Web 應用程序,您最終可能會使用 Auto Scaling 組、Amazon Relational Database Service 數據庫實例和 Elastic Load Balancing 負載均衡器。

這些服務單獨用於配置資源,在創建資源後,您可以將它們配置為相互協作。 在應用程序啟動和運行之前,這些任務增加了複雜性和時間。 您創建一個 AWS CloudFormation 模板並修改現有模板。

模板能夠描述所有資源和屬性。 當您使用模板創建 CloudFormation 堆棧時,會為您預置自動擴展組、負載均衡器和數據庫。 成功創建堆棧後,AWS 資源將啟動並運行。 堆棧可以輕鬆刪除,資源也可以刪除。 使用 CloudFormation,可以輕鬆地將資源集合作為一個單元進行管理。

2. 複製你的基礎設施

如果應用程序需要更高的可用性,那麼這意味著需要將其複製到多個區域。 這是因為當一個區域不可用時,用戶可以使用另一個區域的應用程序。

在復制應用程序時,您需要面對一個自然挑戰,即您也必須複製資源。 因此,您必鬚根據應用程序的需求記錄所有資源。 但是,除此之外,您還必須配置和供應每個區域中的所有資源。

AWS CloudFormation模板可用於以一致且可重複的方式創建資源。 它允許模板的可重用性,這可以通過一次性描述資源並通過在許多區域提供相同的資源來完成。 通過這種方式,可以輕鬆地將基礎架構複製到多個區域。

3. 控制對基礎設施所做的更改

在某些情況下,有時可能需要升級。 這方面的一個例子可能是在自動擴展啟動配置中升級高性能實例的需要或衝動。 這樣,可以減少組內的實例總數。

手動控制、跟踪更改和進行升級可能是一項複雜的工作,對於所有這些事情,需要記住更改資源的下落。 使用AWS CloudFormation使模板能夠描述預置資源並詳細說明設置。 跟踪文本文件模板之間的基礎架構更改變得很容易。

您還可以輕鬆地將版本控制系統與模板集成,以了解對基礎架構所做的更改。 除此之外,您還可以跟踪進行更改的人員和時間。 如果要反轉基礎架構中的更改,還可以反轉之前的模板版本。 因此,使用AWS CloudFormation可以輕鬆控制和跟踪基礎設施更改

結論

上面提到的詳細信息通常與 AWS CloudFormation 相關聯。 這些見解側重於 CloudFormation 的功能以及用戶運行應用程序的舒適度。

AWS CloudFormation 可自動執行最佳實踐,並在全球範圍內擴展基礎設施。 最棒的是它使您能夠將 CloudFormation 與其他 AWS 服務集成。 您還可以有足夠的能力來管理私有和第三方資源。

如果您希望使用 AWS CloudFormation,您必須使用AWS 諮詢服務,這些服務可以幫助您了解更多詳細信息,了解您將要集成的內容,並利用無縫執行應用程序。 聯繫以了解更多信息。