ある企業がAWS CloudFormationを使ってEC2インスタンスとRDSインスタンスを管理している。本番スタックを削除する際にRDSインスタンスだけは削除されないよう保護したいが、EC2インスタンスはスタック削除時に一緒に削除して構わない。この要件を最小の設定変更で実現する方法として正しいものはどれか。
- A. RDSスナップショットを定期的に取得するライフサイクルポリシーを設定する
- B. スタックポリシーでRDSリソースへのDelete操作を拒否するルールを設定する
- C. CloudFormationテンプレートのRDSリソースにDeletionPolicy: Retainを設定し、EC2リソースにはDeletionPolicy: Deleteを設定する
- D. RDSリソースにCloudFormation termination protectionを有効にする
解答と解説を見る
正解: C
CloudFormationのDeletionPolicyは各リソースに個別に設定できる属性で、スタック削除または置き換え時のリソースの扱いを制御する。DeletionPolicy: Retainを設定したリソースはスタック削除後もAWS上に残り続け、DeletionPolicy: Deleteはスタック削除時にリソースを削除する(デフォルト動作)。RDSにRetainを設定するだけで、スタック削除時にRDSを保護できる。BのスタックポリシーはCloudFormation操作によるリソース変更を制限するものであり、Deleteアクションはスタック更新時のリソース削除に関するものでスタック自体の削除には適用されない。DのCloudFormation termination protectionはスタック全体の削除保護であり、特定リソースのみの保護はできない。AのRDSスナップショットはデータバックアップであり、CloudFormationによる削除を防ぐものではない。
📚 関連サービスの解説: AWS CloudFormation ・ Amazon RDS