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
初心者を卒業したい! CDKをちゃんと理解するためにAspectsを覗いてみる
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Shota Kawasaki
January 20, 2026
260
3
Share
初心者を卒業したい! CDKをちゃんと理解するためにAspectsを覗いてみる
Shota Kawasaki
January 20, 2026
More Decks by Shota Kawasaki
See All by Shota Kawasaki
CloudFormationから理解するCDKのAwsCustomResourceの使用法
kawaaaas
1
15
CDKとは?からコントリビュートまで〜半年間のCDK学習振り返りとこれから〜
kawaaaas
1
94
アーキテクト・CDK・OSSを一気に学ぶ!L3 Construct実装のススメ
kawaaaas
0
68
おばけのアイコン可愛い、で終わらせない!KiroのSpec駆動開発に再入門
kawaaaas
0
16
初心者CDKコントリビューターによる、初心者CDKコントリビューターのためのJSII入門
kawaaaas
0
26
5分でわかって、明日からCDKを使いたくなる!個人的感動機能10選!
kawaaaas
1
320
なぜconsole.logはTokenになるのか?もうハマらないためにTokenをちゃんと理解する
kawaaaas
1
1.3k
2026年はアウトプットに挑戦したい!
kawaaaas
0
14
3つのアーキテクチャで試す、IAM Policy Autopilot
kawaaaas
0
170
Featured
See All Featured
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
The untapped power of vector embeddings
frankvandijk
2
1.7k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1k
Paper Plane (Part 1)
katiecoart
PRO
0
6.6k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
260
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
61
43k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.4k
Utilizing Notion as your number one productivity tool
mfonobong
4
290
Building an army of robots
kneath
306
46k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
270
Transcript
初心者を卒業したい! CDK をちゃんと理解するために Aspects を覗いてみる Toranomon Tech Hub 第6 回
新春!初心者だらけのLT 大会! 2026/1/22 Shota Kawasaki
出身: 千葉県 所属: SIer 年次: 1 年目 好きな技術: AWS, React
好きなAWS サービス: CloudFront, Kiro, CDK : @kawaaaas Shota Kawasaki
今回のテーマは「新しいチャレンジ」
昨年から、AWS CDK にチャレンジしている
AWS CDK とは AWS 公式が提供するIaC ツール 書き慣れた言語で リソースを定義 CloudFormation を生成
少ない記述量で ベストプラクティス に沿って構築
学生時代 入社後 CDK の有識者が多い部署に配属 興味を持ち、自ら0→1 で学習した
研修や趣味にて、 CDK を用いてこんなアーキテクチャ実装した①
研修や趣味にて、 CDK を用いてこんなアーキテクチャ実装した②
研修や趣味にて、 CDK を用いてこんなアーキテクチャ実装した③
実装していく中で、CDK の虜になった
ベストプラクティスに沿ってデフォルトの設定が反映 されているから、少ない記述量でリソースの定義ができる CDK の感動ポイント① L2 コンストラクト L3 L2 L1 抽象度高
汎用性低 抽象度低 汎用性高
CDK の感動ポイント② Grant メソッド ・直接ポリシーを書かずに権限を付与 ・権限を許可する対象がわかりやすい
CDK の感動ポイント③ Tag 管理 Stack やapp に対してadd するだけで 全リソースに一括でTag を付与できる
魅力を知ったしCDK が好きになった、 ただ「なんとなく書ける」から抜け出せない いい感じに実装しといたで
2026 年はCDK を自信を持って 好きと言えるようになりたい! 内部実装まで理解して、 コントリビュートもしたい!
魅力を語ってた機能、ちゃんと理解している? → まずは理解して魅力を語れるように! 全リソースに一括でTag を付与できる けど、これなんで?
Tag.of() はどんな仕組みで成り立っているの? Tag は内部でAspects という機能を利用している
Aspects とは 特定のスコープ内のすべての construct に対して共通の操作を適用する方法 Visitor デザインパターンが採用されており 既存のオブジェクト構造を修正することなく新しい操作を追加できる
Constract Prepare Validate Synthesize CDK のアプリケーションライフサイクル https://docs.aws.amazon.com/cdk/v2/guide/apps.html#lifecycle
Construct Prepare Validate Synthesize CDK のアプリケーションライフサイクル 定義されたConstruct に基づき Construct ツリーを形成する
https://docs.aws.amazon.com/cdk/v2/guide/apps.html#lifecycle
Construct Prepare Validate Synthesize CDK のアプリケーションライフサイクル リソース間の依存を解消し、 Aspects が適用されているかを確認する https://docs.aws.amazon.com/cdk/v2/guide/apps.html#lifecycle
Visitor デザインパターンによるツリー探索 GoF デザインパターンのひとつ オブジェクト構造の各要素に新しい操作を追加するためのデザインパターン Constract フェーズで構築されたツリーを探索する Visitor を受け入れる具象クラス →Stack
やConstract 各要素に適用される操作を定義する具象クラス →Tag
IAspect を継承しているTag クラス visit のメソッドを実装する Visitor デザインパターンによるツリー探索 /core/lib/tag-aspect.ts
app に対して、visit が再帰的に呼ばれる ことでAspects 機能が実装されている Visitor デザインパターンによるツリー探索 /packages/aws-cdk-lib/core/lib/private/synthesis.ts
Aspect を継承しスタック内のすべての S3 バケットに対して、バージョニングが 有効化されているかを確認する Tag.of() 以外の応用例 Tag はAspects の一例に過ぎないので、
IAspect を継承すればAspects を用いた機能を実装できる https://github.com/aws-samples/cdk-aspects-override/blob/main/lib/aspects.ts
是非みなさんも、好きな技術を 自信を持って好きと言えるように 私と一緒に挑戦しましょう!