【要約】【cdkd(CDK Direct)】CloudFormationを経由しないCDKデプロイ!? cdkdによる高速デプロイを試してみた! [Qiita_Trend] | Summary by TechDistill
> Source: Qiita_Trend
Execute Primary Source
// Problem
開発者が、Amplify Gen2や通常のCDKを用いたCI/CDプロセスにおいて、デプロイ完了までの待ち時間の長さに直面している。微小な変更であっても、デプロイ完了までに数分から十分程度の時間を要することが開発のボトルネックとなっている。
- ・Amplify Gen2のCI/CDでは、ビルドとデプロイを含め平均約8分を要する。
- ・CloudFormationの仕様により、CloudFront等のリソース作成時に「一貫性チェック」の待機時間が発生する。
- ・この待機時間がデプロイ全体の大部分を占め、開発サイクルを停滞させている。
// Approach
CloudFormationのオーケストレーションを介さず、AWS SDKやCloud Control APIを用いて直接リソースを操作する「cdkd」を採用した。既存のCDKコードを維持したまま、デプロイエンジンのみを差し替えるアプローチをとっている。
- ・主要リソースには専用の「SDK Provider」を用いて直接操作を行う。
- ・未対応のリソースにはCloud Control APIを用いて作成を行う。
- ・
--no-waitオプションにより、非同期リソースの安定化待ちもスキップする。 - ・検証では、Amplify Gen2、通常CDK、CDK Express、cdkdの4パターンで比較を行った。
// Result
cdkdの導入により、デプロイプロセスの劇的な高速化を実現した。特にプロビジョニング時間の短縮において顕著な成果が得られている。
- ・Amplify Gen2と比較して、全体時間を約2.5倍(約8分→約3分)に短縮した。
- ・
--no-wait使用時は、全体時間を約3.2倍(約8分→約2.5分)まで高速化させた。 - ・プロビジョニング時間単体では、通常CDK比で約3.7倍の改善を達成した。
Senior Engineer Insight
> 開発効率の観点では極めて強力な武器となる。特にCloudFront等のリソース作成待ちがボトルネックとなる構成において、cdkdは圧倒的な優位性を持つ。ただし、CloudFormationによる状態管理やロールバック機能が欠落するため、本番環境への適用はリスクが高い。開発・テスト環境のCI/CDに限定して導入し、フィードバックループを極限まで短縮する運用が現実的かつ賢明である。