Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AWS CDKの推しポイントN選

Avatar for アキキー アキキー
November 25, 2025

AWS CDKの推しポイントN選

Avatar for アキキー

アキキー

November 25, 2025
Tweet

More Decks by アキキー

Other Decks in Programming

Transcript

  1. 自己紹介 アキキー | 池田 晃尚 (@akikii__) Backend / SRE エンジニア

    AWS CDK が推し CDK コントリビューター AWS CDK の推しポイント N 選 UV Study : AWS LT会 〜現場で活きる、ちょっとした工夫と発見〜 2
  2. AWS CDK とは? AWS CDK の推しポイント N 選 - AWS

    CDKとは? UV Study : AWS LT会 〜現場で活きる、ちょっとした工夫と発見〜 3
  3. AWS リソースをデプロイするときの主な選択肢 CLI Management Console SDK リソースの設定をコードで定義してデプロイ操作 AWS コンソールから画⾯操作でデプロイ CLI

    からコマンド実⾏でデプロイ アプリケーションからSDK を呼び出してデプロイ IaC AWS CDK の推しポイント N 選 - AWS CDKとは? UV Study : AWS LT会 〜現場で活きる、ちょっとした工夫と発見〜 4
  4. AWS CDK とは? AWS のインフラリソースをプログラミング言語で定義して管理する IaC ツール CDK の対応言語:TypeScript, Python,

    Go, JavaScript, Java, C#, F# AWS CDK の推しポイント N 選 - AWS CDKとは? UV Study : AWS LT会 〜現場で活きる、ちょっとした工夫と発見〜 6
  5. AWS CDK とは? 内部では CloudFormation(CFn)を利用している CDK のコードは CFn テンプレート(JSON/YAML)へ合成される 状態は

    CFn のスタックを利用している AWS CDK の推しポイント N 選 - AWS CDKとは? UV Study : AWS LT会 〜現場で活きる、ちょっとした工夫と発見〜 7
  6. 推しポイントの紹介 IaC 編 IDE(統合開発環境)編 AWS CDK のコアコンセプト編 AWS CDK の推しポイント

    N 選 - 推しポイントの紹介 UV Study : AWS LT会 〜現場で活きる、ちょっとした工夫と発見〜 8
  7. IaC 編 AWS CDK の推しポイント N 選 - IaC編 UV

    Study : AWS LT会 〜現場で活きる、ちょっとした工夫と発見〜 9
  8. IDE(開発統合環境)編 AWS CDK の推しポイント N 選 - IDE編 UV Study

    : AWS LT会 〜現場で活きる、ちょっとした工夫と発見〜 13
  9. AWS CDK のコアコンセプト編 AWS CDK の推しポイント N 選 - CDKコアコンセプト編

    UV Study : AWS LT会 〜現場で活きる、ちょっとした工夫と発見〜 17
  10. 推しポイント ⑦: Construct 1 つ以上の AWS リソースの設定が定義されているコンポーネント リソースの抽象度によってレベル分けがされている CloudFormation Stack

    L2 Construct L3 Construct ApplicationLoadBalancedFargateService Bucket Bucket CfnBucket L1 Construct 抽象度 ⼩ ⼤ ・・・ AWS CDK の推しポイント N 選 - CDKコアコンセプト編 UV Study : AWS LT会 〜現場で活きる、ちょっとした工夫と発見〜 18
  11. 推しポイント ⑦: Construct L1 Construct(抽象度:小) リソースのプロパティが CloudFormation のプロパティと 1:1 で対応している

    CloudFormation Template S3 Bucket CDK L1 Construct aws_s3.CfnBucket 1:1 で対応 AWS CDK の推しポイント N 選 - CDKコアコンセプト編 UV Study : AWS LT会 〜現場で活きる、ちょっとした工夫と発見〜 19
  12. 推しポイント ⑦: Construct L2 Construct(抽象度:中) リソースのプロパティが扱いやすいように抽象化されている CDK L2 Construct aws_s3.Bucket

    CloudFormation Template 対応 抽象化 S3 Bucket KMS Key ⾃動的に作成 ( 指定しない場合) AWS CDK の推しポイント N 選 - CDKコアコンセプト編 UV Study : AWS LT会 〜現場で活きる、ちょっとした工夫と発見〜 20
  13. 推しポイント ⑦: Construct L2 Construct: 直感的にわかりやすいプロパティに抽象化されている 例:VPC の L2 Construct

    VPC (10.0.0.016) Subnets IGW NAT GW Public Subnet (AZ-c) Private Subnet (AZ-a) Private Subnet (AZ-c) Public Subnet (AZ-a) ・・・ RTB CDK ソースコード(15 ⾏) CFn テンプレート (266 ⾏) AWS Cloud AWS CDK の推しポイント N 選 - CDKコアコンセプト編 UV Study : AWS LT会 〜現場で活きる、ちょっとした工夫と発見〜 21
  14. 推しポイント ⑦: Construct L2 Construct: 関連するリソースを解釈して作成してくれる 例:Lambda 関数の L2 Construct

    デフォルトでは⾃動的に作成される CDK L2 Construct aws_lambda.Function IAM Policy Lambda 関数 CloudWatch Logs Lambda 実⾏ロール CreateLogGroup CreateLogStream PutLogEvents ✅ AWS Cloud AWS CDK の推しポイント N 選 - CDKコアコンセプト編 UV Study : AWS LT会 〜現場で活きる、ちょっとした工夫と発見〜 22
  15. 推しポイント ⑦: Construct 自作 Construct L1 や L2 などの Construct

    を組み合わせて自作の Construct を定義できる 自作 Construct も他の自作 Construct に組み込める AWS CDK の推しポイント N 選 - CDKコアコンセプト編 UV Study : AWS LT会 〜現場で活きる、ちょっとした工夫と発見〜 23
  16. 推しポイント ⑧: Permissions Grants で直感的に許可設定が付与できる 例:Lambda 関数 → S3 バケット

    へ読み取りを許可したい IAM Policy ✅ Lambda 実⾏ロール Lambda 関数 S3 バケット GetObject* GetBucket* List* AWSLambdaBasic ExecutionRole ✅ AWS CDK の推しポイント N 選 - CDKコアコンセプト編 UV Study : AWS LT会 〜現場で活きる、ちょっとした工夫と発見〜 24
  17. 推しポイント ⑩: Aspects Construct Tree について App をルートとするツリー構造 App...1つ以上のスタックを含む コレクション

    Stack...デプロイの最小単位 Construct...L1, L2, 自作 Construct 等 AWS CDK の推しポイント N 選 - CDKコアコンセプト編 UV Study : AWS LT会 〜現場で活きる、ちょっとした工夫と発見〜 26
  18. 推しポイント ⑩: Aspects Aspects とは? Construct Tree の特定のスコー プ配下全てに操作を適用する機 能

    バリデーション プロパティ更新...など 対象リソースを絞れる AWS CDK の推しポイント N 選 - CDKコアコンセプト編 UV Study : AWS LT会 〜現場で活きる、ちょっとした工夫と発見〜 27
  19. 推しポイント ⑪: 単体テスト デプロイ対象のリソースが正しい値になるか検証できる スナップショットテスト Template (旧) Template (新) ⽣成

    ⽣成 CDK ⽐較 Test Fine-grained assertion テスト バリデーションテスト VPC Public Subnet Private Subnet Private Subnet Public Subnet 検証 Subnet の数は4 個? VPC flow log は有効? Test Stack Fargate メモリは2GB 以上 かつ16GB 以下? Test 変更差分が想定したものか検証 想定したパラメータに設定されているか検証 バリデーションの境界値検証 参考:AWS CDK における単体テストの使い所を学ぶ AWS CDK の推しポイント N 選 - CDKコアコンセプト編 UV Study : AWS LT会 〜現場で活きる、ちょっとした工夫と発見〜 29
  20. 推しポイントおさらい IaC 編 ① Git 管理できる ② リソースの設定を集約できる ③ デプロイの安全性が向上する

    IDE 編 ④ コード補完が効く ⑤ ドキュメントをすぐ読める ⑥ 構文エラーがわかる コアコンセプト編 ⑦ Construct ⑧ Permissions ⑨ Validation ⑩ Aspects ⑪ 単体テスト AWS CDK の推しポイント N 選 - 推しポイントおさらい UV Study : AWS LT会 〜現場で活きる、ちょっとした工夫と発見〜 30