変更セットの作成 - AWS CloudFormation

変更セットの作成

実行中のスタックの変更セットを作成するには、変更するテンプレート、新しい入力パラメータ値、またはその両方を提供して、変更内容を送信します。CloudFormation は、スタックを提出した変更と比較することにより、変更セットを生成します。

変更セットを作成する前、または変更セットの作成中にテンプレートを変更できます。

Create a change set for nested stacks (console)
ネストされたスタックの変更セットを作成するには (コンソール)
  1. AWS CloudFormation コンソールの [スタック] で、変更セットを作成する実行中のスタックを選択します。

  2. スタックの詳細ペインで、[Stack actions (スタックアクション)] を選択し、[既存スタックの変更セットの作成] を選択します。

  3. [スタック stack-name の変更セットの作成] ページで、次のいずれかを実行して入力パラメータ値を変更し、更新されたテンプレートの場所を指定するか、テンプレートを変更します。

    タスク アクション
    入力パラメータ値を変更するには [Use current template] (現在のテンプレートの使用) を選択し、[Next] (次へ) を選択して入力パラメータ値の入力または変更に進みます。
    更新されたテンプレートの場所を指定するには

    テンプレートを変更した場合は、[Replace current template (現在のテンプレートを置換)] を選択して、次のいずれかを実行します。

    • Amazon S3 バケットに保存されているテンプレートの場合は、[Amazon S3 URL] を選択します。テンプレートの URL を入力するか貼り付けて、[次へ] を選択します。

      バージョニングが有効なバケットにテンプレートがある場合、https://s3.amazonaws.com/templates/myTemplate.template?versionId=123ab1cdeKdOW5IH4GAcYbEngcpTJTDW のようにテンプレートの特定バージョンを指定することもできます。詳細については、「Amazon Simple Storage Service ユーザーガイド」の「バージョニングが有効なバケット内のオブジェクトの管理」を参照してください。

    • ローカルコンピュータに保存されているテンプレートの場合は、[テンプレートファイルをアップロード] を選択します。[ファイルの選択] を選択してファイルの場所に移動し、ファイルを選択して、[次へ] を選択します。

    テンプレートを変更するには テンプレートを変更していない場合は、[Edit template in designer (デザイナーでテンプレートを編集)] を選択し、[View in designer (デザイナーで表示)] を選択します。AWS CloudFormation デザイナーにリダイレクトされます。テンプレートを変更したら、 を選択して [スタック stack-name の変更セットの作成] ページに戻り、[次へ] を選択します。
  4. テンプレートにパラメータが含まれている場合、[Specify stack details (スタックの詳細を指定)] ページで、適用可能な入力パラメータ値を入力または変更し、[次へ] を選択します。

    スタックのテンプレートを再利用する場合は、CloudFormation によって各パラメータにスタックの現在の値が入力されています。ただし、NoEcho 属性で宣言されているパラメータは除きます。これらのパラメータに既存の値を使用するには、[既存の値の使用] を選択します。

    NoEcho を使用して機密情報をマスクする方法、また動的なパラメータを使用してシークレットを管理する方法の詳細については、「テンプレートに認証情報を埋め込まない」ベストプラクティスを参照してください。

  5. [Configure stack options] ページで、スタックのタグ、IAM サービスロール、スタックポリシー、ロールバック構成、Amazon SNS 通知トピック (該当する場合) を更新し、[Next] を選択します。

    注記

    ネストされたスタックの変更セットは、デフォルトで有効になっています。これにより、テンプレートで指定されているすべての入れ子スタックの変更セットが作成されます。ネストされたスタックの変更セットの詳細については、「 ネストされたスタックの変更セット 」を参照してください。

  6. [Review stack-name (stack-name の確認)] ページで、この変更セットの変更を確認します。

    テンプレートに AWS Identity and Access Management (IAM) リソースが含まれる場合、[I acknowledge that CloudFormation might create IAM resources] (CloudFormation が IAM リソースを作成する可能性があることを確認します) を選択します。IAM リソースは、AWS アカウントのアクセス許可を変更できます。これらのリソースを確認し、意図したアクションのみを許可していることを確認してください。詳細については、「AWS Identity and Access Management によるアクセスの制御」を参照してください。

  7. [変更セットの作成] を選択します。変更セットの名前を指定し、オプションで変更セットの説明を指定して、その目的をわかりやすく示します。続いて、[変更セットの作成] を選択します。

    変更セットの詳細ページの [変更] タブにリダイレクトされます。CloudFormation によって変更セットが生成される間、変更セットのステータスは [CREATE_IN_PROGRESS] です。変更セットが作成されると、CloudFormation によってステータスが [CREATE_COMPLETE] に設定されます。[Changes] (変更) セクションに、CloudFormation によってスタックに対するすべての変更のリストが表示されます。詳細については、「変更セットの表示」を参照してください。

    
                  ネストされた変更セットの詳細ページ。

    CloudFormation で変更セットの作成に失敗した場合 (FAILED ステータスが報告された場合)、[Status] (状況) フィールドに表示されたエラーを修正して、変更セットを再作成します。

