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

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

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

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

    您可以選擇支援 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 詳細資訊頁面上,針對 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 服務連結角色資源的區域,請以 取代 <DeployToAnyRegion>us-west-2

      這表示只有在堆疊部署到美國西部 (奧勒岡) 區域時,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 區域 由於AWS::S3::Bucket資源上的 DeletionPolicy 屬性,Amazon S3 儲存貯體會保留在每個儲存貯體中。這會保留您的 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,請探索下列主題: