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

AWS CDKの推しポイント 〜CloudFormationと比較してみた〜

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

AWS CDKの推しポイント 〜CloudFormationと比較してみた〜

Avatar for アキキー

アキキー

June 19, 2025
Tweet

More Decks by アキキー

Other Decks in Programming

Transcript

  1. JAWS-UG 東京 ランチタイム LT 会 #24 AWS CDK の推しポイント 〜CloudFormation

    と比較してみた〜 2025.06.20(金) 池田 晃尚(@akikii__) 1
  2. 自己紹介 アキキー(池田 晃尚) ALH 株式会社(SES) AWS エンジニア AWS CDK との関わり

    CDK Contribute 2 回 CDK Conference Japan 2025 当日スタッフ AWS CDK の推しポイント 〜CloudFormation と比較してみた〜 JAWS-UG 東京 ランチタイム LT 会 #24 2
  3. AWS リソースを作成するときの主な選択肢 CLI Management Console SDK 専⽤の設定ファイルに定義 → コマンド実⾏で作成 GUI

    画⾯上で設定 → ボタンクリックで作成 コマンドで定義 → コマンド実⾏で作成 プログラムコードに定義 → プログラム実⾏で作成 IaC AWS CDK の推しポイント 〜CloudFormation と比較してみた〜 JAWS-UG 東京 ランチタイム LT 会 #24 4
  4. AWS における IaC の選択肢 AWS Service CloudFormation CDK SAM 今回はここについて話します!

    AWS CDK の推しポイント 〜CloudFormation と比較してみた〜 JAWS-UG 東京 ランチタイム LT 会 #24 5
  5. AWS CloudFormation とは? AWS のインフラ環境の構成を JSON/YAML で管理できるサービス AWS Account CloudFormation

    S3 作成 Stack ( 状態管理) CloudFormation S3 の定義 Template (JSON/YAML) デプロイコマンド実⾏ AWS CDK の推しポイント 〜CloudFormation と比較してみた〜 JAWS-UG 東京 ランチタイム LT 会 #24 6
  6. AWS CDK とは? CloudFormation をプログラミング言語で扱えるように抽象化したサービス AWS Account CloudFormation S3 作成

    Stack ( 状態管理) CDK ソースコード ( プログラミング⾔語) 抽象化 CFn Template S3 の定義 デプロイコマンド実⾏ 利用できる言語:TypeScript, JavaScript, Python, Go, Java, C#, F# AWS CDK の推しポイント 〜CloudFormation と比較してみた〜 JAWS-UG 東京 ランチタイム LT 会 #24 7
  7. Construct とは? リソース群を定義する単位 CloudFormation Stack L2 Construct L3 Construct ApplicationLoadBalancedFargateService

    Bucket Bucket CfnBucket L1 Construct 抽象度 ⼩ ⼤ ・・・ AWS CDK の推しポイント 〜CloudFormation と比較してみた〜 JAWS-UG 東京 ランチタイム LT 会 #24 14
  8. L1 Construct(抽象度:小) リソースのプロパティが CloudFormation のプロパティと 1:1 で対応している CloudFormation Template S3

    Bucket CDK L1 Construct aws_s3.CfnBucket 1:1 で対応 AWS CDK の推しポイント 〜CloudFormation と比較してみた〜 JAWS-UG 東京 ランチタイム LT 会 #24 15
  9. L2 Construct(抽象度:中) リソースのプロパティが扱いやすいように抽象化されている CloudFormation Template CDK L2 Construct aws_s3.Bucket S3

    Bucket 抽象化 KMS Key ⾃動的に作成 AWS CDK の推しポイント 〜CloudFormation と比較してみた〜 JAWS-UG 東京 ランチタイム LT 会 #24 16
  10. 直感的にわかりやすいプロパティに抽象化されている 例: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 の推しポイント 〜CloudFormation と比較してみた〜 JAWS-UG 東京 ランチタイム LT 会 #24 17
  11. 関連するリソースを解釈して作成してくれる 例:Lambda 関数の L2 Construct デフォルトでは⾃動的に作成される CDK L2 Construct aws_lambda.Function

    IAM Policy Lambda 関数 CloudWatch Logs Lambda 実⾏ロール CreateLogGroup CreateLogStream PutLogEvents ✅ AWS Cloud AWS CDK の推しポイント 〜CloudFormation と比較してみた〜 JAWS-UG 東京 ランチタイム LT 会 #24 18
  12. Grant/Connections メソッドで直感的に許可設定が付与できる 例:Lambda → DynamoDB へ読み取りを許可したい CDK CloudFormation AWS Resource

    IAM Policy CreateLogGroup CreateLogStream PutLogEvents ✅ Lambda 実⾏ロール GetItem DescribeTable ... ✅ DynamoDB Lambda CloudWatch Logs AWS CDK の推しポイント 〜CloudFormation と比較してみた〜 JAWS-UG 東京 ランチタイム LT 会 #24 19
  13. Stack とは? リソースの状態を管理している単位 CloudFormation AWS Cloud 作成・管理 Network Stack App

    Stack 作成・管理 デプロイ Network Template App Template デプロイ AWS CDK の推しポイント 〜CloudFormation と比較してみた〜 JAWS-UG 東京 ランチタイム LT 会 #24 21
  14. CloudFormation における Stack 可読性のために Stack を分割することが多い Template の中⾝ VPC Template

    追加したら どこを⾒ればいいのか わからなくなっちゃう... 別途Template を作成 別途Template を作成 ALB Template vpc.yml alb.yml ecs.yml ECS Template AWS CDK の推しポイント 〜CloudFormation と比較してみた〜 JAWS-UG 東京 ランチタイム LT 会 #24 22
  15. Stack が増えるとどうなるか 依存関係が増えデプロイが複雑になる デプロイ時間が長くなる デプロイの依存関係 CloudFormation rds.yml apigw.yml alb.yml lambda.yml

    ecs.yml dynamodb.yml vpc.yml デプロイのタイムライン AWS CDK の推しポイント 〜CloudFormation と比較してみた〜 JAWS-UG 東京 ランチタイム LT 会 #24 23
  16. 自作 Construct で Stack を論理的に分割 意味のある単位に分けられるので可読性も高い! デプロイの依存関係が明確かつデプロイ時間も短縮できる! CDK Source Network

    Construct ECSApp Construct LambdaApp Construct Datastore Construct main.stack (Template) デプロイの依存関係 デプロイのタイムライン main.stack AWS CDK の推しポイント 〜CloudFormation と比較してみた〜 JAWS-UG 東京 ランチタイム LT 会 #24 24
  17. CDK Conference Japan 2025 (7 / 12 土) AWS CDK

    の推しポイント 〜CloudFormation と比較してみた〜 JAWS-UG 東京 ランチタイム LT 会 #24 28
  18. CDK Conference Japan 2025 (7 / 12 土) 14:25~14:45 メイントラック

    AWS CDK の推しポイント 〜CloudFormation と比較してみた〜 JAWS-UG 東京 ランチタイム LT 会 #24 29