[今までお疲れ様でした!] AWS CDK v1 が 2023/6/1 付で EOS を迎えました。

2023.06.01

こんにちは、CX事業本部 Delivery部の若槻です。

以前から予告されていた通り、米国時間 2023/6/1 をもって AWS Development Kit の version 1(AWS CDK v1)が End-of-Support(EOS)となりました。

これにより、現在もなお v1 スタックを利用している環境では、次のメジャーバージョンである AWS CDK v2 へのアップグレードによる早急な移行が求められます。

v1 のサポートの歴史

この1年間のメンテナンスモードは、AWS CDK Maintenance Policy に従ったサポート計画となっていました。

どうやって v2 に移行すれば良い?

すでに v1 で構築されたスタックがシステムにある場合は、次のドキュメントの手順にある従って v2 へのアップグレードを行いましょう。

大まかな移行手順は次のようになります。

  1. cdk.json 中の機能フラグの更新
  2. package.json 中の dependency および devDependencies の更新
  3. App および Stack のコード中のインポートの更新

次のエントリも参考になるので合わせてご覧ください。

システム上で v1 スタックが使われているか確認する方法は?

チェックツールとして AWS CDK V1 Stack Finder が提供されています。

次のようにコマンドを実行するだけで、各リージョンで使われている v1 スタックを抽出してくれます。

❯ npx awscdk-v1-stack-finder
us-east-1: fetching stacks
us-east-1: complete
eu-west-1: fetching stacks
eu-west-1: complete
us-west-1: fetching stacks
us-west-1: complete
ap-southeast-1: fetching stacks
ap-southeast-1: complete
ap-northeast-1: fetching stacks
ap-northeast-1: complete
...
...
...

Found 12 AWS CDK V1 stacks:

name: us-east-1-v1-CdkStack-5 | id: arn:aws:cloudformation:us-east-1:123456789999:stack/us-east-1-v1-CdkStack-5/8dba4af0-ec83-11ec-b731-12920c137c03
name: us-east-1-v1-CdkStack-4 | id: arn:aws:cloudformation:us-east-1:123456789999:stack/us-east-1-v1-CdkStack-4/543baa30-ec83-11ec-8b26-0e62bae32ce5
name: us-east-1-v1-CdkStack-3 | id: arn:aws:cloudformation:us-east-1:123456789999:stack/us-east-1-v1-CdkStack-3/1df2e010-ec83-11ec-abb7-0ed4b803f023
name: us-east-1-v1-CdkStack-2 | id: arn:aws:cloudformation:us-east-1:123456789999:stack/us-east-1-v1-CdkStack-2/e7706850-ec82-11ec-ab94-0a18c92d7bc5
name: us-east-1-v1-CdkStack-1 | id: arn:aws:cloudformation:us-east-1:123456789999:stack/us-east-1-v1-CdkStack-1/adec4950-ec82-11ec-8704-0a59224ca017
name: us-east-1-v1-CdkStack-0 | id: arn:aws:cloudformation:us-east-1:123456789999:stack/us-east-1-v1-CdkStack-0/7421ab70-ec82-11ec-8f7a-0ad10107c705
name: us-east-2-v1-CdkStack-5 | id: arn:aws:cloudformation:us-east-2:123456789999:stack/us-east-2-v1-CdkStack-5/da55d860-ec84-11ec-b1a9-06f24f6851ca
name: us-east-2-v1-CdkStack-4 | id: arn:aws:cloudformation:us-east-2:123456789999:stack/us-east-2-v1-CdkStack-4/a36adad0-ec84-11ec-b55d-0a7b3c2a4574
name: us-east-2-v1-CdkStack-3 | id: arn:aws:cloudformation:us-east-2:123456789999:stack/us-east-2-v1-CdkStack-3/693f0a20-ec84-11ec-a89c-0a27eef80a54
name: us-east-2-v1-CdkStack-2 | id: arn:aws:cloudformation:us-east-2:123456789999:stack/us-east-2-v1-CdkStack-2/32393190-ec84-11ec-ad0b-0a46add5eab0
name: us-east-2-v1-CdkStack-1 | id: arn:aws:cloudformation:us-east-2:123456789999:stack/us-east-2-v1-CdkStack-1/fb30c0f0-ec83-11ec-94ea-02306812ac04
name: us-east-2-v1-CdkStack-0 | id: arn:aws:cloudformation:us-east-2:123456789999:stack/us-east-2-v1-CdkStack-0/c41febe0-ec83-11ec-8d9d-020bb84204d2

1つの CDK ライブラリで v1 と v2 の両方を共存させられる?

できません。

You should perform a major version bump on your library's version number when releasing a v2-compatible library, because this is a breaking change for library consumers. It is not possible to support both CDK v1 and v2 with a single library. To continue to support customers who are still using v1, you could maintain the earlier release in parallel, or create a new package for v2.

v2 の特徴は?

次のドキュメントに詳しいです。

主に次のような特徴があります。

  1. すべての Construct Library の Stable Release を1つのパッケージに統合
  2. L2 および L3 の Experiment Module の配布

1.に関しては v1 までは AWS サービスやリソースの種類ごとに Construct Library が分かれていたため、Library アップグレード時にすべてのバージョンを同期させる必要がありました。この手間がv2 ではなくなります。

2.に関しては L1 のみサポートされている AWS サービスやリソースを、Alpha Release の L2 Library で先行して利用できるようになりました。またコミュニティの作成した L3 ライブラリも配布されるようになりました。

v1 の EOS 以前の最後のリリースバージョンは?

これは完全に蛇足ですが、v1 の EOS 以前の最後のリリースバージョンは v1.203.0 で、米国時間 2023/5/31 にリリースされました。内容はAWS Sheild の L1 Construct Library のサポートでした。

おわりに

AWS CDK v1 が 2023/6/1 付で EOS を迎えました。先進的な Infrastructure as Code(IaC)の先駆けとして、v1 は多くの AWS ディベロッパーに利用されてきました。v2 では、v1 でのユーザーのフィードバックをもとに、より使いやすく、より柔軟な IaC ツールとして進化しています。v2 への移行がまだの場合は、v1 の今までの活躍をねぎらいつつ、早急に行うようにしましょう。

参考

以上