メニュー
AWS CloudFormation
ユーザーガイド (API Version 2010-05-15)

スタックの直接更新

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

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

注記

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

AWS CloudFormation スタックを更新するには (コンソール)

  1. AWS CloudFormation コンソールに表示されるスタックのリストから、更新対象となる実行中のスタックを選択します。

  2. [Actions] を選択し、[Update Stack] を選択します。

    [Actions] メニューの [Update Stack] オプションをクリックします。
  3. スタックテンプレートを変更した場合は、更新されたテンプレートの場所を指定します。そうでない場合は、[Use current template] を選択します。

    • ローカルコンピュータに保存されているテンプレートの場合は、[Upload a template to Amazon S3] を選択します。 [Choose File] を選択してファイルの場所に移動して選択し、[Next] をクリックします。

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

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

  4. テンプレートにパラメーターが含まれている場合、[Specify Parameters] ページで、パラメーター値を入力または変更し、[Next] をクリックします。

    各パラメーターには、NoEcho 属性で宣言されたパラメーターを除いて、スタックに現在設定されている値が入力されますが、[Use existing value] を選択することで、現在の値をそのまま使用することもできます。

  5. [Options] ページで、スタックのサービスロールの更新、オーバーライドのスタックポリシーの入力、または Amazon SNS 通知トピックの更新を行うことができます。オーバーライドのスタックポリシーを使用すると、保護されたリソースを更新することができます。詳細については、「スタックのリソースが更新されないようにする」を参照してください。

    [Next] をクリックします。

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

    [Review] セクションで、パラメーター値やテンプレートの URL が適切かなど、正しい情報を送信したことを確認します。テンプレートに IAM リソースが含まれる場合は、[I acknowledge that this template may create IAM resources] を選択して、テンプレート内の IAM リソースを使用することを指定します。テンプレート内の IAM リソースの使用の詳細については、AWS Identity and Access Management によるアクセスの制御を参照してください。

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

  7. [Update] をクリックします。

    スタックは UPDATE_IN_PROGRESS 状態になります。更新が完了すると、状態は UPDATE_COMPLETE に設定されます。

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

    注記

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

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

  • aws cloudformation update-stack コマンドを使用して、スタックを直接更新します。更新するスタック、パラメーター値、機能を指定し、更新されたテンプレートを使用する場合はテンプレートの名前も指定します。

    次の例は、mystack スタックのテンプレートと入力パラメーターを更新します。

    Copy
    PROMPT> aws cloudformation update-stack --stack-name mystack --template-url https://s3.amazonaws.com/sample/updated.template --parameters ParameterKey=VPCID,ParameterValue=SampleVPCID ParameterKey=SubnetIDs,ParameterValue=SampleSubnetID1\\,SampleSubnetID2

    次の例は、SubnetIDs スタックの mystack パラメーター値のみを更新します。

    Copy
    PROMPT> aws cloudformation update-stack --stack-name mystack --use-previous-template --parameters ParameterKey=VPCID,UsePreviousValue=true ParameterKey=SubnetIDs,ParameterValue=SampleSubnetID1\\,UpdatedSampleSubnetID2

    次の例は、2 つのスタック通知トピックを mystack スタックに追加します。

    Copy
    PROMPT> aws cloudformation update-stack --stack-name mystack --use-previous-template --notification-arns "arn:aws:sns:us-east-1:12345678912:mytopic" "arn:aws:sns:us-east-1:12345678912:mytopic2"

    次の例は、mystack スタックからすべてのスタック通知トピックを削除します。

    Copy
    PROMPT> aws cloudformation update-stack --stack-name mystack --use-previous-template --notification-arns []