Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
初心者を卒業したい! CDKをちゃんと理解するためにAspectsを覗いてみる
Search
Shota Kawasaki
January 20, 2026
340
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
初心者を卒業したい! CDKをちゃんと理解するためにAspectsを覗いてみる
Shota Kawasaki
January 20, 2026
More Decks by Shota Kawasaki
See All by Shota Kawasaki
MCPって本当に不要? AWS MCP Serverで確かめる 新しい役割
kawaaaas
1
20
AIに書かせたCDK、動くだけで満足してませんか?今日から始める、CDKハーネス設計!
kawaaaas
3
1k
CloudFormationから理解するCDKのAwsCustomResourceの使用法
kawaaaas
1
66
CDKとは?からコントリビュートまで〜半年間のCDK学習振り返りとこれから〜
kawaaaas
1
140
アーキテクト・CDK・OSSを一気に学ぶ!L3 Construct実装のススメ
kawaaaas
0
100
おばけのアイコン可愛い、で終わらせない!KiroのSpec駆動開発に再入門
kawaaaas
0
64
初心者CDKコントリビューターによる、初心者CDKコントリビューターのためのJSII入門
kawaaaas
0
42
5分でわかって、明日からCDKを使いたくなる!個人的感動機能10選!
kawaaaas
1
380
なぜconsole.logはTokenになるのか?もうハマらないためにTokenをちゃんと理解する
kawaaaas
1
1.4k
Featured
See All Featured
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6.2k
Building AI with AI
inesmontani
PRO
1
1.2k
Product Roadmaps are Hard
iamctodd
55
13k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
3
3.8k
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
74
42k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
500
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
440
Documentation Writing (for coders)
carmenintech
77
5.5k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.6k
Balancing Empowerment & Direction
lara
6
1.3k
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.2k
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
是非みなさんも、好きな技術を 自信を持って好きと言えるように 私と一緒に挑戦しましょう!