

# スタックを直接更新する
<a name="using-cfn-updating-stacks-direct"></a>

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

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

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

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

1. AWS マネジメントコンソール にサインインし、CloudFormation コンソール ([https://console.aws.amazon.com/cloudformation](https://console.aws.amazon.com/cloudformation/)) を開きます。

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

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

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

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

   テンプレートを変更した場合は、**[既存のテンプレートを置換]** を選択し、**[テンプレートの指定]** セクションで更新されたテンプレートの場所を指定します。
   + ローカルコンピュータに保存されているテンプレートの場合は、[**テンプレートファイルをアップロード**] を選択します。[**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/](https://console.aws.amazon.com/s3/) の Amazon S3 コンソールまたは AWS CLI を使用できます。詳細については、「*Amazon Simple Storage Service ユーザーガイド*」で「[Amazon S3 バケット向けのサーバー側のデフォルトの暗号化動作の設定](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-encryption.html)」を参照してください。
手動でテンプレートを Amazon S3 にアップロードすることで、独自のバケットを使用してアクセス権限を管理できます。スタックを作成または更新する場合は、テンプレートファイルの Amazon S3 の URL を指定します。
   + Amazon S3 バケットに保存されているテンプレートの場合は、[**Amazon S3 URL**] を選択します。テンプレートの URL を入力するか貼り付けて、[**次へ**] を選択します。

     バージョニング対応バケットにテンプレートがある場合は、URL に `?versionId=version-id` を付加することでテンプレートの具体的なバージョンを指定できます。詳細については、「*Amazon Simple Storage Service ユーザーガイド*」の「[バージョニングが有効なバケット内のオブジェクトの使用](https://docs.aws.amazon.com/AmazonS3/latest/userguide/manage-objects-versioned-bucket.html)」を参照してください。

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

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

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

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

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

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

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

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

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

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

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

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

   スタックの更新が失敗した場合、CloudFormation によって変更が自動的にロールバックされ、スタックの状況が `UPDATE_ROLLBACK_COMPLETE` に設定されます。
**注記**  
更新が `UPDATE_IN_PROGRESS` 状態のときはキャンセルできます。詳細については、「[スタック更新をキャンセルする](using-cfn-stack-update-cancel.md)」を参照してください。

**コマンドラインを使用してスタックを更新するには**  
以下のコマンドのいずれかを使用できます。
+ [https://docs.aws.amazon.com/cli/latest/reference/cloudformation/update-stack.html](https://docs.aws.amazon.com/cli/latest/reference/cloudformation/update-stack.html) (AWS CLI)
+ [https://docs.aws.amazon.com/powershell/latest/reference/items/Update-CFNStack.html](https://docs.aws.amazon.com/powershell/latest/reference/items/Update-CFNStack.html) (AWS Tools for Windows PowerShell)

コマンドを使用してスタックを更新する例については、「[AWS CLI および PowerShell の CloudFormation スタックオペレーションコマンドの例](service_code_examples.md)」を参照してください。