はじめに
本記事は、AWSインフラ構築のマジックツール「CDK(Cloud Development Kit)
」の v1
と v2
の違い についてサクッと知りたい方に読んでもらえればと思います!
目次
🧐 CDKってそもそも?
CDK(Cloud Development Kit)は、AWSのリソースをプログラミング言語で定義できるツール。
裏側では CloudFormation
が動いていますが、開発者目線では AWSのIaCを爆速で組める魔法のフレームワーク です。
🆚 CDK v1とv2の違いを比較
比較ポイント | CDK v1 | CDK v2 |
---|---|---|
リリース時期 | 2019年 | 2021年末 |
パッケージ構成 | リソースごとに分割(例:@aws-cdk/aws-s3) | すべて統合(aws-cdk-lib) |
初期セットアップの複雑さ | 高い(依存管理が面倒) | 低い(aws-cdk-lib一発) |
バージョニング | モジュールごとにズレることがある | 一括管理でバージョンが統一される |
サポート状況 | 2023年以降はメンテナンスモード | アクティブ開発中 |
新機能の提供 | なし(v1には今後追加されない) | 新機能・アップデートはv2中心 |
📢 v2は「すべてを統合してシンプルに」した設計で、開発者のUXを爆上げしています!
🧬 なぜv2が生まれたのか?背景と設計思想
v1で
は、例えばS3を使いたいだけでも下記のようなパッケージ地獄が発生していました..
npm install @aws-cdk/core @aws-cdk/aws-s3 @aws-cdk/aws-iam
...この構成、依存関係がバラバラになりやすく、CDKのバージョンが微妙にズレてバグの温床に…。
💡 v2
では 「全部まとめて aws-cdk-lib
にしようぜ!」 という英断が下され、シンプルかつ安全な開発が可能になったとのこと。
🔍 今から始めるならどっち?
普通に v2
一択です。
✅ v2を選ぶべき理由
- ドキュメント・サンプルコードがすでに
v2
前提 - 最新サービスや機能は
v2
にしか追加されない -
npm/yarn
の依存地獄からの解放 - 長期的な保守を考えると圧倒的に安心
🏷️ v1
はもう積極的には使わないほうがよい(新規プロジェクトでの利用は非推奨)
🔁 v1からv2への移行ステップ
Step 1:依存を整理
npm uninstall @aws-cdk/core @aws-cdk/aws-s3 ...
npm install aws-cdk-lib constructs
Step 2:インポート文を修正
v1
import * as s3 from '@aws-cdk/aws-s3';
v2
import * as s3 from 'aws-cdk-lib/aws-s3';
Step 3:cdk.json
の context を見直す(v1特有の設定があれば削除)
Step 4:cdk synth
& cdk deploy
で動作確認!
🎉 まとめ
CDKを使うなら今後はv2一択:v2
は未来のCDK
v1 ⇨ v2移行も手軽にできる。