使用範例範本開始使用 StackSets - AWS CloudFormation

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用範例範本開始使用 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
  1. 開啟 CloudFormation 主控台

  2. 在畫面頂端的導覽列上,選擇您要從中管理 StackSet 的 AWS 區域。

    您可以選擇支援 StackSets 的任何區域。您選取的區域不會影響您可使用 StackSet 部署到哪些區域。

  3. 從導覽窗格選擇 StackSets

  4. StackSets 頁面上方選擇建立 StackSet

  5. 許可下,選擇自助服務許可,然後選擇您在先決條件中建立的 IAM 角色。

    • 對於 IAM 管理員角色,選擇 AWSCloudFormationStackSetAdministrationRole

    • 對於 IAM 執行角色名稱,選擇 AWSCloudFormationStackSetExecutionRole

  6. 選擇 Prerequisite - Prepare template (事前準備 - 準備範本) 下的 Use a sample template (使用範例範本)

  7. 選擇範例範本下,選擇啟用 AWS Config 範本。然後選擇下一步

    此範本會建立必要的資源,以在您的帳戶中啟用 AWS Config,包括組態記錄器和交付通道。

  8. 指定堆疊詳細資訊頁面上,對於 StackSet 名稱,輸入 my-awsconfig-stackset

  9. 對於 StackSet 說明,輸入 A StackSet that enables Config across multiple Regions

  10. 參數下,設定 AWS Config 設定如下:

    1. 對於支援所有資源類型,請保留預設值 true,以記錄所有支援的資源類型。

    2. 對於包含全域資源類型,請保留預設值 false,以排除全域資源,如 IAM 角色。

    3. 若未支援所有資源類型,請提供資源類型清單,保留設定為 <All>

    4. 對於包含 Config 服務連結角色資源的區域,請以 us-west-2 取代 <DeployToAnyRegion>

      這表示只有在堆疊部署到美國西部 (奧勒岡) 區域時,才會建立名為 AWSServiceRoleForConfig 的服務連結角色。您將在此程序稍後選擇部署區域。

    5. 對於組態記錄器記錄頻率,選擇 DAILY 記錄。

  11. 選擇 Next (下一步) 繼續。

  12. 設定 StackSet 選項頁面中,選擇新增標籤並透過指定鍵和值對來新增標籤。

    1. Key (索引鍵) 欄位,輸入 Stage

    2. 針對數值,輸入 Test

    您套用至 StackSets 的標籤將套用至您的堆疊建立的資源。

  13. 對於執行組態,選擇作用中,以啟用 CloudFormation 的最佳化操作處理:

    • 非衝突操作會同時執行,以便加快部署時間。

    • 衝突操作會根據請求的順序,自動排入佇列和處理。

    在有執行中或排入佇列的操作時,CloudFormation 會將所有傳入操作排入佇列,即使這些操作沒有衝突也一樣。在此期間,您無法變更執行設定。

  14. 選擇下一步

  15. 設定部署選項頁面上,對於將堆疊新增至 StackSet,選擇部署新堆疊

  16. 針對 Accounts (帳戶),選擇 Deploy stacks in accounts (在帳戶中部署堆疊)

  17. 在文字方塊中,輸入 AWS 帳戶 ID。

  18. 對於指定區域,依此順序選取下列區域:

    1. 美國西部 (奧勒岡) 區域 (us-west-2)

    2. 美國東部 (維吉尼亞北部) 區域 (us-east-1)

    如有需要,使用美國西部 (奧勒岡) 區域旁邊的向上箭頭,將它上移成清單中的第一個項目。區域順序決定其部署順序。

  19. 對於部署選項,設定下列設定:

    1. 對於 Maximum concurrent accounts (同時使用的帳戶上限),保留 Number (數值) 和 1 的預設值。

      對於多帳戶部署,該設定表示 CloudFormation 一次只能在一個帳戶中部署堆疊。

    2. 針對 Failure tolerance (容錯能力),保留預設值 Number (數字)0

      這表示在您指定的其中一個區域中,堆疊部署的最大失敗次數為零,否則 CloudFormation 會停止目前區域中的部署,並取消在剩餘區域中的部署。

    3. 針對區域並行,選擇循序 (預設)。

      此設定可確保 CloudFormation 在移至下一個區域之前,先完成某個區域的部署。

    4. 對於並行模式,保留嚴格容錯能力的預設值。

      對於多帳戶部署,這能減少發生故障時的帳戶並行層級,保持在容錯能力 +1 內。

  20. 選擇下一步

  21. Review (檢閱) 頁面上,檢視您的選擇。選擇編輯以對相關區段進行變更。

  22. 當您準備好建立 StackSet 時,請選擇提交

