リソース削除 | AWS CDK
基本はコードから削除します。 不備がなければデプロイ時に削除されます。
ただしデフォルトで削除されないリソースがあります。
これらは削除ポリシー(removalPolicy)が RETAIN などになっているため、実体がアカウントに残ります。
removalPolicy は、スタックを削除したときだけでなく、コードからリソースを削除したときや、更新でリソースが置換されたときにも効きます(CloudFormation の DeletionPolicy と UpdateReplacePolicy に対応)。
CDK コードで明示的に removalPolicy: cdk.RemovalPolicy.DESTROY を指定しないと、これらは残り続けます。
| リソース | デフォルトの removalPolicy | 削除時の挙動 | 削除するには |
|---|---|---|---|
| S3 バケット | RETAIN | スタックから外れるだけで、バケットとデータが残る | DESTROY と autoDeleteObjects: true(バケットが空でないと削除に失敗するため) |
| ECR リポジトリ | RETAIN | スタックから外れるだけで、リポジトリとイメージが残る | DESTROY と emptyOnDelete: true(旧 autoDeleteImages) |
| RDS | SNAPSHOT | DB は削除され、スナップショットが残る | スナップショットも不要なら DESTROY。deletionProtection が有効だと削除できない |
| DynamoDB テーブル | RETAIN | テーブルとデータがそのまま残る(スナップショットは取られない) | DESTROY |
| CloudWatch LogGroup | RETAIN | ロググループとログが残る | DESTROY |
デフォルト値はバージョンやコンストラクトにより異なる場合があるため、API リファレンスで確認してください。
今の構成の場合
VPC・ECS・SecurityGroup はデフォルトで削除されるため、コード削除 → cdk deploy で問題ありません。
ただし、ECS のログドライバーに awsLogs を使っている場合、CDK が作成する LogGroup は RETAIN で残ります。不要なら手動で削除するか、LogGroup を明示的に作って removalPolicy: DESTROY を指定します。