⚒️

[CDK] cdk diff が変更セットを生成するようになっている件

2024/01/31に公開

aws-cdk のバージョンを上げたら、diff を取るのにやたら時間がかかるようになったのですが、v2.119.0 以降で cdk diff に --change-set / --no-change-set フラグが追加され、前者がデフォルトになったようです。

https://github.com/aws/aws-cdk/releases/tag/v2.119.0

これにより diff を実行すると CloudFormation の変更セットを生成して差分を取得するようになります。今までの diff ではリソース ID が変わるだけの表面的な変更も、リソース置換として表示されてしまい「大丈夫か、、、?」と不安にさせられることがありましたが、変更セットを生成するようになることで deploy によって実際に発生する差分 (置換) が正しく表示されるようになるとのこと。

改めて現状のバージョン(v2.124.0)で挙動を確認すると cdk diff の実行中、変更があるスタックに差し掛かると以下の文言が表示されて、しばらく待たされます。

Hold on while we create a read-only change set to get a diff with accurate replacement information (use --no-change-set to use a less accurate but faster template-only diff)

開発中など、正確な diff 出さなくていいからもっとクイックにデプロイをしたい、という場合には --no-change-set フラグをつけましょう。

変更セットを生成しない今まで通りの diff の挙動になります。

Discussion