😎

AWS CDK v2 事始め(3):基本構成を理解したい

2023/01/10に公開

CDKの基本構成を理解したい

"AWS CDK v2 事始め(1)"と"AWS CDK v2 事始め(2)"を進めながら理解したことをまとめます。ここに記載したことは個人的な理解なので間違えている可能性あります、注意ください。

== 2023-09-09 追記 CDK勉強まとめ ==

==================================

参考

参考にさせて頂いた資料のリンクです。

CDKの基本構成

CDKを理解する上で理解しておかないといけない基本構成があるらしい。これがわからないとCDKは、はじまらないっぽい。

  • アプリ層(App construct)

    • binディレクトリ配下にある
    • スタックの依存関係の定義とかできる
  • スタック層(Stack construct)

    • libディレクトリ配下にある
    • CloudFormationのスタックと1:1で対応してる
    • AWSデプロイはこのスタック単位で行う
  • コンストラクト層(Construct)

    • AWSリソースを作る具体的な内容を記載するところ
    • Construct Libraryというライブラリを使ってAWSリソースを作成する
    • コンストラクトにはL1, L2, L3の3種類ある
    • L1 (Low Level Construct)
      • CloudFormationのリソースと1対1で対応
      • 必須パラメータの設定が必要
    • L2
      • デフォルト阿智や追加の関数を実装してL1 Constructを抽象化
        • 一部の必須パラメータをデフォルト値で設定してくれる
        • パラメータをふわっと設定するだけでOK
    • L3
      • L1,L2 Constructをさらに抽象化して利用する
        • 多くの必須パラメータをデフォルト値で設定してくれる
        • パラメータを超ふわっと設定するだけでOK
    • アプリ層, スタック層, コンストラクト層の3つの層があり、コンストラクト層にはL1, L2, L3の3種類あるらしい。
    • コンストラクト層は、typescriptのconstructorとほぼ同義っぽい。

基本構成を前回のソースで確認してみる

前回の"AWS CDK v2 事始め(2)"ので基本構成を確認してみるとアプリ層、スタック層、コンストラクト層はこのようになるっぽい。


短いですが今回は以上です。とりあえずCDKの3層(アプリ/スタック/コンストラクト層)についてはなんとなくわかった気になりました。今後は各層について詳細を理解していこうと思います。

余談

ちまたのCDK関連の記事で紹介されたスクリプトが、アプリ層(bin配下)なのかスタック層(lib配下)なのか明記されてないことがあり『どっちかわからん!』となっていたのですが、最近はなんとなくわかるようになってきました。

Discussion