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

スタックのリソースの更新動作

更新を送信すると、スタックの現在のテンプレートと送信された内容の違いに基づいてリソースが更新されます。変更されていないリソースは、更新プロセス中も中断されることなく実行されます。更新されたリソースの場合、AWS CloudFormation では以下のいずれかの更新動作を使用します。

中断を伴わない更新

AWS CloudFormation は、リソースの使用を中断することなく、またリソースの物理 ID を変更することなく、リソースを更新します。たとえば、AWS::CloudTrail::Trail リソースの任意のプロパティを更新すると、AWS CloudFormation は中断せずに証跡を更新します。

一時的な中断を伴う更新

AWS CloudFormation がリソースを更新する際に一時的な中断があり、物理 ID は保持されます。たとえば、AWS::EC2::Instance リソースの特定のプロパティを更新すると、AWS CloudFormation および Amazon EC2 がインスタンスの再設定を行う間、インスタンスは一時的に中断されます。

置換

AWS CloudFormation は更新の際にリソースを再作成し、新しい物理 ID も生成されます。AWS CloudFormation は、まず置換リソースを作成し、他の従属するリソースからの参照が置換リソースを指すように変更してから、古いリソースを削除します。たとえば、AWS::RDS::DBInstance リソースタイプの Engine プロパティを更新すると、AWS CloudFormation によって新しいリソースが作成され、現在の DB インスタンスリソースと置き換えられます。

AWS CloudFormation が使用するメソッドは、特定のリソースタイプに対してどのプロパティを更新するかによって異なります。各プロパティの更新動作は、AWS リソースプロパティタイプのリファレンスに記載されています。

更新動作によって、リソースを変更するタイミングを決定し、アプリケーションに対する変更の影響を軽減できます。特に、更新中にリソースが置き換えられる必要があるタイミングを計画することができます。たとえば、AWS::RDS::DBInstance リソースタイプの Port プロパティを更新すると、AWS CloudFormation によって新しい DB インスタンスが作成され、ポート設定が更新されて古い DB インスタンスが削除されることで、DB インスタンスが置き換えられます。更新の前に、以下を実行してデータベースの置き換えに対して準備することをお勧めします。

  • 現在のデータベースのスナップショットを作成します。

  • DB インスタンスが置き換えられる場合、その DB インスタンスを使用するアプリケーションが中断をどのように処理するかについての戦略を準備します。

  • その DB インスタンスを使用するアプリケーションが、更新されたポート設定や、その他に行われた更新を考慮することを確認します。

  • DB スナップショットを使用して、新しい DB インスタンスにデータベースを復元します。

この例は完全なものではありません。更新中にリソースが置き換えられる場合に考慮する事項について紹介するためのものです。

注記

テンプレートにネストされたスタックが 1 つ以上含まれる場合、AWS CloudFormation もすべてのネストされたスタックに対して更新を開始します。これは、ネストされたスタックが変更されているかどうかを判定するために必要です。AWS CloudFormation はネストされたスタック内の、対応するテンプレートで指定した変更があったリソースのみを更新します。