スタックセットからのスタックインスタンスの削除 - AWS CloudFormation

スタックセットからのスタックインスタンスの削除

AWS マネジメントコンソール 内で、または AWS CLI で AWS CloudFormation コマンドを使用することで、スタックインスタンスをスタックセットから削除できます。この手順では、すべてのスタックを削除します。

サービスマネージド型のアクセス許可を持つスタックセットの場合、最上位の組織単位 (OU) からスタックインスタンスを削除すると、スタックセットのターゲットとして OU が削除されます。

AWS マネジメントコンソール を使用してスタックインスタンスを削除する

  1. AWS CloudFormation コンソール (https://console.aws.amazon.com/cloudformation) を開きます。

  2. ナビゲーション [StackSets] を選択します。StackSets ページで、「スタックセットの作成」で作成したスタックセットを選択します。

  3. スタックセットを選択した状態で、[アクション] メニューから [Delete stacks from StackSet (StackSet からスタックを削除)] を選択します。

    
                        [アクション] メニューから [Delete stacks from StackSet (スタックセットからスタックを削除)] を選択します。
  4. [Set deployment options (デプロイオプションの設定)] ページで、スタックインスタンスを削除するアカウントを選択します。

    1. [セルフマネージド型のアクセス許可] [アカウント] で [Deploy stacks in accounts (スタックをアカウントにデプロイ)] を選択します。ターゲットアカウント番号をテキストボックスに貼り付け、複数の数字をカンマで区切ります。

      [サービスマネージド型のアクセス許可] [アカウント] で [Deploy stacks in organizational units (スタックを組織単位にデプロイ)] を選択します。スタックセットがターゲットとする OU の ID を貼り付けます。

      注記

      StackSets は、指定したターゲット OU のすべての子 OU からスタックインスタンスを削除します。

      
                                 スタックインスタンスを削除する組織単位を選択します。
    2. [Deployment Region (デプロイリージョン)] で、スタックインスタンスを削除するリージョンを選択します。この場合は、[米国東部 (バージニア北部) リージョン] と [米国西部 (オレゴン) リージョン] を選択します。

    3. [Deployment options (デプロイメントオプション)] で次のようにします。

      • [Maximum concurrent accounts (同時アカウントの最大数)] については、デフォルト値の [数値] と [1] をそのまま使用します。

      • [Failure tolerance (障害耐性)] については、デフォルトの [数値] と [0] をそのまま使用します。

      [Retain stacks (スタックの保持)] 領域で、デフォルト設定の無効をそのまま使用します。

      スタックセットからスタックを削除する際、[Retain stacks (スタックの保持)] オプションによって、スタックセットからスタックインスタンスを削除するが、スタックと関連するリソースは保存する、という選択を行うことができます。[Retain stacks (スタックの保持)] オプションを選択してスタックセットからスタックを保存すると、スタックのリソースは現在の状態のままですが、スタックはスタックセットの一部ではなくなります。保持されたスタックを再び関連付けることや、既存の保存されたスタックを新しいスタックセットに追加することはできません。スタックは、スタックセットから永久に独立します。この手順では、スタックセット全体を削除するためにすべてのスタックを削除するため、スタックを保持しません。

      [次へ] を選択します。

  5. [確認] ページで選択内容を確認し、[送信] を選択します。

  6. スタックの削除が終了したら、StackSet 詳細ページの [Stack instances (スタックインスタンス)] タブで、スタックセットからスタックインスタンスが削除されたことを確認できます。

    
                        スタックインスタンスの情報を表示するには、スタックセット詳細ページの [Stack instances (スタックインスタンス)] タブを使用します。

AWS CLI を使用してスタックインスタンスを削除する

  1. delete-stack-instances コマンドを実行します。--stack-set-name で、スタックセット名 my-awsconfig-stackset を指定します。

    次の例で示している通り、FailureToleranceCount パラメータで 0MaxConcurrentCount に、1--operation-preferences に設定することで、障害耐性および同時アカウントの最大数を設定します。代わりに割合を適用するには、FailureTolerancePercentage または MaxConcurrentPercentage を使用します。このウォークスルーでは、割合ではなくカウントを使用します。

    --retain-stacksdelete-stack-instances に必要なパラメータであるため、スタックを保持 (保存) したくない場合、--no-retain-stacks を追加します。このウォークスルーでは、スタックを保持しないため、--no-retain-stacks パラメータを追加します。

    [セルフマネージド型のアクセス許可] account_IDスタックセットの作成 でスタックセットを作成するために使用したアカウントに置き換えます。

    aws cloudformation delete-stack-instances --stack-set-name my-awsconfig-stackset --accounts '["0123456789012"]' --regions '["eu-west-1"]' --operation-preferences FailureToleranceCount=0,MaxConcurrentCount=1 --no-retain-stacks

    [サービスマネージド型のアクセス許可] --deployment-targets で、スタックインスタンスを作成した組織 (ルート) ID または OU ID を指定します。

    注記

    StackSets は、指定したターゲット OU のすべての子 OU からスタックインスタンスを削除します。

    aws cloudformation delete-stack-instances --stack-set-name my-awsconfig-stackset --deployment-targets OrganizationalUnitIds='["ou-rcuk-1x5jlwo", "ou-rcuk-slr5lh0a"]' --regions '["eu-west-1"]' --no-retain-stacks
  2. 必要に応じて、スタックの削除が完了したあと、describe-stack-set-operation コマンドを実行してスタック削除オペレーションのステータスおよび結果を表示し、スタックセットからスタックインスタンスが削除されたことを確認します。--operation-id には、delete-stack-instances コマンドに返されたオペレーション ID を使用します。

    aws cloudformation describe-stack-set-operation --stack-set-name stackSetName --operation-id ddf16f54-ad62-4d9b-b0ab-3ed8e9example