Create a change set (console)
変更セットを作成するには (コンソール)
  1. AWS CloudFormation コンソールの [スタック] で、変更セットを作成する実行中のスタックを選択します。

  2. スタックの詳細ペインで、[Stack actions (スタックアクション)] を選択し、[既存スタックの変更セットの作成] を選択します。

  3. [スタック stack-name の変更セットの作成] ページで、次のいずれかを実行して入力パラメータ値を変更し、更新されたテンプレートの場所を指定するか、テンプレートを変更します。

    タスク アクション
    入力パラメータ値を変更するには [Use current template] (現在のテンプレートの使用) を選択し、[Next] (次へ) を選択して入力パラメータ値の入力または変更に進みます。
    更新されたテンプレートの場所を指定するには

    テンプレートを変更した場合は、[Replace current template (現在のテンプレートを置換)] を選択して、次のいずれかを実行します。

    • Amazon S3 バケットに保存されているテンプレートの場合は、[Amazon S3 URL] を選択します。テンプレートの URL を入力するか貼り付けて、[次へ] を選択します。

      バージョニングが有効なバケットにテンプレートがある場合、https://s3.amazonaws.com/templates/myTemplate.template?versionId=123ab1cdeKdOW5IH4GAcYbEngcpTJTDW のようにテンプレートの特定バージョンを指定することもできます。詳細については、「Amazon Simple Storage Service ユーザーガイド」の「バージョニングが有効なバケット内のオブジェクトの管理」を参照してください。

    • ローカルコンピュータに保存されているテンプレートの場合は、[テンプレートファイルをアップロード] を選択します。[ファイルの選択] を選択してファイルの場所に移動し、ファイルを選択して、[次へ] を選択します。

    テンプレートを変更するには テンプレートを変更していない場合は、[Edit template in designer (デザイナーでテンプレートを編集)] を選択し、[View in designer (デザイナーで表示)] を選択します。AWS CloudFormation デザイナーにリダイレクトされます。テンプレートを変更したら、 を選択して [スタック stack-name の変更セットの作成] ページに戻り、[次へ] を選択します。
  4. テンプレートにパラメータが含まれている場合、[Specify stack details (スタックの詳細を指定)] ページで、適用可能な入力パラメータ値を入力または変更し、[次へ] を選択します。

    スタックのテンプレートを再利用する場合は、CloudFormation によって各パラメータにスタックの現在の値が入力されています。ただし、NoEcho 属性で宣言されているパラメータは除きます。これらのパラメータに既存の値を使用するには、[既存の値の使用] を選択します。

    NoEcho を使用して機密情報をマスクする方法、および動的なパラメータを使用してシークレットを管理する方法の詳細については、「テンプレートに認証情報を埋め込まない」のベストプラクティスをご参照ください。

  5. [Configure stack options] ページで、スタックのタグ、IAM サービスロール、スタックポリシー、ロールバック構成、Amazon SNS 通知トピック (該当する場合) を更新し、[Next] を選択します。

    注記

    ネストされたスタックの変更セットは、デフォルトで有効になっています。これにより、テンプレートで指定されているすべての入れ子スタックの変更セットが作成されます。現在のスタックにのみ変更セットを作成するには、[Disabled] を選択します。ネストされたスタックの変更セットの詳細については、「 ネストされたスタックの変更セット 」を参照してください。

  6. [Review stack-name (stack-name の確認)] ページで、この変更セットの変更を確認します。

    テンプレートに AWS Identity and Access Management (IAM) リソースが含まれる場合、[I acknowledge that CloudFormation might create IAM resources] (CloudFormation が IAM リソースを作成する可能性があることを確認します) を選択します。IAM リソースは、AWS アカウントのアクセス許可を変更できます。これらのリソースを確認し、意図したアクションのみを許可していることを確認してください。詳細については、「AWS Identity and Access Management によるアクセスの制御」を参照してください。

  7. [変更セットの作成] を選択します。変更セットの名前を指定し、オプションで変更セットの説明を指定して、その目的をわかりやすく示します。続いて、[変更セットの作成] を選択します。

    変更セットの詳細ページの [変更] タブにリダイレクトされます。CloudFormation によって変更セットが生成される間、変更セットのステータスは [CREATE_IN_PROGRESS] です。変更セットが作成されると、CloudFormation によってステータスが [CREATE_COMPLETE] に設定されます。[Changes] (変更) セクションに、CloudFormation によってスタックに対するすべての変更のリストが表示されます。詳細については、「変更セットの表示」を参照してください。

    
                変更セットの詳細ページ。

    CloudFormation で変更セットの作成に失敗した場合 (FAILED ステータスが報告された場合)、[Status] (状況) フィールドに表示されたエラーを修正して、変更セットを再作成します。

変更セットを作成するには (AWS CLI)
  • aws cloudformation create-change-set コマンドを実行します。

    変更はコマンドオプションとして送信します。新しいパラメータ値、修正済みのテンプレート、または両方を指定できます。たとえば、次のコマンドで SampleChangeSet スタックの SampleStack という名前の変更セットが作成されます。変更セットは現在のスタックのテンプレートを使用しますが、Purpose パラメータの値が異なります。

    aws cloudformation create-change-set --stack-name arn:aws:cloudformation:us-east-1:123456789012:stack/SampleStack/1a2345b6-0000-00a0-a123-00abc0abc000 --change-set-name SampleChangeSet --use-previous-template --parameters ParameterKey="InstanceType",UsePreviousValue=true ParameterKey="KeyPairName",UsePreviousValue=true ParameterKey="Purpose",ParameterValue="production"