スタックを直接更新する - AWS CloudFormation

スタックを直接更新する

更新をスタックにすばやくデプロイするには、直接更新を実行します。直接更新では、テンプレートを送信するか、スタック内のリソースに対して更新を指定する入力パラメータを送信すると、CloudFormation によりすぐにデプロイされます。テンプレートを使用して更新する場合、現在のテンプレートを変更し、ローカルまたは Amazon S3 バケットに保存できます。

更新がサポートされていないリソースプロパティの場合、現在の値を保持する必要があります。更新前に CloudFormation がスタックに加える変更を確認するには、変更セットを使用します。詳細については、「変更セットを使用して CloudFormation スタックを更新する」を参照してください。

スタックを更新する際に、更新するプロパティによっては、CloudFormation によってリソースが中断されたり、更新されたリソースに置き換えられる場合があります。リソースの更新動作の詳細については、スタックリソースの更新動作を理解するを参照してください。

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

  2. 画面上部にあるナビゲーションバーで、AWS リージョン を選択します。

  3. [スタック] ページで、更新する実行中のスタックを選択します。

  4. スタックの詳細ペインで、[更新] を選択します。

  5. スタックテンプレートを変更していない場合は、[Use current template] (現在のテンプレートの使用) を選択し、[Next] (次へ) を選択します。

    テンプレートを変更した場合は、[Replace current template (現在のテンプレートを置換)] を選択し、[Specify template (テンプレートの指定)] セクションで更新されたテンプレートの場所を指定します。

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

      注記

      ローカルテンプレートファイルをアップロードする場合、CloudFormation は AWS アカウント の Amazon Simple Storage Service (Amazon S3) バケットにアップロードします。CloudFormation によって作成された S3 バケットがない場合は、テンプレートファイルをアップロードしたリージョンごとに一意のバケットが作成されます。AWS アカウント に、CloudFormation によって作成された S3 バケットが既にある場合、CloudFormation はそのバケットにテンプレートを追加します。

      CloudFormation によって作成された S3 バケットについて覚えておくべき考慮事項

      • バケットには、AWS アカウントで Amazon S3 許可を持つすべてのユーザーがアクセスできます。

      • CloudFormation は、デフォルトで有効になっているサーバー側の暗号化を使用してバケットを作成し、バケットに保存されているすべてのオブジェクトを暗号化します。

        CloudFormation が作成したバケットの暗号化オプションを直接管理できます。例えば、https://console.aws.amazon.com/s3/ の Amazon S3 コンソールまたは AWS CLI を使用できます。詳細については、「Amazon Simple Storage Service ユーザーガイド」で「Amazon S3 バケット向けのサーバー側のデフォルトの暗号化動作の設定」を参照してください。

      • 手動でテンプレートを Amazon S3 にアップロードすることで、独自のバケットを使用してアクセス権限を管理できます。スタックを作成または更新する場合は、テンプレートファイルの Amazon S3 の URL を指定します。

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

      バージョニング対応バケットにテンプレートがある場合は、URL に ?versionId=version-id を付加することでテンプレートの具体的なバージョンを指定できます。詳細については、「Amazon Simple Storage Service ユーザーガイド」の「バージョニングが有効なバケット内のオブジェクトの使用」を参照してください。

    構文の問題が検出された場合、コンソールにはテンプレートの修正に役立つエラーメッセージが表示されます。

  6. テンプレートにパラメータが含まれている場合、[Specify stack details] (スタックの詳細を指定) ページで、パラメータ値を入力または変更し、[Next] (次へ) を選択します。

    CloudFormation により、各パラメータには、NoEcho 属性で宣言されたパラメータを除いて、スタックに現在設定されている値が入力されますが、[既存の値の使用] をオンにすることで、現在の値をそのまま使用することもできます。

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

  7. [Configure stack options] (スタックオプションの構成) ページで、スタックに適用されるタグとアクセス権限を更新したり、スタックポリシー、ロールバック構成などの高度なオプションを変更したり、Amazon SNS 通知トピックを更新したりすることができます。これらのパラメータの詳細については、「スタックオプションを設定する」を参照してください。

  8. テンプレートに IAM リソースが含まれる場合は、[機能] で[I acknowledge that this template may create IAM resources (このテンプレートが IAM リソースを作成する可能性を認識しています)] を選択して、テンプレート内の IAM リソースを使用することを指定します。詳細については、「CloudFormation テンプレートでの IAM リソースの承認」を参照してください。

  9. [次へ] を選択して続行します。

  10. 送信したスタック情報と変更を確認します。

    パラメータ値やテンプレートの URL が適切かなど、正しい情報を送信したことを確認します。

    [変更セットのプレビュー] セクションで、必要な変更がすべて CloudFormation により加えられることを確認します。例えば、追加、削除、または変更する予定のリソースを、CloudFormation が追加、削除、および変更することを確認できます。CloudFormation は、スタックの変更セットを作成することによって、このプレビューを生成します。詳細については、「変更セットを使用して CloudFormation スタックを更新する」を参照してください。

  11. 変更内容が適切であることを確認できたら、[Update stack] (スタックの更新) を選択します。

    注記

    この時点で、変更セットを表示するオプションを使用すると、提案された更新をより徹底的に確認することもできます。これを行うには、[Update stack] (スタックを更新) の代わりに [View change set] (変更セットを表示) を選択してください。CloudFormation により、更新に基づいて生成された変更セットが表示されます。スタックの更新を実行する準備ができたら、[Execute] (実行) を選択します。

    CloudFormation によりスタックの詳細ページが表示され、[イベント] ペインが選択された状態になっています。これで、スタックのステータスは UPDATE_IN_PROGRESS になりました。CloudFormation によるスタックの更新が正常に完了したら、スタックの状況が UPDATE_COMPLETE に設定されます。

    スタックの更新が失敗した場合、CloudFormation によって変更が自動的にロールバックされ、スタックの状況が UPDATE_ROLLBACK_COMPLETE に設定されます。

    注記

    更新が UPDATE_IN_PROGRESS 状態のときはキャンセルできます。詳細については、「スタック更新をキャンセルする」を参照してください。

CloudFormation のスタックを更新するには (AWS CLI)

update-stackコマンドを実行します。update-stack CLI コマンドを使用してスタックを更新する例については、「AWS CLI および PowerShell の CloudFormation スタックオペレーションコマンドの例」を参照してください。