本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用範例範本開始使用 StackSets
本教學課程將協助您使用 AWS 管理主控台 開始使用 StackSets。它會引導您使用範例範本來建立 StackSet。您將了解如何跨多個區域部署堆疊、監控 StackSet 操作以及檢視結果。
在本教學課程中,您將建立 StackSet,在美國西部 (奧勒岡) 區域 (us-west-2) 和美國東部 (維吉尼亞北部) 區域 (us-east-1) 的 AWS 帳戶 中啟用 AWS Config。使用 StackSets,您可透過單一操作跨多個帳戶和區域建立、更新或刪除堆疊,使其成為大規模管理基礎設施的理想解決方案。儘管本教學課程為了簡單起見而使用單一帳戶,但它有效地示範了 StackSets 的多區域功能。
範例範本位於以下 S3 儲存貯體:https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/EnableAWSConfig.yml
注意
StackSets 是免費的,但您需要為使用它建立的 AWS 資源付費,例如在本教學課程中的 AWS Config。如需詳細資訊,請參閱 AWS Config 定價
必要條件
在開始教學課程前,請確定您已完成以下先決條件:
-
您必須已設定自我管理許可所需的 IAM 角色。若要在單一帳戶中建立 StackSet 和部署堆疊,需要帳戶中的下列角色:
-
AWSCloudFormationStackSetAdministrationRole -
AWSCloudFormationStackSetExecutionRole
如需設定這些角色的詳細說明,請參閱 授與自我管理許可。
-
從主控台使用範例範本建立 StackSet
建立啟用 AWS Config 的 StackSet
-
在畫面頂端的導覽列上,選擇您要從中管理 StackSet 的 AWS 區域。
您可以選擇支援 StackSets 的任何區域。您選取的區域不會影響您可使用 StackSet 部署到哪些區域。
-
從導覽窗格選擇 StackSets。
-
從 StackSets 頁面上方選擇建立 StackSet。
-
在許可下,選擇自助服務許可,然後選擇您在先決條件中建立的 IAM 角色。
-
對於 IAM 管理員角色,選擇 AWSCloudFormationStackSetAdministrationRole。
-
對於 IAM 執行角色名稱,選擇 AWSCloudFormationStackSetExecutionRole。
-
-
選擇 Prerequisite - Prepare template (事前準備 - 準備範本) 下的 Use a sample template (使用範例範本)。
-
在選擇範例範本下,選擇啟用 AWS Config 範本。然後選擇下一步。
此範本會建立必要的資源,以在您的帳戶中啟用 AWS Config,包括組態記錄器和交付通道。
-
在指定堆疊詳細資訊頁面上,對於 StackSet 名稱,輸入
my-awsconfig-stackset。 -
對於 StackSet 說明,輸入
A StackSet that enables Config across multiple Regions。 -
在參數下,設定 AWS Config 設定如下:
-
對於支援所有資源類型,請保留預設值 true,以記錄所有支援的資源類型。
-
對於包含全域資源類型,請保留預設值 false,以排除全域資源,如 IAM 角色。
-
將若未支援所有資源類型,請提供資源類型清單,保留設定為 <All>。
-
對於包含 Config 服務連結角色資源的區域,請以
us-west-2取代 <DeployToAnyRegion>。這表示只有在堆疊部署到美國西部 (奧勒岡) 區域時,才會建立名為
AWSServiceRoleForConfig的服務連結角色。您將在此程序稍後選擇部署區域。 -
對於組態記錄器記錄頻率,選擇 DAILY 記錄。
-
-
選擇 Next (下一步) 繼續。
-
在設定 StackSet 選項頁面中,選擇新增標籤並透過指定鍵和值對來新增標籤。
-
在 Key (索引鍵) 欄位,輸入
Stage。 -
針對數值,輸入
Test。
您套用至 StackSets 的標籤將套用至您的堆疊建立的資源。
-
-
對於執行組態,選擇作用中,以啟用 CloudFormation 的最佳化操作處理:
-
非衝突操作會同時執行,以便加快部署時間。
-
衝突操作會根據請求的順序,自動排入佇列和處理。
在有執行中或排入佇列的操作時,CloudFormation 會將所有傳入操作排入佇列,即使這些操作沒有衝突也一樣。在此期間,您無法變更執行設定。
-
-
選擇下一步。
-
在設定部署選項頁面上,對於將堆疊新增至 StackSet,選擇部署新堆疊。
-
針對 Accounts (帳戶),選擇 Deploy stacks in accounts (在帳戶中部署堆疊)。
-
在文字方塊中,輸入 AWS 帳戶 ID。
-
對於指定區域,依此順序選取下列區域:
-
美國西部 (奧勒岡) 區域 (
us-west-2) -
美國東部 (維吉尼亞北部) 區域 (
us-east-1)
如有需要,使用美國西部 (奧勒岡) 區域旁邊的向上箭頭,將它上移成清單中的第一個項目。區域順序決定其部署順序。
-
-
對於部署選項,設定下列設定:
-
對於 Maximum concurrent accounts (同時使用的帳戶上限),保留 Number (數值) 和 1 的預設值。
對於多帳戶部署,該設定表示 CloudFormation 一次只能在一個帳戶中部署堆疊。
-
針對 Failure tolerance (容錯能力),保留預設值 Number (數字) 和 0。
這表示在您指定的其中一個區域中,堆疊部署的最大失敗次數為零,否則 CloudFormation 會停止目前區域中的部署,並取消在剩餘區域中的部署。
-
針對區域並行,選擇循序 (預設)。
此設定可確保 CloudFormation 在移至下一個區域之前,先完成某個區域的部署。
-
對於並行模式,保留嚴格容錯能力的預設值。
對於多帳戶部署,這能減少發生故障時的帳戶並行層級,保持在容錯能力 +1 內。
-
-
選擇下一步。
-
在 Review (檢閱) 頁面上,檢視您的選擇。選擇編輯以對相關區段進行變更。
-
當您準備好建立 StackSet 時,請選擇提交。
監控 StackSet 建立
選擇提交後,CloudFormation 會開始建立 StackSet,並將堆疊部署到您帳戶中的指定區域。StackSet 詳細資訊頁面會自動開啟,您可在其中監控操作的進度。
監控 StackSet 建立
-
在 StackSet 詳細資訊頁面上,預設顯示操作索引標籤,顯示目前進行中的操作。
-
操作狀態一開始應是
RUNNING。CloudFormation 會根據您設定的部署選項,在指定的區域中建立堆疊。 -
要查看操作的詳細資訊,請在清單中選取操作 ID。
-
在操作詳細資訊頁面上,您可檢視在每個區域中建立的堆疊執行個體狀態。
-
等待操作狀態變更為
SUCCEEDED,這表示已成功建立 StackSet 及其所有堆疊執行個體。
檢視 StackSet 結果
StackSet 建立完成後,您可檢視已部署的堆疊執行個體,並確認 AWS Config 已在您的帳戶中跨指定區域啟用。
檢視 StackSet 結果
-
在 StackSet 詳細資訊頁面上,選擇堆疊執行個體索引標籤。
-
您應會看到在帳戶中跨指定區域建立的堆疊執行個體清單。每個堆疊執行個體的狀態應為
SUCCEEDED,表示已成功部署。 -
若要驗證您的帳戶是否已啟用 AWS Config,您可檢查每個部署區域中的 AWS Config 主控台。
更新您的 StackSet
建立您的 StackSet 之後,您可能想要更新它以修改參數值或新增更多區域。本節說明如何更新 AWS Config 記錄頻率參數。
更新您的 StackSet
-
在 StackSets 頁面上,選取
my-awsconfig-stackset。 -
選擇 StackSet 後,從動作選單選擇編輯 StackSet 詳細資訊。
-
在選擇範本頁面上,針對先決條件 - 準備範本,選擇使用目前範本。
-
選擇下一步。
-
在指定 StackSet 詳細資訊頁面的參數下,尋找組態記錄器記錄頻率,並將其從 DAILY 變更為 CONTINUOUS。
-
選擇下一步。
-
在設定 StackSet 選項頁面上,將設定保留原樣,再選擇下一步。
-
在設定部署選項頁面上,指定帳戶 ID 和您在建立 StackSet 時所使用的相同區域。
-
對於部署選項,保留與之前相同的設定。
-
選擇下一步。
-
在檢閱頁面上,檢閱您的選項,然後選擇提交。
-
CloudFormation 開始更新您的 StackSet。您可在 StackSet 詳細資訊頁面的操作索引標籤上監控進度。
將堆疊新增至 StackSet
您可部署到其他區域,將更多堆疊新增至 StackSet。本節顯示如何將堆疊新增至新區域。
將堆疊新增至 StackSet
-
在 StackSets 頁面上,選取
my-awsconfig-stackset。 -
選擇 StackSet 後,從動作選單選擇將堆疊新增至 StackSet。
-
在設定部署選項頁面上,對於將堆疊新增至 StackSet,選擇部署新堆疊。
-
針對帳戶,選擇在帳戶中部署堆疊並輸入帳戶 ID。
-
針對指定區域,選取新區域,例如歐洲 (愛爾蘭) (
eu-west-1)。 -
對於部署選項,保留與之前相同的設定。
-
選擇下一步。
-
在指定覆寫頁面上,依指定保留屬性值並選擇下一步。
-
在 Review (檢閱) 頁面上,檢閱您的選項,然後選擇 Submit (提交)。
-
CloudFormation 會在指定的區域開始建立新的堆疊。您可在 StackSet 詳細資訊頁面的操作索引標籤上監控進度。
清除
為避免產生不必要的 AWS Config 資源費用,您應透過從 StackSet 刪除堆疊、刪除 StackSet 本身,以及移除您在本教學課程中建立的 IAM 角色來清除。因所有資源都部署在您的帳戶中,因此清除非常簡單。
從您的 StackSet 刪除堆疊
-
在 StackSets 頁面上,選取
my-awsconfig-stackset。 -
選取 StackSet 後,從動作選單選擇從 StackSet 刪除堆疊。
-
在設定部署選項頁面上,針對帳戶,選擇在帳戶中部署堆疊,然後輸入您的帳戶 ID。
-
針對指定區域,選取您部署堆疊的所有區域。
-
對於部署選項,保留預設的設定。
-
確定未開啟保留堆疊,以便刪除堆疊及其資源。
-
選擇下一步。
-
在 Review (檢閱) 頁面上,檢閱您的選項,然後選擇 Submit (提交)。
-
CloudFormation 會開始從 StackSet 刪除堆疊。您可在 StackSet 詳細資訊頁面的操作索引標籤上監控進度。
刪除您的 StackSet
-
刪除所有堆疊之後,在 StackSets 頁面上選取
my-awsconfig-stackset。 -
選擇 StackSet 後,從動作選單選擇刪除 StackSet。
-
出現確認提示時,請選擇刪除。
刪除 IAM 服務角色
由於您只部署到您的帳戶,因此只需要從此單一帳戶刪除 IAM 角色,使得清除比多帳戶部署更為簡單。
-
開啟 IAM 主控台
。 -
從導覽窗格中,選擇 Roles (角色)。
-
在搜尋方塊中,輸入
AWSCloudFormationStackSet,以尋找您為此教學課程建立的角色。 -
選取 AWSCloudFormationStackSetAdministrationRole 旁邊的核取方塊。
-
從頁面頂部,選擇刪除。
-
在確認對話方塊中輸入
delete,然後選擇刪除。 -
重複相同的程序,刪除 AWSCloudFormationStackSetExecutionRole。
刪除 StackSet 之後,由於 AWS::S3::Bucket 資源上的 DeletionPolicy 屬性,Amazon S3 儲存貯體會保留在每個 AWS 區域 中。這會保留您的 AWS Config 歷史記錄資料。若您不再需要此資料,可以手動安全地刪除儲存貯體。您必須先清空儲存貯體,才能將其刪除。清空儲存貯體將會刪除其中的所有物件。
清空和刪除 Amazon S3 儲存貯體
-
開啟 Amazon S3 主控台
。 -
在主控台左側的導覽窗格中,選擇 Buckets (儲存貯體)。
-
在儲存貯體清單中,您會在部署的每個區域看到為此 StackSet 建立的儲存貯體。選取為此 StackSet 建立之儲存貯體名稱旁邊的選項,然後選擇空白。
-
在清空儲存貯體頁面上的文字欄位中輸入
permanently delete,以確認您要清空儲存貯體,然後選擇清空。 -
在 Empty bucket: Status (清空儲存貯體:狀態) 頁面上監控儲存貯體清空的進度。
-
若要返回儲存貯體清單,請選擇 Exit (結束)。
-
選取儲存貯體名稱旁邊的選項,然後選擇刪除。
-
出現確認提示時,請輸入儲存貯體名稱,然後選擇刪除儲存貯體。
-
從儲存貯體清單中,監控儲存貯體刪除程序的進度。當 Amazon S3 完成刪除儲存貯體時,它會從清單移除儲存貯體。
-
針對 StackSet 在不同區域中建立的每個儲存貯體,重複此程序。
後續步驟
恭喜您!您已成功使用範例範本建立 StackSet,將堆疊部署到帳戶中的多個區域、更新 StackSet、新增更多堆疊,以及清理資源。透過專注於單一帳戶部署,您已簡化清除程序,同時仍學習 StackSets 的核心多區域功能。
若要進一步了解 StackSets,請探索下列主題:
-
覆寫 CloudFormation StackSet 中堆疊的參數值 – 了解如何覆寫特定帳戶及區域的參數值。
-
具有服務受管許可的 Create CloudFormation StackSets – 探索使用 AWS Organizations 為多帳戶部署建立 StackSets。