変更セットの作成 - AWS CloudFormation

変更セットの作成

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

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

変更セットを作成するには (コンソール)

  1. AWS CloudFormation コンソールの [スタック] で、変更セットを作成する実行中のスタックを選択します。

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

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

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

    テンプレートを変更した場合は、[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 (スタックの詳細を指定)] ページで、適用可能な入力パラメータ値を入力または変更し、[次へ] を選択します。

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

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

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

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

    テンプレートに AWS Identity and Access Management (IAM) リソースが含まれる場合、[AWS CloudFormation によって IAM リソースが作成される場合があることを承認します] を選択します。IAM リソースは、AWS アカウントのアクセス権限を変更することがあります。これらのリソースを確認して、必要なアクションのみを許可していることを確認します。詳細については、「AWS Identity and Access Management によるアクセスの制御」を参照してください。

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

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

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

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

変更セットを作成するには (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"