監控 StackSet 建立

選擇提交後,CloudFormation 會開始建立 StackSet,並將堆疊部署到您帳戶中的指定區域。StackSet 詳細資訊頁面會自動開啟,您可在其中監控操作的進度。

監控 StackSet 建立
  1. 在 StackSet 詳細資訊頁面上,預設顯示操作索引標籤,顯示目前進行中的操作。

  2. 操作狀態一開始應是 RUNNING。CloudFormation 會根據您設定的部署選項,在指定的區域中建立堆疊。

  3. 要查看操作的詳細資訊,請在清單中選取操作 ID。

  4. 在操作詳細資訊頁面上,您可檢視在每個區域中建立的堆疊執行個體狀態。

  5. 等待操作狀態變更為 SUCCEEDED,這表示已成功建立 StackSet 及其所有堆疊執行個體。

檢視 StackSet 結果

StackSet 建立完成後,您可檢視已部署的堆疊執行個體,並確認 AWS Config 已在您的帳戶中跨指定區域啟用。

檢視 StackSet 結果
  1. 在 StackSet 詳細資訊頁面上,選擇堆疊執行個體索引標籤。

  2. 您應會看到在帳戶中跨指定區域建立的堆疊執行個體清單。每個堆疊執行個體的狀態應為 SUCCEEDED,表示已成功部署。

  3. 若要驗證您的帳戶是否已啟用 AWS Config,您可檢查每個部署區域中的 AWS Config 主控台。

更新您的 StackSet

建立您的 StackSet 之後,您可能想要更新它以修改參數值或新增更多區域。本節說明如何更新 AWS Config 記錄頻率參數。

更新您的 StackSet
  1. StackSets 頁面上,選取 my-awsconfig-stackset

  2. 選擇 StackSet 後,從動作選單選擇編輯 StackSet 詳細資訊

  3. 選擇範本頁面上,針對先決條件 - 準備範本,選擇使用目前範本

  4. 選擇下一步

  5. 指定 StackSet 詳細資訊頁面的參數下,尋找組態記錄器記錄頻率,並將其從 DAILY 變更為 CONTINUOUS

  6. 選擇下一步

  7. 設定 StackSet 選項頁面上,將設定保留原樣,再選擇下一步

  8. 設定部署選項頁面上,指定帳戶 ID 和您在建立 StackSet 時所使用的相同區域。

  9. 對於部署選項,保留與之前相同的設定。

  10. 選擇下一步

  11. 檢閱頁面上,檢閱您的選項,然後選擇提交

  12. CloudFormation 開始更新您的 StackSet。您可在 StackSet 詳細資訊頁面的操作索引標籤上監控進度。

將堆疊新增至 StackSet

您可部署到其他區域,將更多堆疊新增至 StackSet。本節顯示如何將堆疊新增至新區域。

將堆疊新增至 StackSet
  1. StackSets 頁面上,選取 my-awsconfig-stackset

  2. 選擇 StackSet 後,從動作選單選擇將堆疊新增至 StackSet

  3. 設定部署選項頁面上,對於將堆疊新增至 StackSet,選擇部署新堆疊

  4. 針對帳戶,選擇在帳戶中部署堆疊並輸入帳戶 ID。

  5. 針對指定區域,選取新區域,例如歐洲 (愛爾蘭) (eu-west-1)。

  6. 對於部署選項,保留與之前相同的設定。

  7. 選擇下一步

  8. 指定覆寫頁面上,依指定保留屬性值並選擇下一步

  9. Review (檢閱) 頁面上,檢閱您的選項,然後選擇 Submit (提交)

  10. CloudFormation 會在指定的區域開始建立新的堆疊。您可在 StackSet 詳細資訊頁面的操作索引標籤上監控進度。

