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
3
240
初心者を卒業したい! CDKをちゃんと理解するためにAspectsを覗いてみる
Shota Kawasaki
January 20, 2026
Tweet
Share
More Decks by Shota Kawasaki
See All by Shota Kawasaki
初心者CDKコントリビューターによる、初心者CDKコントリビューターのためのJSII入門
kawaaaas
0
12
5分でわかって、明日からCDKを使いたくなる!個人的感動機能10選!
kawaaaas
0
150
なぜconsole.logはTokenになるのか?もうハマらないためにTokenをちゃんと理解する
kawaaaas
1
470
2026年はアウトプットに挑戦したい!
kawaaaas
0
8
3つのアーキテクチャで試す、IAM Policy Autopilot
kawaaaas
0
150
作って学ぶ!Kiro Powers
kawaaaas
0
130
Featured
See All Featured
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
57
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
120
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
190
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
0
260
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
830
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
99
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
68
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
170
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
240
[SF Ruby Conf 2025] Rails X
palkan
1
760
We Are The Robots
honzajavorek
0
170
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
是非みなさんも、好きな技術を 自信を持って好きと言えるように 私と一緒に挑戦しましょう!