AWS CloudFormation StackSets のためのサービスマネージドスタックインポート - AWS CloudFormation

AWS CloudFormation StackSets のためのサービスマネージドスタックインポート

AWS CloudFormation スタックのインポートオペレーションでは、既存のスタックを新規または既存のスタックセットにインポートできるため、既存のスタックを 1 回のオペレーションでスタックセットに移行できます。StackSets はスタックの機能を拡張するため、1 回のオペレーションで複数のアカウントとリージョンにまたがるスタックを作成、更新、削除できます。

スタックインポートのサービスマネージド型要件

Stack のインポートの要件 セクションに加えて、サービスマネージド型スタックのインポートには以下が必要です。

  • スタックのインポートオペレーションには、StackSets で信頼アクセスを有効にするなど、関連付けられた AWS Organizations を管理できる管理アカウントまたは委任された管理アカウントが必要です。

  • ターゲットアカウントは、管理アカウントまたは委任された管理者アカウントによって管理される AWS Organizations のメンバーである必要があります。

  • ターゲットスタックは、ターゲット OU の 1 つに存在します。

  • ターゲットアカウントは AWS Organizations のメンバーである必要があります。

  • AWS Organizations アクセスは、組織の ACTIVATED 状態である必要があります。

  • インポートされるスタックは、管理アカウントではなく、メンバーアカウントのいずれかに存在する必要があります。

サービスマネージド型スタックを新しいスタックセットにインポートする (コンソール)

AWS Management Console を使用して、スタックを新しいスタックセットにインポートする。

