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
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
180
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
160
Build your cross-platform service in a week with App Engine
jlugia
234
18k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
190
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
57
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
180
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Testing 201, or: Great Expectations
jmmastey
46
8.1k
The Invisible Side of Design
smashingmag
302
51k
Bash Introduction
62gerente
615
210k
Optimizing for Happiness
mojombo
379
71k
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
是非みなさんも、好きな技術を 自信を持って好きと言えるように 私と一緒に挑戦しましょう!