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
3
390
AWS CDKの推しポイント 〜CloudFormationと比較してみた〜
アキキー
June 19, 2025
Tweet
Share
More Decks by アキキー
See All by アキキー
地獄絵図!CDKプロジェクトを手動更新して生まれた大量のプロパティ差分を解消する方法
akihisaikeda
4
660
AWS CDK初期設定のプラクティス集 with Projen
akihisaikeda
2
280
AI生成記事をリライトし満足度を上げようとしたら大変だった話
akihisaikeda
0
38
スモールスタートで始めるためのLambda×モノリス(Lambdalith)
akihisaikeda
2
670
Amazon Q Developer CLIと一緒に最小権限の原則を守ったIAMポリシーを作ろう!
akihisaikeda
1
550
Amazon Bedrockマルチエージェントコラボレーションを諦めてLangGraphに入門してみた
akihisaikeda
1
450
JAWS_DAYS_2025_アーキテクチャ道場発表資料_ブラックサンダーズ
akihisaikeda
0
750
Amazon Bedrock Agentsで始める サーバーレスAIエージェント
akihisaikeda
0
150
Other Decks in Programming
See All in Programming
Nuances on Kubernetes - RubyConf Taiwan 2025
envek
0
170
Honoアップデート 2025年夏
yusukebe
1
550
実践!App Intents対応
yuukiw00w
1
280
Introduction to Git & GitHub
latte72
0
110
管你要 trace 什麼、bpftrace 用下去就對了 — COSCUP 2025
shunghsiyu
0
420
DataformでPythonする / dataform-de-python
snhryt
0
180
Flutterと Vibe Coding で個人開発!
hyshu
1
250
React 使いじゃなくても知っておきたい教養としての React
oukayuka
18
5.7k
AIに安心して任せるためにTypeScriptで一意な型を作ろう
arfes0e2b3c
0
370
TROCCO×dbtで実現する人にもAIにもやさしいデータ基盤
nealle
0
250
Constant integer division faster than compiler-generated code
herumi
2
670
オホーツクでコミュニティを立ち上げた理由―地方出身プログラマの挑戦 / TechRAMEN 2025 Conference
lemonade_37
2
480
Featured
See All Featured
Facilitating Awesome Meetings
lara
55
6.5k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
6k
Documentation Writing (for coders)
carmenintech
73
5k
Music & Morning Musume
bryan
46
6.7k
Writing Fast Ruby
sferik
628
62k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
KATA
mclloyd
32
14k
Automating Front-end Workflow
addyosmani
1370
200k
BBQ
matthewcrist
89
9.8k
Reflections from 52 weeks, 52 projects
jeffersonlam
351
21k
Scaling GitHub
holman
462
140k
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