新しいスタックをスタックセットにインポートするには、インポートするリソースを含むスタックを特定します。

  1. AWS Management Console にサインインし、AWS CloudFormation コンソール (https://console.aws.amazon.com/cloudformation) を開きます。

  2. ナビゲーションペインから [StackSets] を選択します。

  3. [StackSets] ページの上部で [Create StackSet (StackSet の作成)] を選択します。

  4. [Choose a template] (テンプレートの選択) ページに次の情報を追加します。

    1. [StackSet permission model] (StackSet アクセス許可モデル) で、[Service-managed permissions] (サービス管理のアクセス許可) を選択します。

    2. [Prerequisite - Prepare template] (前提条件 − テンプレートの準備) で、[Template is ready] (テンプレートの準備完了) を選択します。

      1. Amazon S3 URL を使用する場合、Amazon S3 URL を Amazon S3 URL フィールドに入力します。

      2. [Upload a template file] (テンプレートファイルのアップロード) で、ローカルコンピュータの CloudFormation テンプレートを選択します。

    設定を受け入れて、[Next] (次へ) を選択してください。

  5. [Specify StackSet details] (StackSet 詳細の指定) ページで、次の情報を追加します。

    1. [StackSet name] (StackSet の名前) ボックスにスタックセット名を入力します。

    2. (オプション) [StackSet description] (StackSet の説明) セクションに説明を入力します。

    [Configure stack options] (スタックオプションの設定) ページで、選択内容を確認し、[Next] (次へ) を選択します。

  6. 次の情報を [Set deployment options] (デプロイオプションの設定) ページに追加します。

    1. [Add stacks to stack set] (スタックセットにスタックを追加) で、[Import stacks to stack set] (スタックをスタックセットにインポートする) を選択します。

    2. [Stacks to import] (インポートするスタック) で、スタックのインポート方法を選択します。

      1. [Stack ID] (スタック ID) には、スタック ID を入力します。

      2. [Stack URL] (スタック URL) には、Amazon S3 URL を入力します。

  7. 次の情報を [Associate organizational units] (組織単位の関連付け) セクションに追加します。

    1. ルート OU を使用するには、[Associate with organization] (組織に関連付ける) を選択します。

    2. [Associate with organizational units (OUs)] (組織単位 (OU) に関連付ける) を選択して、インポートするスタックの親 OU ID を入力します。例えば、Stack 1Stack 2OU1 未満で、Stack 3OU2 未満の場合は、OU1OU2 を入力します。

    設定を受け入れて、[Next] (次へ) を選択してください。

  8. [Review] (確認) ページで、設定を確認し、[Submit] (送信) を選択します。

サービスマネージド型スタックを作成して、既存のスタックセットにインポートする (コンソール)

既存のスタックを新しいスタックセットにインポートするには、インポートするリソースを含むスタックを特定します。

スタック セットを作成してスタックをインポートするには
  1. AWS Management Console にサインインし、AWS CloudFormation コンソール (https://console.aws.amazon.com/cloudformation) を開きます。

  2. ナビゲーションペインから [StackSets] を選択します。

  3. [StackSets] ページの上部で [Create StackSet (StackSet の作成)] を選択します。

  4. [Choose a template] (テンプレートの選択) ページに次の情報を追加します。

    1. [StackSet permission model] (StackSet アクセス許可モデル) で、[Service-managed permissions] (サービス管理のアクセス許可) を選択します。

    2. [Prerequisite - Prepare template] (前提条件 − テンプレートの準備) で、[Template is ready] (テンプレートの準備完了) を選択します。

      1. Amazon S3 URL を使用する場合、Amazon S3 URL を Amazon S3 URL フィールドに入力します。

      2. [Upload a template file] (テンプレートファイルのアップロード) で、ローカルコンピュータの CloudFormation テンプレートを選択します。

    設定を受け入れて、[Next] (次へ) を選択してください。

  5. [Specify StackSet details] (StackSet 詳細の指定) ページで、次の情報を追加します。

    1. [StackSet name] (StackSet の名前) ボックスにスタックセット名を入力します。

    2. (オプション) [StackSet description] (StackSet の説明) セクションに説明を入力します。

    [Configure stack options] (スタックオプションの設定) ページで、選択内容を確認し、[Next] (次へ) を選択します。

  6. 次の情報を [Set deployment options] (デプロイオプションの設定) ページに追加します。

    1. [Add stacks to stack set] (スタックセットにスタックを追加) で、[Deploy new stacks] (新しいスタックのデプロイ) を選択します。

  7. 次の情報を [Associate organizational units] (組織単位の関連付け) セクションに追加します。

    1. ルート OU を使用するには、[Associate with organization] (組織に関連付ける) を選択します。

    2. [Associate with organizational units (OUs)] (組織単位 (OU) に関連付ける) を選択して、インポートするスタックの親 OU ID を入力します。例えば、Stack 1Stack 2OU1 未満で、Stack 3OU2 未満の場合は、OU1OU2 を入力します。

  8. [Specify regions] (リージョンの指定) と [Deployment options] (デプロイオプション) で、選択内容を確認します。

    設定を受け入れて、[Next] (次へ) を選択してください。

  9. [Review] (確認) ページで、設定を確認し、[Submit] (送信) を選択します。

サービスマネージド型スタックを既存のスタックセットにインポートする (コンソール)

スタックセットを選択し、インポートするスタックを特定します。

スタックを既存のスタックセットにインポートするには
  1. AWS Management Console にサインインし、AWS CloudFormation コンソール (https://console.aws.amazon.com/cloudformation) を開きます。

  2. ナビゲーションペインから [StackSets] を選択します。

  3. スタックをインポートするスタックセットを選択し、[Actions] (アクション) ドロップダウンから [Add stacks to StackSet] (スタックセットへスタックを追加) を選択します。

  4. 次の情報を [Set deployment options] (デプロイオプションの設定) ページに追加します。

    1. [Add stacks to stack set] (スタックセットにスタックを追加) で、[Import stacks to stack set] (スタックをスタックセットにインポートする) を選択します。

    2. 次の情報を [Stacks to import] (インポートするスタック) セクションに追加します。

      1. [Stack ID] (スタック ID) には、スタック ID を入力します。

      2. [Stack URL] (スタック URL) には、Amazon S3 URL を入力します。

    3. 次の情報を [Associate organizational units] (組織単位の関連付け) セクションに追加します。

      1. ルート OU を使用するには、[Associate with organization] (組織に関連付ける) を選択します。

      2. [Associate with organizational units (OUs)] (組織単位 (OU) に関連付ける) を選択して、インポートするスタックの親 OU ID を入力します。例えば、Stack 1Stack 2OU1 未満で、Stack 3OU2 未満の場合は、OU1OU2 を入力します。

      設定を受け入れて、[Next] (次へ) を選択してください。

  5. [Specify overrides] (上書きの指定) ページを確認し、[Next] (次へ) を選択します。

  6. [Review] (確認) ページを確認して見直し、[Submit] (送信) を選択します。

サービスマネージド型スタックをスタックセットにインポートする (AWS CLI)

スタックセットが作成されたら、インポートするスタックのスタック ID を渡すことでスタックをインポートできます。マッピング先の OU ID リストを渡すこともできます。

StackSets は、これらの OU 内のユーザー提供のスタックをインポートし、それらの OU をスタックセットのデプロイターゲットとして使用します。入力に示されたスタック ID は、内部的に OU ID リスト入力の最も近い OU にマッピングされます。スタックが入力リスト内の既存の OU ID に属していない場合、AWS CLI は StackNotFoundException エラーを返します。

import-stacks-to-stack-set オペレーションは、OU ID 入力のスタックのスタックインスタンスを作成します。次の AWS CLI の例では、import-stacks-to-stack-set オペレーションを使用して、スタックをスタック セットにインポートします。

  • import-stacks-to-stack-sets オペレーションを使用するには、スタックセットにインポートする stack-ids または stack-ids-url を指定します。

    aws cloudformation import-stacks-to-stack-set \ --stack-set-name ServiceMangedStackSet \ --stack-ids "arn:123456789012:us-east-1:Stack1" \ --organizational-unit-ids ou-examplerootid111-exampleouid111
    aws cloudformation import-stacks-to-stack-set \ --stack-set-name ServiceMangedStackSet \ --stack-ids-url https://DOC-EXAMPLE-BUCKET \ --organizational-unit-ids ou-examplerootid111-exampleouid111
注記

import-stacks-to-stack-sets オペレーションでは、インポートされるスタックをその特定の OU に関連付けることができるように、少なくとも 1 つの組織単位 ID (OU ID) を指定する必要があります。このオペレーションでは、関連する OU 内の他のメンバーアカウントのスタックインスタンスは作成されません。関連する OU のメンバーアカウントを更新するには、create-stack-instances または update-stack-instances を使用します。

create-stack-set は、直接アップロードまたは Amazon S3 のいずれかから、ユーザー提供のテンプレートを使用して、OU の下のすべてのアカウントのスタック インスタンスを作成します。次の AWS CLI の例では、create-stack-set オペレーションを使用して、スタックを新しいスタックセットにインポートします。

  • create-stack-set オペレーションで、スタックセット名を指定し、新しく作成したスタックセットにスタックをインポートします。

    aws cloudformation create-stack-set \ --template-url https://DOC-EXAMPLE-BUCKET \ --permission-model SERVICE_MANAGED \ --auto-deployment Enabled=true