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

AWS CDKを理解するために公式の定義を深掘って解説してみる / Understanding...

AWS CDKを理解するために公式の定義を深掘って解説してみる / Understanding AWS CDK by Digging into Its Official Definition

Avatar for アキキー | Akihisa Ikeda

アキキー | Akihisa Ikeda

November 05, 2026

More Decks by アキキー | Akihisa Ikeda

Other Decks in Programming

Transcript

  1. AWS CDKとは? 導入 AWS公式の定義 AWS Cloud Development Kit (AWS CDK)

    は、 コードでクラウドインフラストラクチャを定義し、 AWS CloudFormation を通じてプロビジョニングするための、 オープンソースのソフトウェア開発フレームワークです。 出典:AWS CDK v2 デベロッパーガイド「AWS CDK とは」 https://docs.aws.amazon.com/ja_jp/cdk/v2/guide/home.html
  2. AWS CDKとは? 導入 AWS公式の定義 AWS Cloud Development Kit (AWS CDK)

    は、 コードでクラウドインフラストラクチャを定義し、 定義の一部を抜き出して深掘りしていきます AWS CloudFormation を通じてプロビジョニングするための、 オープンソースのソフトウェア開発フレームワークです。 出典:AWS CDK v2 デベロッパーガイド「AWS CDK とは」 https://docs.aws.amazon.com/ja_jp/cdk/v2/guide/home.html
  3. AWS CDKとは? IaC AWS公式の定義 AWS Cloud Development Kit (AWS CDK)

    は、 コードでクラウドインフラストラクチャを定義し、 AWS CloudFormation を通じてプロビジョニングするための、 オープンソースのソフトウェア開発フレームワークです。 出典:AWS CDK v2 デベロッパーガイド「AWS CDK とは」 https://docs.aws.amazon.com/ja_jp/cdk/v2/guide/home.html
  4. AWS CDKとは? IaC AWS公式の定義 AWS Cloud Development Kit (AWS CDK)

    は、 コードでクラウドインフラストラクチャを定義し、 これはIaCのことを説明しています! AWS CloudFormation を通じてプロビジョニングするための、 オープンソースのソフトウェア開発フレームワークです。 出典:AWS CDK v2 デベロッパーガイド「AWS CDK とは」 https://docs.aws.amazon.com/ja_jp/cdk/v2/guide/home.html
  5. IaCの仕組み IaC コードでインフラのあるべき姿を定義し、現在の状態との差分をプロビジョニングする コード(あるべき姿) API Gateway Lambda DynamoDB 差分 適用

    IaCのツール DynamoDB AWSアカウント(更新後) プロビジョニング API Gateway Lambda DynamoDB AWSアカウント(更新前) 比較 API Gateway Lambda DynamoDB
  6. AWS CDKとは? デプロイフロー AWS公式の定義 AWS Cloud Development Kit (AWS CDK)

    は、 コードでクラウドインフラストラクチャを定義し、 AWS CloudFormation を通じてプロビジョニングするための、 オープンソースのソフトウェア開発フレームワークです。 出典:AWS CDK v2 デベロッパーガイド「AWS CDK とは」 https://docs.aws.amazon.com/ja_jp/cdk/v2/guide/home.html
  7. AWS CDKとは? デプロイフロー AWS公式の定義 AWS Cloud Development Kit (AWS CDK)

    は、 コードでクラウドインフラストラクチャを定義し、 AWS CloudFormation を通じてプロビジョニングするための、 オープンソースのソフトウェア開発フレームワークです。 出典:AWS CDK v2 デベロッパーガイド「AWS CDK とは」 https://docs.aws.amazon.com/ja_jp/cdk/v2/guide/home.html
  8. AWS CDKとは? デプロイフロー AWS公式の定義 AWS Cloud Development Kit (AWS CDK)

    は、 コードでクラウドインフラストラクチャを定義し、 → CloudFormationについて説明していきます! AWS CloudFormation を通じてプロビジョニングするための、 オープンソースのソフトウェア開発フレームワークです。 出典:AWS CDK v2 デベロッパーガイド「AWS CDK とは」 https://docs.aws.amazon.com/ja_jp/cdk/v2/guide/home.html
  9. CloudFormationのデプロイ デプロイフロー CloudFormationテンプレート でAWSリソースのあるべき姿を定義し、 スタック が持つ現在の状態との差分を 変更セット として抽出し、 それを元にAWSアカウントにプロビジョニングする AWSアカウント

    テンプレート(あるべき姿) API Gateway Lambda DynamoDB 適用 作成 CloudFormation 変更セット(差分) 反映 DynamoDB 現在の状態と比較 API Gateway スタック (状態を保持) Lambda DynamoDB
  10. AWS CDKとは? デプロイフロー AWS公式の定義 AWS Cloud Development Kit (AWS CDK)

    は、 コードでクラウドインフラストラクチャを定義し、 AWS CloudFormation を通じてプロビジョニングするための、 オープンソースのソフトウェア開発フレームワークです。 出典:AWS CDK v2 デベロッパーガイド「AWS CDK とは」 https://docs.aws.amazon.com/ja_jp/cdk/v2/guide/home.html
  11. AWS CDKとは? デプロイフロー AWS公式の定義 AWS Cloud Development Kit (AWS CDK)

    は、 コードでクラウドインフラストラクチャを定義し、 CloudFormationを“通じて” AWS CloudFormation を通じてプロビジョニングするための、 オープンソースのソフトウェア開発フレームワークです。 出典:AWS CDK v2 デベロッパーガイド「AWS CDK とは」 https://docs.aws.amazon.com/ja_jp/cdk/v2/guide/home.html
  12. CDKのデプロイ デプロイフロー cdk deploy はCloudFormationを通じてデプロイします cdk deploy synth ソースコードからアセットを合成する アセット

    合成 ソースコード CloudFormation テンプレート Lambdaの ソースコード S3に配信する 静的ファイル など… Dockerfile LambdaやECSで使う コンテナイメージ publish アセットをAWSにアップロードする deploy AWSリソースをデプロイする bootstrap S3バケット アップロード ファイル用 パブリッシュロール bootstrap bootstrap ECRリポジトリ ビルド&アップロード イメージ用 パブリッシュロール bootstrap ※ bootstrapと書いてあるものはcdk bootstrapによって作られたリソースです CloudFormation デプロイ用ロール bootstrap CloudFormation 実行ロール bootstrap
  13. AWS CDKとは? プログラミング言語とフレームワーク AWS公式の定義 AWS Cloud Development Kit (AWS CDK)

    は、 コードでクラウドインフラストラクチャを定義し、 AWS CloudFormation を通じてプロビジョニングするための、 オープンソースのソフトウェア開発フレームワークです。 出典:AWS CDK v2 デベロッパーガイド「AWS CDK とは」 https://docs.aws.amazon.com/ja_jp/cdk/v2/guide/home.html
  14. AWS CDKとは? プログラミング言語とフレームワーク AWS公式の定義 AWS Cloud Development Kit (AWS CDK)

    は、 コードでクラウドインフラストラクチャを定義し、 AWS CloudFormation を通じてプロビジョニングするための、 オープンソースのソフトウェア開発フレームワークです。 出典:AWS CDK v2 デベロッパーガイド「AWS CDK とは」 https://docs.aws.amazon.com/ja_jp/cdk/v2/guide/home.html
  15. AWS CDKとは? プログラミング言語とフレームワーク AWS公式の定義 AWS Cloud Development Kit (AWS CDK)

    は、 フレームワーク「AWS CDK」としての特徴を説明します! コードでクラウドインフラストラクチャを定義し、 AWS CloudFormation を通じてプロビジョニングするための、 オープンソースのソフトウェア開発フレームワークです。 出典:AWS CDK v2 デベロッパーガイド「AWS CDK とは」 https://docs.aws.amazon.com/ja_jp/cdk/v2/guide/home.html
  16. CDKの特徴① プログラミング言語で書ける TypeScriptなどの使い慣れたプログラミング言語でAWSリソースを定義できます (TypeScript / JavaScript / Python / Java

    / C# / F# / Go) const fn = new NodejsFunction(this, 'Function', { entry: 'lambda/index.ts', handler: 'handler', runtime: Runtime.NODEJS_24_X, memorySize: 512, timeout: Duration.seconds(30), environment: { TABLE_NAME: table.tableName }, }); ただし、IaCもAIで書くためプログラミング言語で書けることが 直接的にはメリットになりづらくなってきました
  17. CDKの特徴① プログラミング言語で書ける TypeScriptなどの使い慣れたプログラミング言語でAWSリソースを定義できます (TypeScript / JavaScript / Python / Java

    / C# / F# / Go) AI時代でもCDKのメリットとなる特徴を紹介します! const fn = new NodejsFunction(this, 'Function', { entry: 'lambda/index.ts', handler: 'handler', runtime: Runtime.NODEJS_24_X, memorySize: 512, timeout: Duration.seconds(30), environment: { TABLE_NAME: table.tableName }, }); ただし、IaCもAIで書くためプログラミング言語で書けることが 直接的にはメリットになりづらくなってきました
  18. CDKの特徴② インフラの設定を抽象化している 適切な抽象化により少ない実装で意図が伝えられるため、人間にもAIにも理解しやすい コード(AWS CDK) myBucket.grants.read(myFunction); このコードで作られるAWSリソース アタッチ 実行ロール IAMポリシー

    読み取り権限 grants.read Lambda関数 myFunction 読み取り S3バケット myBucket 合成 CloudFormationテンプレート 抜粋) # IAMポリシー( Effect: Allow Action: - s3:GetObject* - s3:GetBucket* - s3:List* Resource: - !GetAtt MyBucket.Arn - !Sub "${MyBucket.Arn}/*"
  19. CDKの特徴③ 変更を検証できる仕組みが豊富 AI自身が生成したソースコードを検証する仕組みが整っている 自己フィードバックするハーネス AI 実装 検証を通過 コード 検証 lint・validateなど

    デプロイ 人間 デプロイ前に差分を見る AWS エラー → AIが自分で直す 参考: cdk deploy JawsSonic #MARATHONしながらAWSリソースをデプロイしてみよう https://speakerdeck.com/akihisaikeda/cdk-deploy-jawssonic-marathon-shi-nagara-aws-risosu-o-shi-te-miyou
  20. AWS CDKとは? オープンソース AWS公式の定義 AWS Cloud Development Kit (AWS CDK)

    は、 コードでクラウドインフラストラクチャを定義し、 AWS CloudFormation を通じてプロビジョニングするための、 オープンソースのソフトウェア開発フレームワークです。 出典:AWS CDK v2 デベロッパーガイド「AWS CDK とは」 https://docs.aws.amazon.com/ja_jp/cdk/v2/guide/home.html
  21. AWS CDKとは? オープンソース AWS公式の定義 AWS Cloud Development Kit (AWS CDK)

    は、 コードでクラウドインフラストラクチャを定義し、 AWS CloudFormation を通じてプロビジョニングするための、 オープンソースのソフトウェア開発フレームワークです。 出典:AWS CDK v2 デベロッパーガイド「AWS CDK とは」 https://docs.aws.amazon.com/ja_jp/cdk/v2/guide/home.html
  22. AWS CDKとOSS(Open Source Software) オープンソース OSSとは? オープンソース (open source) とは、ソフトウェアのソースコード

    を一般公開し、自由な使用、改良、配布を許可する開発モデルで す。(Red Hatより)
  23. AWS CDKとOSS(Open Source Software) オープンソース OSSとは? オープンソース (open source) とは、ソフトウェアのソースコード

    を一般公開し、自由な使用、改良、配布を許可する開発モデルで す。(Red Hatより) AWSも数多くのOSSを展開しており、AWS CDKもそのうち の1つ
  24. AWS CDKとOSS(Open Source Software) オープンソース OSSとは? オープンソース (open source) とは、ソフトウェアのソースコード

    を一般公開し、自由な使用、改良、配布を許可する開発モデルで す。(Red Hatより) AWSも数多くのOSSを展開しており、AWS CDKもそのうち の1つ AWSのメンバー以外にも誰だって貢献が可能 コミュニティからの貢献がAWS CDKの開発に大きな影響を与えてい るとのこと(CONTRIBUTING.mdより) CDKへのコントリビュートを効率化してくれるAWS公式スキルもあ る(cdk-contribution-skill)
  25. AWS CDKとOSS(Open Source Software) オープンソース OSSとは? オープンソース (open source) とは、ソフトウェアのソースコード

    を一般公開し、自由な使用、改良、配布を許可する開発モデルで す。(Red Hatより) featch(aopirega(kmtesw):aysuv2pp):oadd rt ML-DSA keys fo disakeblyeS Spch ecem # 3 aV 5 al 9 id at 9 ion for Websocketr 1 api #3 Mer52 ged90 aki-kii mer ge Merged aki-kii merged ond on Nov 10, 2025 Sep 15, 2025 AWSも数多くのOSSを展開しており、AWS CDKもそのうち の1つ AWSのメンバー以外にも誰だって貢献が可能 コミュニティからの貢献がAWS CDKの開発に大きな影響を与えてい るとのこと(CONTRIBUTING.mdより) CDKへのコントリビュートを効率化してくれるAWS公式スキルもあ る(cdk-contribution-skill) 僕も何個かPullRequestを出してマージされています! aws/aws-cdk#35328
  26. AWS CDKとOSS(Open Source Software) オープンソース OSSとは? オープンソース (open source) とは、ソフトウェアのソースコード

    を一般公開し、自由な使用、改良、配布を許可する開発モデルで す。(Red Hatより) featch(aopirega(kmtesw):aysuv2pp):oadd rt ML-DSA keys fo disakeblyeS Spch ecem # 3 aV 5 al 9 id at 9 ion for Websocketr 1 api #3 Mer52 ged90 aki-kii mer ge Merged aki-kii merged ond on Nov 10, 2025 Sep 15, 2025 AWSも数多くのOSSを展開しており、AWS CDKもそのうち の1つ AWS CDKに関連するOSSもたくさんあります! AWSのメンバー以外にも誰だって貢献が可能 コミュニティからの貢献がAWS CDKの開発に大きな影響を与えてい るとのこと(CONTRIBUTING.mdより) CDKへのコントリビュートを効率化してくれるAWS公式スキルもあ る(cdk-contribution-skill) 僕も何個かPullRequestを出してマージされています! aws/aws-cdk#35328
  27. AWS CDKに関連するOSS オープンソース CDKアプリの設計を助けるOSS aws-cdk-examples AWS公式 aws-samples CDKのサンプルプロジェクト集 AWS公式 BLEA

    aws-samples 安全なベースライン環境を作るCDKテンプレート 堅牢なCDKアプリを助けるOSS cdk-nag AWS公式 CDKアプリのセキュリティを守るルールセット cdklabs awscdk-lint ren-yamanashi cdk-preflight badmintoncryer cdk-real-drift go-to-k CDKのセオリーを守るLinterプラグイン デプロイ前に設定ミスを検証するルールセット 検知漏れを防げるドリフト管理ツール CDKアプリの開発・運用を助けるOSS cdkd go-to-k CloudFormationを通さないCDK高速デプロイツール cdk-local go-to-k delstack go-to-k CDKアプリをローカルでテストするツール CloudFormationスタック強制削除ツール AIでのCDKアプリ開発を助けるOSS agent-toolkit-for-aws AWS公式 AIエージェント向けAWS公式スキル/MCPサーバー cdk-skills CDK開発向けのスキル集 aws go-to-k
  28. AWS CDKとは? まとめ AWS公式の定義 AWS Cloud Development Kit (AWS CDK)

    は、 コードでクラウドインフラストラクチャを定義し、 AWS CloudFormation を通じてプロビジョニングするための、 オープンソースのソフトウェア開発フレームワークです。 出典:AWS CDK v2 デベロッパーガイド「AWS CDK とは」 https://docs.aws.amazon.com/ja_jp/cdk/v2/guide/home.html