清除

為避免產生不必要的 AWS Config 資源費用,您應透過從 StackSet 刪除堆疊、刪除 StackSet 本身,以及移除您在本教學課程中建立的 IAM 角色來清除。因所有資源都部署在您的帳戶中,因此清除非常簡單。

從您的 StackSet 刪除堆疊
  1. StackSets 頁面上,選取 my-awsconfig-stackset

  2. 選取 StackSet 後,從動作選單選擇從 StackSet 刪除堆疊

  3. 設定部署選項頁面上,針對帳戶,選擇在帳戶中部署堆疊,然後輸入您的帳戶 ID。

  4. 針對指定區域,選取您部署堆疊的所有區域。

  5. 對於部署選項,保留預設的設定。

  6. 確定開啟保留堆疊,以便刪除堆疊及其資源。

  7. 選擇下一步

  8. Review (檢閱) 頁面上,檢閱您的選項,然後選擇 Submit (提交)

  9. CloudFormation 會開始從 StackSet 刪除堆疊。您可在 StackSet 詳細資訊頁面的操作索引標籤上監控進度。

刪除您的 StackSet
  1. 刪除所有堆疊之後,在 StackSets 頁面上選取 my-awsconfig-stackset

  2. 選擇 StackSet 後,從動作選單選擇刪除 StackSet

  3. 出現確認提示時,請選擇刪除

刪除 IAM 服務角色

由於您只部署到您的帳戶,因此只需要從此單一帳戶刪除 IAM 角色,使得清除比多帳戶部署更為簡單。

  1. 開啟 IAM 主控台

  2. 從導覽窗格中,選擇 Roles (角色)

  3. 在搜尋方塊中,輸入 AWSCloudFormationStackSet,以尋找您為此教學課程建立的角色。

  4. 選取 AWSCloudFormationStackSetAdministrationRole 旁邊的核取方塊。

  5. 從頁面頂部,選擇刪除

  6. 在確認對話方塊中輸入 delete,然後選擇刪除

  7. 重複相同的程序,刪除 AWSCloudFormationStackSetExecutionRole

刪除 StackSet 之後,由於 AWS::S3::Bucket 資源上的 DeletionPolicy 屬性,Amazon S3 儲存貯體會保留在每個 AWS 區域 中。這會保留您的 AWS Config 歷史記錄資料。若您不再需要此資料,可以手動安全地刪除儲存貯體。您必須先清空儲存貯體,才能將其刪除。清空儲存貯體將會刪除其中的所有物件。

清空和刪除 Amazon S3 儲存貯體
  1. 開啟 Amazon S3 主控台

  2. 在主控台左側的導覽窗格中,選擇 Buckets (儲存貯體)

  3. 儲存貯體清單中,您會在部署的每個區域看到為此 StackSet 建立的儲存貯體。選取為此 StackSet 建立之儲存貯體名稱旁邊的選項,然後選擇空白

  4. 清空儲存貯體頁面上的文字欄位中輸入 permanently delete,以確認您要清空儲存貯體,然後選擇清空

  5. Empty bucket: Status (清空儲存貯體:狀態) 頁面上監控儲存貯體清空的進度。

  6. 若要返回儲存貯體清單,請選擇 Exit (結束)

  7. 選取儲存貯體名稱旁邊的選項,然後選擇刪除

  8. 出現確認提示時,請輸入儲存貯體名稱,然後選擇刪除儲存貯體

  9. 儲存貯體清單中,監控儲存貯體刪除程序的進度。當 Amazon S3 完成刪除儲存貯體時,它會從清單移除儲存貯體。

  10. 針對 StackSet 在不同區域中建立的每個儲存貯體,重複此程序。

後續步驟

恭喜您!您已成功使用範例範本建立 StackSet,將堆疊部署到帳戶中的多個區域、更新 StackSet、新增更多堆疊,以及清理資源。透過專注於單一帳戶部署,您已簡化清除程序,同時仍學習 StackSets 的核心多區域功能。

若要進一步了解 StackSets,請探索下列主題: