UpdateReplacePolicy 属性 - AWS CloudFormation

UpdateReplacePolicy 属性

UpdateReplacePolicy 属性では、スタック更新オペレーションでリソースを置き換えるときに、リソースの既存の物理インスタンスを保持したり、必要に応じてバックアップしたりします。

スタックの更新を開始すると、AWS CloudFormation は、送信された内容とスタックの現在のテンプレートおよびパラメータの違いに基づいてリソースを更新します。リソースプロパティの更新に伴ってリソースの置換が必要となる場合、CloudFormation は更新時にリソースを再作成します。リソースの再作成に伴って物理 ID が生成されます。CloudFormation は、まず置き換えリソースを作成し、次に他の依存リソースからの参照を置き換えリソースを指すように変更します。デフォルトでは、CloudFormation は古いリソースを削除します。UpdateReplacePolicy では、CloudFormation で古いリソースを保持するか、必要に応じて古いリソースのスナップショットを作成するかを指定できます。

スナップショットをサポートするリソース (AWS::EC2::Volume など) の場合は、Snapshot を指定し、CloudFormation でスナップショットを作成してから古いリソースインスタンスを削除します。

UpdateReplacePolicy 属性は、任意のリソースに適用できます。UpdateReplacePolicy が実行されるのは、更新するリソースプロパティの更新動作が Replacement と指定されている場合に限ります。これにより、CloudFormation は古いリソースを新しいリソースに置き換えて新しい物理 ID を割り当てます。例えば、AWS::RDS::DBInstance リソースタイプの Engine プロパティを更新すると、CloudFormation によって新しいリソースが作成され、現在の DB インスタンスリソースと置き換えられます。次に、UpdateReplacePolicy 属性は、CloudFormation による古い DB インスタンスの削除、保持、またはスナップショットの作成を行うかどうかを指定します。リソースの各プロパティの更新動作は、AWS リソースおよびプロパティタイプのリファレンス で、そのリソースに関する参照トピックに指定されています。リソースの更新動作の詳細については、「スタックリソースの更新動作を理解する」を参照してください。

UpdateReplacePolicy 属性は、変更セットを使用して実行されるスタックの更新だけでなく、直接実行するスタックの更新にも適用されます。

注記

保持されたリソースは存続し、削除されるまでは、該当する料金が引き続き発生します。このポリシーを使用して作成されたスナップショットは引き続き存在し、それらのスナップショットを削除するまで該当の料金が発生します。UpdateReplacePolicy は、古い物理リソースまたはスナップショットを保持しますが、CloudFormation のスコープからは削除します。

UpdateReplacePolicy は、スタックの更新時に置き換えるリソースにのみ適用されるという点で、DeletionPolicy 属性とは異なります。DeletionPolicy は、スタックの削除時にリソースを削除する場合や、スタック更新の一環としてリソース定義自体をテンプレートから削除する場合に使用します。

次のスニペットに示す Amazon RDS データベースインスタンスリソースでは、置換ポリシーとして Retain を使用しています。このリソースが新しいリソースに置き換えられて新しい物理 ID が割り当てられると、CloudFormation は古いデータベースインスタンスを削除せずに保持します。

JSON

{ "AWSTemplateFormatVersion" : "2010-09-09", "Resources" : { "myDB" : { "Type" : "AWS::RDS::DBInstance", "DeletionPolicy" : "Retain", "UpdateReplacePolicy" : "Retain", "Properties" : {} } } }

YAML

AWSTemplateFormatVersion: 2010-09-09 Resources: myDB: Type: 'AWS::RDS::DBInstance' DeletionPolicy: Retain UpdateReplacePolicy: Retain Properties: {}

UpdateReplacePolicy オプション

Delete

CloudFormation はリソースの置換に伴ってリソースとそのすべてのコンテンツ (該当する場合) を削除します。このポリシーは、任意のリソースタイプに追加できます。デフォルトでは、UpdateReplacePolicy を指定しない場合、CloudFormation はリソースを削除します。ただし、次の点を考慮する必要があります。

Amazon S3 バケットでは、削除を成功させるためにはバケットのすべてのオブジェクトを削除する必要があります。

Retain

CloudFormation はリソースの置換に伴ってリソースを保持します。リソースやそのコンテンツは削除されません。このポリシーは、任意のリソースタイプに追加できます。保持されたリソースは存続し、削除されるまでは、該当する料金が引き続き発生します。

リソースを置き換えると、古い物理リソースは、UpdateReplacePolicy には保持されますが、CloudFormation のスコープからは削除されます。

Snapshot

スナップショットをサポートするリソースについては、CloudFormation は削除前に、リソースのスナップショットを作成します。このポリシーで作成されたスナップショットは存続し、削除されるまでは、該当する料金が引き続き発生します。

注記

スナップショットをサポートしていないリソースに対して UpdateReplacePolicySnapshot オプションを指定すると、CloudFormation は、Delete というデフォルトのオプションに戻ります。

スナップショットをサポートするリソースは以下のとおりです。