[今までお疲れ様でした!] AWS CDK v1 が 2023/6/1 付で EOS を迎えました。
こんにちは、CX事業本部 Delivery部の若槻です。
以前から予告されていた通り、米国時間 2023/6/1 をもって AWS Development Kit の version 1(AWS CDK v1)が End-of-Support(EOS)となりました。
これにより、現在もなお v1 スタックを利用している環境では、次のメジャーバージョンである AWS CDK v2 へのアップグレードによる早急な移行が求められます。
v1 のサポートの歴史
- 2018/6/13 プレリリースバージョン (v0.7.0-beta)が公開開始
- 2018/7/31 パブリックリリース (v0.8.0)が公開開始
- 2022/6/1 メンテナンスモードへ移行し、L1 コンストラクトの更新および追加と重要なバグ修正のみサポート対象となる
- 2023/6/1 サポート終了
この1年間のメンテナンスモードは、AWS CDK Maintenance Policy に従ったサポート計画となっていました。
どうやって v2 に移行すれば良い?
すでに v1 で構築されたスタックがシステムにある場合は、次のドキュメントの手順にある従って v2 へのアップグレードを行いましょう。
大まかな移行手順は次のようになります。
cdk.json
中の機能フラグの更新package.json
中の dependency および devDependencies の更新- 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.
- Updating dependencies and imports - Migrating to AWS CDK v2 - AWS Cloud Development Kit (AWS CDK) v2
v2 の特徴は?
次のドキュメントに詳しいです。
主に次のような特徴があります。
- すべての Construct Library の Stable Release を1つのパッケージに統合
- 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 の今までの活躍をねぎらいつつ、早急に行うようにしましょう。
参考
以上