スタックを直接更新する
更新をスタックにすばやくデプロイするには、直接更新を実行します。直接更新では、テンプレートを送信するか、スタック内のリソースに対して更新を指定する入力パラメータを送信すると、CloudFormation によりすぐにデプロイされます。テンプレートを使用して更新する場合、現在のテンプレートを変更し、ローカルまたは Amazon S3 バケットに保存できます。
更新がサポートされていないリソースプロパティの場合、現在の値を保持する必要があります。更新前に CloudFormation がスタックに加える変更を確認するには、変更セットを使用します。詳細については、「変更セットを使用して CloudFormation スタックを更新する」を参照してください。
スタックを更新する際に、更新するプロパティによっては、CloudFormation によってリソースが中断されたり、更新されたリソースに置き換えられる場合があります。リソースの更新動作の詳細については、スタックリソースの更新動作を理解するを参照してください。
CloudFormation スタックを更新するには (コンソール)
-
AWS Management Console にサインインし、AWS CloudFormation コンソール (https://console.aws.amazon.com/cloudformation
) を開きます。 -
画面上部にあるナビゲーションバーで、AWS リージョン を選択します。
-
[スタック] ページで、更新する実行中のスタックを選択します。
-
スタックの詳細ペインで、[更新] を選択します。
-
スタックテンプレートを変更していない場合は、[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=
を付加することでテンプレートの具体的なバージョンを指定できます。詳細については、「Amazon Simple Storage Service ユーザーガイド」の「バージョニングが有効なバケット内のオブジェクトの使用」を参照してください。version-id
構文の問題が検出された場合、コンソールにはテンプレートの修正に役立つエラーメッセージが表示されます。
-
-
テンプレートにパラメータが含まれている場合、[Specify stack details] (スタックの詳細を指定) ページで、パラメータ値を入力または変更し、[Next] (次へ) を選択します。
CloudFormation により、各パラメータには、
NoEcho
属性で宣言されたパラメータを除いて、スタックに現在設定されている値が入力されますが、[既存の値の使用] をオンにすることで、現在の値をそのまま使用することもできます。NoEcho
を使用して機密情報をマスクする方法、および動的なパラメータを使用してシークレットを管理する方法の詳細については、「テンプレートに認証情報を埋め込まない のベストプラクティス」を参照してください。 -
[Configure stack options] (スタックオプションの構成) ページで、スタックに適用されるタグとアクセス権限を更新したり、スタックポリシー、ロールバック構成などの高度なオプションを変更したり、Amazon SNS 通知トピックを更新したりすることができます。これらのパラメータの詳細については、「スタックオプションを設定する」を参照してください。
-
テンプレートに IAM リソースが含まれる場合は、[機能] で[I acknowledge that this template may create IAM resources (このテンプレートが IAM リソースを作成する可能性を認識しています)] を選択して、テンプレート内の IAM リソースを使用することを指定します。詳細については、「CloudFormation テンプレートでの IAM リソースの承認」を参照してください。
-
[次へ] を選択して続行します。
-
送信したスタック情報と変更を確認します。
パラメータ値やテンプレートの URL が適切かなど、正しい情報を送信したことを確認します。
[変更セットのプレビュー] セクションで、必要な変更がすべて CloudFormation により加えられることを確認します。例えば、追加、削除、または変更する予定のリソースを、CloudFormation が追加、削除、および変更することを確認できます。CloudFormation は、スタックの変更セットを作成することによって、このプレビューを生成します。詳細については、「変更セットを使用して CloudFormation スタックを更新する」を参照してください。
-
変更内容が適切であることを確認できたら、[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 スタックオペレーションコマンドの例」を参照してください。