本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用範例範本開始使用 StackSets
本教學課程將協助您開始使用 StackSets AWS Management Console。它會引導您使用範例範本建立 StackSet。您將了解如何跨多個區域部署堆疊、監控 StackSet 操作,以及檢視結果。
在本教學課程中,您將建立 StackSet,在美國西部 (奧勒岡) 區域 (us-west-2
) 和美國東部 (維吉尼亞北部) 區域 () AWS 帳戶 的 AWS Config 中啟用 us-east-1
。使用 StackSets,您可以透過單一操作跨多個帳戶和區域建立、更新或刪除堆疊,使其成為大規模管理基礎設施的理想解決方案。雖然本教學課程為了簡單起見而使用單一帳戶,但它有效地示範了 StackSets 的多區域功能。
範例範本可在下列 S3 儲存貯體中取得:https://https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/EnableAWSConfig.yml
注意
StackSets 是免費的,但您需要支付使用它建立 AWS 的資源的費用,例如在本教學 AWS Config 課程中。如需詳細資訊,請參閱 AWS Config 定價
先決條件
開始本教學課程之前,請確定您已完成下列先決條件:
-
您必須已設定自我管理許可所需的 IAM 角色。若要在單一帳戶中建立 StackSet 和部署堆疊,您需要帳戶中的下列角色:
-
AWSCloudFormationStackSetAdministrationRole
-
AWSCloudFormationStackSetExecutionRole
如需設定這些角色的詳細說明,請參閱 授與自我管理許可。
-
從主控台使用範例範本建立 StackSet
建立啟用 的 StackSet AWS Config
-
在畫面頂端的導覽列上,選擇您要從 AWS 區域 中管理 StackSet 的 。
您可以選擇支援 StackSets 的任何區域。您選取的區域不會影響您可以使用 StackSet 部署到哪些區域。
-
從導覽窗格選擇 StackSets。
-
從 StackSets 頁面頂端,選擇建立 StackSet。
-
在許可下,選擇自助式許可,然後選擇您在先決條件中建立的 IAM 角色。
-
針對 IAM 管理員角色,選擇 AWSCloudFormationStackSetAdministrationRole。
-
針對 IAM 執行角色名稱,選擇 AWSCloudFormationStackSetExecutionRole。
-
-
選擇 Prerequisite - Prepare template (事前準備 - 準備範本) 下的 Use a sample template (使用範例範本)。
-
在選取範例範本下,選擇啟用 AWS Config範本。然後選擇下一步。
此範本會建立必要的資源,以在您的帳戶 AWS Config 中啟用 ,包括組態記錄器和交付管道。
-
在指定 StackSet 詳細資訊頁面上,針對 StackSet 名稱,輸入
my-awsconfig-stackset
。 -
針對 StackSet 描述,輸入
A StackSet that enables Config across multiple Regions
。 -
在參數下, AWS Config 設定設定如下:
-
對於支援所有資源類型,請保留預設值 true,以記錄所有支援的資源類型。
-
對於包含全域資源類型,請保留預設值 false,以排除全域資源,例如 IAM 角色。
-
如果並非所有支援設定為 <All>,請保留資源類型清單。
-
對於包含 Config 服務連結角色資源的區域,請以 取代 <DeployToAnyRegion>
us-west-2
。這表示只有在堆疊部署到美國西部 (奧勒岡) 區域時,
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 區域 由於AWS::S3::Bucket
資源上的 DeletionPolicy
屬性,Amazon S3 儲存貯體會保留在每個儲存貯體中。這會保留您的 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 AWS CloudFormation StackSets – 探索使用 為多帳戶部署建立 StackSets AWS Organizations。