AWS CloudFormation
ユーザーガイド (API バージョン 2010-05-15)

新しいスタックセットの作成

AWS マネジメントコンソール 内で、または AWS CLI で AWS CloudFormation コマンドを使用することでスタックセットを作成できます。

AWS マネジメントコンソール を使用してスタックセットを作成するには

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

  2. ページ上部で、[StackSets] を選択し、[Create stack set] を選択します。

    
                        StackSets ホームページ
  3. [Create stack set (スタックセットの作成)] ウィザードの [テンプレートの選択] ページで、[Select a sample template from the following templates (以下のテンプレートからサンプルテンプレートを選択)] を選択します。

    
                        StackSets Select Template ウィザードページ
  4. [Enable AWS Config (AWS Config の有効化)] サンプルテンプレートを選択し、[次へ] を選択します。

    
                        StackSets サンプル Enable AWS Config テンプレート
  5. ウィザードの [Specify details] ページで、次の情報を入力します。

    1. スタックセットの名前を指定します。スタックセット名はアルファベット文字で始まり、文字、数字、ハイフンのみを含める必要があります。このウォークスルーでは、ユーザー名は my-awsconfig-stackset です。

      
                                [Specify Details (詳細の指定)] ページ、最初のセクション
    2. プロンプトが表示され、AWS Config に使用されるパラメータの値を指定します。これらのパラメータに関する詳細については、AWS Config 開発者ガイドの「コンソールによる AWS Config の設定」を参照してください。このウォークスルーでは、すべての AWS Config パラメータをデフォルト設定のままにしておきます。

  6. [Delivery Channel Configuration (配信チャネルの設定)] 領域で、アップデートと通知の配信チャネルを設定できます。AWS Config の配信チャネルでの詳細については、AWS Config 開発者ガイド の「配信チャネルの管理」を参照してください。このウォークスルーでは、この領域はデフォルト設定のままにします。

  7. [Delivery Notifications (配信通知)] 領域で、ログの内容に基づいて Amazon Simple Notification Service (SNS) の更新を E メールで設定できます。このウォークスルーでは、Amazon SNS の更新は設定しません。

  8. AWS Config のパラメータの指定が完了したら、[次へ] を選択します。

  9. [Set deployment options (デプロイオプションの設定)] ページで、スタックセットのスタックをデプロイするアカウントおよびリージョンを提供します。AWS CloudFormation は、リージョンのデプロイ失敗が指定された障害耐性を超えない限り、最初のリージョン内の指定されたアカウントにスタックをデプロイし、次のリージョンに移行し、それが繰り返されます。

    
                        Set Deployment Options ページ
    1. [Accounts (アカウント)] 領域で、[Deploy stacks in accounts (スタックをアカウントにデプロイ)] を選択します。ターゲットアカウント番号をテキストボックスに貼り付け、複数の数字をカンマで区切ります。

    2. [Regions (リージョン)] 領域で、米国西部 (オレゴン) リージョン を選択し、次に [追加] を選択します。米国東部 (バージニア北部) リージョン でこの手順を繰り返します。米国西部 (オレゴン) リージョン が [Deployment order (デプロイ順序)] ボックスの最初である必要があります。

    3. [Preferences (設定)] 領域で、デフォルト値の [1] および [Maximum concurrent accounts (同時アカウントの最大数)] の [By number (数値)] を保持します。つまり、AWS CloudFormation は一度に 1 つのアカウントのみでスタックをデプロイします。[Failure tolerance (障害耐性)] をデフォルト値の [0] のままにし、[By number (数値)] デフォルトオプションをそのままにします。つまり、AWS CloudFormation が現在のリージョンでデプロイを停止し、残りのリージョンでのデプロイをキャンセルする前に、最大で 1 つのスタックデプロイが、指定されたリージョンで失敗できるということを意味します。[次へ] を選択します。

  10. [タグ] ページで、キーおよび値のペアを指定してタグを追加します。このウォークスルーでは、[Test (テスト)] の値を持つ [Stage (ステージ)] というタグを作成します。スタックセットに適用するタグは、スタックに作成されるすべてのリソースに適用されます。AWS でのタグの使用方法に関する詳細は、AWS Billing and Cost Management ユーザーガイドの「コスト配分タグの使用」を参照してください。キーと値のペアを指定したあと、[+] を選択してタグを保存します。[次へ] を選択します。

    
                        タグページ
  11. [Review] ページで、設定とスタックセットのプロパティを確認します。変更するには、プロパティを変更する領域で [Edit (編集)] を選択します。スタックセットを作成する前に、[CAPABILITY] 領域のチェックボックスをオンにし、スタックセットで作成しているリソースの一部が新しい IAM リソースやアクセス権限を必要とする場合があることを認識します。必要となる可能性があるアクセス権限の詳細については、本ガイドの「AWS CloudFormation テンプレートで IAM リソースを認識する」を参照してください。スタックセットを作成する準備ができたら、[作成] を選択します。

    
                        必要な機能を認識する
  12. AWS CloudFormation がスタックセットの作成を開始します。スタックセット内のスタックの作成のステータスの進捗は、[作成] を選択した際に開くプロパティページで確認できます。

AWS CLI を使用してスタックセットを作成するには

AWS CLI コマンドを使用してスタックセットを作成する場合は、2 つの異なるコマンドを実行します。create-stack-set でテンプレートをアップロードしてスタックセットコンテナを作成し、create-stack-instances でスタックセット内にスタックを作成します。まず AWS CLI コマンド create-stack-set を実行し、AWS Config を有効にする AWS CloudFormation テンプレートのサンプルをアップロードし、それからスタックセット作成を開始します。

  1. AWS CLI を開きます。

  2. 次のコマンドを実行します。--template-url パラメータには、テンプレートを保存する Amazon S3 バケットの URL を入力します。このウォークスルーでは、my-awsconfig-stackset パラメータの値として --stack-set-name を使用します。

    aws cloudformation create-stack-set --stack-set-name my-awsconfig-stackset --template-url https://s3.amazonaws.com/cloudformation-stackset-sample-templates-us-east-1/EnableAWSConfig.yml
  3. create-stack-set が完了したあと、list-stack-sets コマンドを実行してスタックセットが作成されたことを確認します。新しいスタックセットが表示結果で確認できます。

    aws cloudformation list-stack-sets
  4. create-stack-instances AWS CLI コマンドを実行して、スタックセットにスタックインスタンスを追加します。このウォークスルーでは、us-west-2 パラメータの値として us-east-1 および --regions を使用します。

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

    aws cloudformation create-stack-instances --stack-set-name my-awsconfig-stackset --accounts '["account_ID_1","account_ID_2"]' --regions '["region_1","region_2"]' --operation-preferences FailureToleranceCount=0,MaxConcurrentCount=1

    重要

    別のオペレーションを開始する前に、オペレーションが終了するのを待ってください。一度に 1 つのオペレーションのみを実行できます。

  5. スタックイスタンスが正常に作成されたことを確認します。DescribeStackSetOperation を、ステップ 4 の出力の一部として返される operation-id と実行します。

    aws cloudformation describe-stack-set-operation --stack-set-name my-awsconfig-stackset --operation-id operation_ID