Skip to main content

AWS CDKを使って感じた良いところ 2

こんにちは、岡本です!

普段から個人でも業務でもCDKを利用して日々助かっているのですが、改めてメリットを記事にしてまとめてみました。まだCDKを採用していなかったり、検討されている方の参考になれば幸いです。

 

目次

  1. 言語を統一できるメリット
  2. 構成管理が簡単になる
  3. アプリのデプロイもシンプル
  4. 実際に助かった場面
  5. まとめ

 

1.言語を統一できるメリット 

AWS CDKを使う最大の利点のひとつは、インフラとアプリを同じプログラミング言語で扱えることです。

TerraformCloudFormationだと独自の記法を覚える必要がありますが、CDKなら普段使っているTypeScriptPythonのまま書けます。

その結果として、IDEの補完機能、リファクタリング、Lint、テストなど、開発で使っているツール群をそのまま活用できます。

さらに抽象化が進んでいるので、AIによるコード補完やレビューとの相性も良く、修正や改修にかかる工数を大幅に減らせます。
 

2.構成管理が簡単になる 

CDKを使うと、インフラの構成がすべてコード化されます。これにより「今どういう構成になっているか」をコードから把握できるので、ドキュメントや口頭での伝達に頼らずに済みます。(私のようなアプリ開発畑出身の人からするとかなり安心ポイントなのでは。)

また、構成変更やデプロイはワンコマンドで実行可能です。もし誤った変更を加えてしまっても、コードのバージョンを戻せばすぐに復旧できます。デプロイし放題です!

実際に使っていても、想定漏れや仕様変更があった場合にスムーズに対応できた経験が多く、チーム開発でも安心感があります。

 

3.アプリのデプロイもシンプル

CDKはインフラだけでなく、アプリケーションのビルドやデプロイまで一貫して管理できます。

例えばLambda関数のコードやECSのタスク定義も同じプロジェクトで扱えるので、「インフラ担当とアプリ担当で分断されている」という状況をなくせます。

インフラとアプリが一体化することで、開発から運用までの流れが非常にシンプルになります。

 

4.実際に助かった場面 

既存のLambdaS3からオブジェクトを取得する処理を追加する必要があった場合に当然、IAMロールに s3:GetObject の権限を加える必要があります。

こういう変更は「他のリソースに影響が出ないか」を慎重に確認したいところですが、CDKでは cdk diff を実行すればすぐに差分が確認できます。

実際の出力イメージはAWS公式ドキュメントの スタックの比較 に掲載されていますが、リソースの追加・削除やIAMポリシーの変更が色付きで一覧表示されるため、検証や比較がとてもやりやすいと実感しました。

スタック

 

引用:https://docs.aws.amazon.com/ja_jp/cdk/v2/guide/cli.html

 

5.まとめ

AWS CDKは「言語の統一」と「インフラ管理のコード化」という2つの大きなメリットを持っています。
これによってAIIDEの機能を最大限活用でき、構成変更やアプリのデプロイもスムーズに行えるようになります。

さらに、cdk diff による差分確認ができるおかげで、仕様変更や小さな修正があっても安全かつスピーディーに対応可能です。やはり開発スピードと安心感の両方を得られるのがCDKの魅力だと感じました!