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
4
650
AWS CDKの推しポイント 〜CloudFormationと比較してみた〜
アキキー
June 19, 2025
Tweet
Share
More Decks by アキキー
See All by アキキー
責任感のあるCloudWatchアラームを設計しよう
akihisaikeda
3
200
AWS CDKの推しポイントN選
akihisaikeda
1
290
地獄絵図!CDKプロジェクトを手動更新して生まれた大量のプロパティ差分を解消する方法
akihisaikeda
5
990
AWS CDK初期設定のプラクティス集 with Projen
akihisaikeda
2
430
AI生成記事をリライトし満足度を上げようとしたら大変だった話
akihisaikeda
0
53
スモールスタートで始めるためのLambda×モノリス(Lambdalith)
akihisaikeda
2
970
Amazon Q Developer CLIと一緒に最小権限の原則を守ったIAMポリシーを作ろう!
akihisaikeda
1
780
Amazon Bedrockマルチエージェントコラボレーションを諦めてLangGraphに入門してみた
akihisaikeda
1
680
JAWS_DAYS_2025_アーキテクチャ道場発表資料_ブラックサンダーズ
akihisaikeda
0
870
Other Decks in Programming
See All in Programming
ベクトル検索のフィルタを用いた機械学習モデルとの統合 / python-meetup-fukuoka-06-vector-attr
monochromegane
2
320
Go1.26 go fixをプロダクトに適用して困ったこと
kurakura0916
0
330
AIとペアプロして処理時間を97%削減した話 #pyconshizu
kashewnuts
1
200
Event Storming
hschwentner
3
1.3k
grapheme_strrev関数が採択されました(あと雑感)
youkidearitai
PRO
1
210
今、アーキテクトとして 品質保証にどう関わるか
nealle
0
200
AI主導でFastAPIのWebサービスを作るときに 人間が構造化すべき境界線
okajun35
0
550
The Ralph Wiggum Loop: First Principles of Autonomous Development
sembayui
0
3.7k
AHC061解説
shun_pi
0
320
手戻りゼロ? Spec Driven Developmentとは@KAG AI week
tmhirai
1
160
AI駆動開発の本音 〜Claude Code並列開発で見えたエンジニアの新しい役割〜
hisuzuya
4
480
Codex の「自走力」を高める
yorifuji
0
250
Featured
See All Featured
Are puppies a ranking factor?
jonoalderson
1
3.1k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.1k
Scaling GitHub
holman
464
140k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
96
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
A better future with KSS
kneath
240
18k
Ten Tips & Tricks for a 🌱 transition
stuffmc
0
84
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
150
Navigating Weather and Climate Data
rabernat
0
130
Evolving SEO for Evolving Search Engines
ryanjones
0
150
First, design no harm
axbom
PRO
2
1.1k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
460
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