Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AWS CDKの推しポイント 〜CloudFormationと比較してみた〜
Search
アキキー
June 19, 2025
Programming
2
140
AWS CDKの推しポイント 〜CloudFormationと比較してみた〜
アキキー
June 19, 2025
Tweet
Share
More Decks by アキキー
See All by アキキー
AI生成記事をリライトし満足度を上げようとしたら大変だった話
akihisaikeda
0
27
スモールスタートで始めるためのLambda×モノリス(Lambdalith)
akihisaikeda
2
560
Amazon Q Developer CLIと一緒に最小権限の原則を守ったIAMポリシーを作ろう!
akihisaikeda
1
460
Amazon Bedrockマルチエージェントコラボレーションを諦めてLangGraphに入門してみた
akihisaikeda
1
370
JAWS_DAYS_2025_アーキテクチャ道場発表資料_ブラックサンダーズ
akihisaikeda
0
650
Amazon Bedrock Agentsで始める サーバーレスAIエージェント
akihisaikeda
0
140
Other Decks in Programming
See All in Programming
Blueskyのプラグインを作ってみた
hakkadaikon
1
500
人には人それぞれのサービス層がある
shimabox
3
660
Prism.parseで 300本以上あるエンドポイントに 接続できる権限の一覧表を作ってみた
hatsu38
1
110
[初登壇@jAZUG]アプリ開発者が気になるGoogleCloud/Azure+wasm/wasi
asaringo
0
120
技術懸念に立ち向かい 法改正を穏便に乗り切った話
pop_cashew
0
1.3k
機械学習って何? 5分で解説頑張ってみる
kuroneko2828
0
200
ASP.NETアプリケーションのモダナイズ インフラ編
tomokusaba
1
200
統一感のある Go コードを生成 AI の力で手にいれる
otakakot
0
2.9k
ワンバイナリWebサービスのススメ
mackee
10
7.7k
Go1.25からのGOMAXPROCS
kuro_kurorrr
0
120
ドメインモデリングにおける抽象の役割、tagless-finalによるDSL構築、そして型安全な最適化
knih
10
1.7k
GoのGenericsによるslice操作との付き合い方
syumai
2
430
Featured
See All Featured
Code Review Best Practice
trishagee
68
18k
Optimizing for Happiness
mojombo
379
70k
How STYLIGHT went responsive
nonsquared
100
5.6k
The Invisible Side of Design
smashingmag
299
50k
Automating Front-end Workflow
addyosmani
1370
200k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
29
9.5k
A Modern Web Designer's Workflow
chriscoyier
693
190k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
137
34k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
123
52k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
8
650
Optimising Largest Contentful Paint
csswizardry
37
3.3k
Build The Right Thing And Hit Your Dates
maggiecrowley
36
2.7k
Transcript
JAWS-UG 東京 ランチタイム LT 会 #24 AWS CDK の推しポイント 〜CloudFormation
と比較してみた〜 2025.06.20(金) 池田 晃尚(@akikii__) 1
自己紹介 アキキー(池田 晃尚) ALH 株式会社(SES) AWS エンジニア AWS CDK との関わり
CDK Contribute 2 回 CDK Conference Japan 2025 当日スタッフ AWS CDK の推しポイント 〜CloudFormation と比較してみた〜 JAWS-UG 東京 ランチタイム LT 会 #24 2
AWS CDK の立ち位置 AWS CDK の推しポイント 〜CloudFormation と比較してみた〜 JAWS-UG 東京
ランチタイム LT 会 #24 3
AWS リソースを作成するときの主な選択肢 CLI Management Console SDK 専⽤の設定ファイルに定義 → コマンド実⾏で作成 GUI
画⾯上で設定 → ボタンクリックで作成 コマンドで定義 → コマンド実⾏で作成 プログラムコードに定義 → プログラム実⾏で作成 IaC AWS CDK の推しポイント 〜CloudFormation と比較してみた〜 JAWS-UG 東京 ランチタイム LT 会 #24 4
AWS における IaC の選択肢 AWS Service CloudFormation CDK SAM 今回はここについて話します!
AWS CDK の推しポイント 〜CloudFormation と比較してみた〜 JAWS-UG 東京 ランチタイム LT 会 #24 5
AWS CloudFormation とは? AWS のインフラ環境の構成を JSON/YAML で管理できるサービス AWS Account CloudFormation
S3 作成 Stack ( 状態管理) CloudFormation S3 の定義 Template (JSON/YAML) デプロイコマンド実⾏ AWS CDK の推しポイント 〜CloudFormation と比較してみた〜 JAWS-UG 東京 ランチタイム LT 会 #24 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
推しポイント ① プログラミングサポートによるプロパティの検査 AWS CDK の推しポイント 〜CloudFormation と比較してみた〜 JAWS-UG 東京
ランチタイム LT 会 #24 8
CloudFormation でのつらみ プロパティを間違えてもデプロイする時まで気づけない Typo してる AWS CDK の推しポイント 〜CloudFormation と比較してみた〜
JAWS-UG 東京 ランチタイム LT 会 #24 9
IDE の構文エラー検出が利用できる typo してもエラーが出るのでその場で気づくことができる! ※ :AWS CDK だからこそできるポイント AWS CDK
の推しポイント 〜CloudFormation と比較してみた〜 JAWS-UG 東京 ランチタイム LT 会 #24 10
IDE の入力補完が利用できる 入力補完により入力間違いが少なくなる! AWS CDK の推しポイント 〜CloudFormation と比較してみた〜 JAWS-UG 東京
ランチタイム LT 会 #24 11
型検査を利用できる 間違った型のプロパティを入れられない! AWS CDK の推しポイント 〜CloudFormation と比較してみた〜 JAWS-UG 東京 ランチタイム
LT 会 #24 12
推しポイント ② 高レベルに抽象化された「L2 Construct」 AWS CDK の推しポイント 〜CloudFormation と比較してみた〜 JAWS-UG
東京 ランチタイム LT 会 #24 13
Construct とは? リソース群を定義する単位 CloudFormation Stack L2 Construct L3 Construct ApplicationLoadBalancedFargateService
Bucket Bucket CfnBucket L1 Construct 抽象度 ⼩ ⼤ ・・・ AWS CDK の推しポイント 〜CloudFormation と比較してみた〜 JAWS-UG 東京 ランチタイム LT 会 #24 14
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
L2 Construct(抽象度:中) リソースのプロパティが扱いやすいように抽象化されている CloudFormation Template CDK L2 Construct aws_s3.Bucket S3
Bucket 抽象化 KMS Key ⾃動的に作成 AWS CDK の推しポイント 〜CloudFormation と比較してみた〜 JAWS-UG 東京 ランチタイム LT 会 #24 16
直感的にわかりやすいプロパティに抽象化されている 例: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
関連するリソースを解釈して作成してくれる 例: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
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
推しポイント ③ リソースの状態管理をしている「Stack」を綺麗に保てる AWS CDK の推しポイント 〜CloudFormation と比較してみた〜 JAWS-UG 東京
ランチタイム LT 会 #24 20
Stack とは? リソースの状態を管理している単位 CloudFormation AWS Cloud 作成・管理 Network Stack App
Stack 作成・管理 デプロイ Network Template App Template デプロイ AWS CDK の推しポイント 〜CloudFormation と比較してみた〜 JAWS-UG 東京 ランチタイム LT 会 #24 21
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
Stack が増えるとどうなるか 依存関係が増えデプロイが複雑になる デプロイ時間が長くなる デプロイの依存関係 CloudFormation rds.yml apigw.yml alb.yml lambda.yml
ecs.yml dynamodb.yml vpc.yml デプロイのタイムライン AWS CDK の推しポイント 〜CloudFormation と比較してみた〜 JAWS-UG 東京 ランチタイム LT 会 #24 23
自作 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
まとめ AWS CDK の推しポイント 〜CloudFormation と比較してみた〜 JAWS-UG 東京 ランチタイム LT
会 #24 25
推しポイントおさらい プログラミングサポートによるプロパティの検査 構文エラー検出、入力補完、型検査が利用できる 高レベルに抽象化された「L2 Construct」 高レベルの抽象化、関連するリソースの作成、許可設定が簡単 リソースの状態管理をしている「Stack」を綺麗に保てる 自作 Construct で
Stack を論理的に分割 AWS CDK の推しポイント 〜CloudFormation と比較してみた〜 JAWS-UG 東京 ランチタイム LT 会 #24 26
宣伝 AWS CDK の推しポイント 〜CloudFormation と比較してみた〜 JAWS-UG 東京 ランチタイム LT
会 #24 27
CDK Conference Japan 2025 (7 / 12 土) AWS CDK
の推しポイント 〜CloudFormation と比較してみた〜 JAWS-UG 東京 ランチタイム LT 会 #24 28
CDK Conference Japan 2025 (7 / 12 土) 14:25~14:45 メイントラック
AWS CDK の推しポイント 〜CloudFormation と比較してみた〜 JAWS-UG 東京 ランチタイム LT 会 #24 29
ありがとうございました! AWS CDK の推しポイント 〜CloudFormation と比較してみた〜 JAWS-UG 東京 ランチタイム LT
会 #24 30