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 を「作」ってみた 〜フルスクラッチで見えた CDK の裏側〜 / aws-cd...
Search
k.goto
July 17, 2026
Programming
14
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AWS CDK を「作」ってみた 〜フルスクラッチで見えた CDK の裏側〜 / aws-cdk-from-scratch
2026/07/18 開催「AWS CDK Conference Japan 2026」での登壇資料です。
k.goto
July 17, 2026
More Decks by k.goto
See All by k.goto
IaC コードを資産へ:AWS CDK 社内ライブラリと横断展開 / aws-summit-japan-2026
gotok365
10
2.3k
AWS CDK の目玉新機能「Mixins」とは / cdk-mixins
gotok365
2
700
AWS CDKの仕組み / how-aws-cdk-works
gotok365
18
5.7k
AWS CDK 実践的アプローチ N選 / aws-cdk-practical-approaches
gotok365
8
2.7k
TypeScript製IaCツールのAWS CDKが様々な言語で実装できる理由 ~他言語変換の仕組み~ / cdk-language-transformation
gotok365
10
1.7k
とあるEdTechベンチャーのシステム構成こだわりN選 / edtech-system
gotok365
7
980
CodePipelineのアクション統合から学ぶAWS CDKの抽象化技術 / codepipeline-actions-cdk-abstraction
gotok365
5
550
AWS CDKにおけるL2 Constructの仕組み / aws-cdk-l2-construct
gotok365
6
1.6k
コミュニティ駆動 AWS CDK ライブラリ「Open Constructs Library」 / community-cdk-library
gotok365
3
610
Other Decks in Programming
See All in Programming
Contextとはなにか
chiroruxx
1
390
その問い、本当に正しいですか?AI時代のエンジニアに必要な哲学と認知科学 / ai-philosophy-cognitive-science
minodriven
14
6.8k
Hunting Vulnerabilities in Symfony with LLMs
vinceamstoutz
0
580
壊れたパーサから始める関数型設計と構成的なパーサ #fp_matsuri
raiga0310
2
190
LaravelLive Japan の裏方のすべて — 第188回 PHP勉強会@東京 (2026-06-24)
suguruooki
2
150
【やさしく解説 設計編・中級 #6】良いアーキテクチャとは ~ 一本の登り道の、行き先 ~
panda728
PRO
0
140
AI駆動開発を妨げる技術的負債の解消アプローチ / ai-refactoring-approach
minodriven
17
8.9k
「正の参照」と 「負の導出」で組む ハーネスエンジニアリング
cottpan
1
140
霧の中の代数的エフェクト
funnyycat
1
340
Developing with AI Agents — Codex, Claude Code & Cowork Practical Guide
x5gtrn
PRO
0
1.4k
分散システム、なんですぐ死んでしまうん?耐障害性を高めたいあなたのためのレジリエンスパターン入門
mshibuya
7
5.7k
Performance Engineering for Everyone
elenatanasoiu
0
270
Featured
See All Featured
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.2k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
Documentation Writing (for coders)
carmenintech
77
5.4k
Typedesign – Prime Four
hannesfritz
42
3.1k
Tell your own story through comics
letsgokoyo
1
990
Writing Fast Ruby
sferik
630
63k
How STYLIGHT went responsive
nonsquared
100
6.2k
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
180
Exploring anti-patterns in Rails
aemeredith
3
440
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
65
56k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
62
44k
Transcript
LHPUP AWS CDK Λʮ࡞ʯͬͯΈͨ ʙϑϧεΫϥονͰݟ͑ͨ CDK ͷཪଆʙ "84$%,$POGFSFODF+BQBO
ࣗݾհ LHPUP w גࣜձࣾϝΠπ ‣ $IJFG&OHJOFFS w "84)FSP ‣ "84%FW5PPMT)FSP
w "84$%,ίϯτϦϏϡʔλʔ ‣ 5PQ$POUSJCVUPS ‣ $PNNVOJUZ3FWJFXFS 9!@TUFQ@UFDI (JU)VC!HPUPL
"84$%,ͱʁ "84ΞΧϯτ 4UBDL 4UBDL 4UBDL σϓϩΠ
$%,$-* $%,"QQ ᶃ$%,࣮ ᶄ$%,ίϚϯυ ᶅ߹ TZOUI ˞αϒϓϩηε "84$%,ͱʁ ᶈσϓϩΠ
ΫϥυΞηϯϒϦ DELPVU ᶆੜ ᶇಡΈࠐΈϏϧυ
$%,$-*ͷׂ w $%,ίϚϯυ ‣ DELEFQMPZ DELTZOUI FUD w $%,"QQͷΦʔέετϨʔλʔ ‣
$%,"QQΛαϒϓϩηεͰݺͼग़ͯ͠߹Λ࣮ߦ ‣ $%,"QQͷग़ྗͨ͠ΫϥυΞηϯϒϦ DELPVU ΛಡΈࠐΈ Ϗϧυ w $MPVE'PSNBUJPOͷϥούʔ ‣ ΫϥυΞηϯϒϦͷ$MPVE'PSNBUJPOςϯϓϨʔτΛಡΈࠐΜͰσϓϩΠ
$%,"QQͷׂ w Ϣʔβʔͷ࣮ͨ͠$%,ίʔυ ‣ BXTDELMJC ϥΠϒϥϦ Λ༻ w ΫϥυΞηϯϒϦΛੜ ߹
͢Δ·Ͱ͕ΰʔϧ ‣ σϓϩΠॲཧʹؔ༩͠ͳ͍ ‣ "84ΞΫηεΛ͠ͳ͍ DPOUFYUϝιουGSPN-PPLVQ ͰͷΞΫηε$%,$-* w ΫϥυΞηϯϒϦ DELPVU ͷத ‣ $MPVE'PSNBUJPOςϯϓϨʔτɺ-BNCEBϑΝΠϧɺ%PDLFS fi MFɺFUD
$MPVE'PSNBUJPOͷׂ w ࣮ࡍʹσϓϩΠॲཧΛߦ͏$%,ͷཁ ‣ $%,$-*͕"844%, $MPVE'PSNBUJPO ࣮ߦ w ඞཁͳΞηοτ$%,$-*͕͢Ͱʹ"84ʹϏϧυɾΞοϓϩʔυࡁΈ ‣
Ξηοτ-BNCEBϑΝΠϧɺ%PDLFSΠϝʔδɺFUD ‣ $MPVE'PSNBUJPOςϯϓϨʔτʹͦΕΒͷใͳͲຒΊࠐΈࡁΈ
$%,ͱ$MPVE'PSNBUJPO w $%,ͱ$MPVE'PSNBUJPOҰ৺ಉମ ‣ ͬͯΓͤͳ͍ w $MPVE'PSNBUJPO͕৭ʑͬͯ͘ΕΔɺ੍͋Δ ‣ σϓϩΠ͕͍࣌ؒ ͍
$%,ͱ$MPVE'PSNBUJPO w $%,ͱ$MPVE'PSNBUJPOҰ৺ಉମ ‣ ͬͯΓͤͳ͍ ‣ ˠຊʹͦ͏ͳͷ͔ʁ w $MPVE'PSNBUJPO͕৭ʑͬͯ͘ΕΔɺ੍͋Δ ‣
σϓϩΠ͕͍࣌ؒ ͍ ‣ ˠΓͤΕɺ্ՄೳʹͳΔͷͰʁ
$MPVE'PSNBUJPOͷΓ͠ͷݕ౼
$MPVE'PSNBUJPOͷΓ͠ͷݕ౼ $%,$-*$%,"QQͰશʹ͞Ε͍ͯΔ αϒϓϩηε࣮ߦɾΫϥυΞηϯϒϦ͕
$MPVE'PSNBUJPOͷΓ͠ͷݕ౼ $%,$-*͚ͩஔ͖͑ͯɺ$%,"QQͦͷ··͑Δ $%,"QQ͕ͦͷ··͑ΔͱϢʔβʔଆॻ͖͑ෆཁ ஔ͖͑
$MPVE'PSNBUJPOͷΓ͠ͷݕ౼ $%,$-*Λஔ͖͑ΒΕΔͳΒɺ$MPVE'PSNBUJPOʹറΒΕͳ͍ $MPVE'PSNBUJPO෦ɺ֤αʔϏεͷ4%,ݺͼग़͠ͰସͰ͖Δ ஔ͖͑
͍͚Δʂ
"84$%,Λʮ࡞ʯͬͯΈͨ
DELE $%,%JSFDU IUUQTHJUIVCDPNHPUPLDELE ͥͻελʔΛʂʂ
DELE $%,%JSFDU DELE $%,"QQ ᶃ$%,࣮ ᶄDELEίϚϯυ ᶅ߹ TZOUI ˞αϒϓϩηε
ᶈσϓϩΠ ΫϥυΞηϯϒϦ DELPVU ᶆੜ ᶇಡΈࠐΈϏϧυ "844%, ֤αʔϏε
DELE $%,%JSFDU DELE $%,"QQ ᶃ$%,࣮ ᶄDELEίϚϯυ ᶅ߹ TZOUI ˞αϒϓϩηε
ᶈσϓϩΠ ΫϥυΞηϯϒϦ DELPVU ᶆੜ ᶇಡΈࠐΈϏϧυ "844%, ֤αʔϏε $MPVE'PSNBUJPO ςϯϓϨʔτ ͦͷ··༻ʂ
DELE $%,%JSFDU %"( ༗ඇ८ճάϥϑґଘάϥϑ ੜ EJ ff ܭࢉ طଘϦιʔεͱͷൺֱ
ฒྻ࣮ߦ ະྃґଘͰଈ࣌σΟεύον ߹ $%,"QQ Ξηοτ Ϗϧυެ։ ΫϥυΞηϯϒϦղੳ DELEΤϯδϯ 4%,ϓϩόΠμʔ $$"1*ϓϩόΠμʔ αϒϓϩηε࣮ߦ ΫϥυΞηϯϒϦੜ $MPVE'PSNBUJPOςϯϓϨʔτͷύʔε NBOJGFTU 4%,ര ࡞ίετ༗ $$"1*ൣғΧόʔ ϑΥʔϧόοΫ ;JQԽ4Ξοϓϩʔυ %PDLFSΠϝʔδϏϧυ&$3QVTI ˞$$"1*$MPVE$POUSPM"1* $%,$-* ͷସ $MPVE'PSNBUJPO ͷସ
ंྠͷ࠶ൃ໌ $%,ͷཪଆ w $%,$-*ͷ͍ͬͯͨ͜ͱ ‣ DPO fi H DPOUFYU ಡΈࠐΈ
ෳͷDPO fi HDPOUFYUࢦఆํ๏ ‣ ߹ͷΦʔέετϨʔτ ະղܾDPOUFYUଘࡏ࣌ͷ߹ϧʔϓ ‣ $POUFYUϓϩόΠμʔ "844%,ʹΑΔऔಘ ‣ Ξηοτཧ ;JQԽ4Ξοϓϩʔυ %PDLFSϏϧυ&$3QVTI w $MPVE'PSNBUJPOͷ͍ͬͯͨ͜ͱ ‣ $'OςϯϓϨʔτղੳ ղܾ ґଘղܾ 3FG(FU"UU ΈࠐΈؔ 'O4VCFUD ‣ ঢ়ଶཧ ঢ়ଶελοΫ ‣ ϓϩύςΟϦιʔε୯ҐͷEJ ff ܭࢉ ‣ ࣮ߦܭը ґଘάϥϑ Ϩϕϧཧ ‣ ϦιʔεϓϩϏδϣχϯά "1*࣮ߦ ‣ ϩʔϧόοΫ ‣ Ϧιʔεͷ҆ఆԽͪ
ंྠͷ࠶ൃ໌ $%,ͷཪଆ w $%,$-*ͷ͍ͬͯͨ͜ͱ ‣ DPO fi H DPOUFYU ಡΈࠐΈ
ෳͷDPO fi HDPOUFYUࢦఆํ๏ ‣ ߹ͷΦʔέετϨʔτ ະղܾDPOUFYUଘࡏ࣌ͷ߹ϧʔϓ ‣ $POUFYUϓϩόΠμʔ "844%,ʹΑΔऔಘ ‣ Ξηοτཧ ;JQԽ4Ξοϓϩʔυ %PDLFSϏϧυ&$3QVTI w $MPVE'PSNBUJPOͷ͍ͬͯͨ͜ͱ ‣ $'OςϯϓϨʔτղੳ ղܾ ґଘղܾ 3FG(FU"UU ΈࠐΈؔ 'O4VCFUD ‣ ঢ়ଶཧ ঢ়ଶελοΫ ‣ ϓϩύςΟϦιʔε୯ҐͷEJ ff ܭࢉ ‣ ࣮ߦܭը ґଘάϥϑ Ϩϕϧཧ ‣ ϦιʔεϓϩϏδϣχϯά "1*࣮ߦ ‣ ϩʔϧόοΫ ‣ Ϧιʔεͷ҆ఆԽͪ શͯ ࣗ࡞ ϑϧεΫϥον ͠·ͨ͠ʂ ˞Ϧιʔεͷ҆ఆԽͪҎ֎ ˠDELEॏࢹͷͨΊ
ंྠͷ࠶ൃ໌ $%,ͷཪଆ w $%,$-*ͷ͍ͬͯͨ͜ͱ ‣ DPO fi H DPOUFYU ಡΈࠐΈ
ෳͷDPO fi HDPOUFYUࢦఆํ๏ ‣ ߹ͷΦʔέετϨʔτ ະղܾDPOUFYUଘࡏ࣌ͷ߹ϧʔϓ ‣ $POUFYUϓϩόΠμʔ "844%,ʹΑΔऔಘ ‣ Ξηοτཧ ;JQԽ4Ξοϓϩʔυ %PDLFSϏϧυ&$3QVTI w $MPVE'PSNBUJPOͷ͍ͬͯͨ͜ͱ ‣ $'OςϯϓϨʔτղੳ ղܾ ґଘղܾ 3FG(FU"UU ΈࠐΈؔ 'O4VCFUD ‣ ঢ়ଶཧ ঢ়ଶελοΫ ‣ ϓϩύςΟϦιʔε୯ҐͷEJ ff ܭࢉ ‣ ࣮ߦܭը ґଘάϥϑ Ϩϕϧཧ ‣ ϦιʔεϓϩϏδϣχϯά "1*࣮ߦ ‣ ϩʔϧόοΫ ‣ Ϧιʔεͷ҆ఆԽͪ $%,ͷΈΛ͍ͬͯΕ ࣮ͦΜͳʹ͘͠ͳ͍ $%,ͷΈΛΔ͜ͱͰ ීஈͷ$%,։ൃͰૺ۰ͨ͠ڍಈ ཧղͰ͖ΔΑ͏ʹͳΓ·͢ʂ
ंྠͷ࠶ൃ໌ $%,ͷཪଆ w $%,$-*ͷ͍ͬͯͨ͜ͱ ‣ DPO fi H DPOUFYU ಡΈࠐΈ
ෳͷDPO fi HDPOUFYUࢦఆํ๏ ‣ ߹ͷΦʔέετϨʔτ ະղܾDPOUFYUଘࡏ࣌ͷ߹ϧʔϓ ‣ $POUFYUϓϩόΠμʔ "844%,ʹΑΔऔಘ ‣ Ξηοτཧ ;JQԽ4Ξοϓϩʔυ %PDLFSϏϧυ&$3QVTI w $MPVE'PSNBUJPOͷ͍ͬͯͨ͜ͱ ‣ $'OςϯϓϨʔτղੳ ղܾ ґଘղܾ 3FG(FU"UU ΈࠐΈؔ 'O4VCFUD ‣ ঢ়ଶཧ ঢ়ଶελοΫ ‣ ϓϩύςΟϦιʔε୯ҐͷEJ ff ܭࢉ ‣ ࣮ߦܭը ґଘάϥϑ Ϩϕϧཧ ‣ ϦιʔεϓϩϏδϣχϯά "1*࣮ߦ ‣ ϩʔϧόοΫ ‣ Ϧιʔεͷ҆ఆԽͪ ಛʹͪ͜Β͕େมͰͨ͠ DELE㲈ࣗ࡞$MPVE'PSNBUJPO ͜ΕΒΛϚωʔδυͰͬͯ͘ΕΔ $MPVE'PSNBUJPOҒେʂ
DELEಠࣗͷڧΈ w ಠࣗͷ࠷దԽ ্ ‣ OPXBJU 㲈&YQSFTTNPEF $MPVE'SPOU3%4&MBTUJ$BDIF/"5(BUFXBZ ‣
71$-BNCEBͷϓϥΠϕʔταϒωοτͷϧʔτґଘ͕͠ w ະఆٛϓϩύςΟͷυϦϑτݕ DELSFBMESJGUʹΓग़͠ w ΞϓϦίʔυͷϩʔΧϧ࣮ߦ DELMPDBMʹΓग़͠ w $MPVE'PSNBUJPOͱͷ૬ޓҠߦ ‣ DELEFYQPSUJNQPSUNJHSBUFGSPNDMPVEGPSNBUJPO DELSFBMESJGUIUUQTHJUIVCDPNHPUPLDELSFBMESJGU DELMPDBMIUUQTHJUIVCDPNHPUPLDELMPDBM
$%,$-* $MPVE'PSNBUJPO ͱͷൺֱ ˞&YQSFTT$MPVE'PSNBUJPO&YQSFTTϞʔυ d $MPVE'PSNBUJPOͷ࠷େഒҎ্ &YQSFTTϞʔυͷ࠷େഒҎ্ ˞ճܭଌͷ࠷
$MPVE'PSNBUJPOͷྑ͍ͱ͜Ζ w ϚωʔδυʹΑΔಈ࡞ͷఏڙɾอূ ‣ ґଘղܾEJ ff ܭࢉ"1*࣮ߦϩʔϧόοΫ ‣ ঢ়ଶΛϢʔβʔଆͰ࣋ͨͳ͍͍ͯ͘ w
Ϧιʔεͷ҆ఆԽͪ ‣ ҆ఆԽલʹϦιʔεʹΞΫηεͯ͠ΤϥʔʹͳΔ͜ͱ͕͋Δ ‣ $MPVE'PSNBUJPOͰʮσϓϩΠྃଈ͑Δʯ ͱͷτϨʔυΦϑ ˠ҆৺ͯ͠σϓϩΠͰ͖ΔɾϦιʔεΛѻ͑Δ ຊ൪ڥ͖
DELEͷϢʔεέʔε w DELE$%,$-*ͷஔ͖͑Ͱͳ͘ิ͠߹͏ཱͪҐஔ ‣ ։ൃςετDELEͰ։ൃΠςϨʔγϣϯΛߴʹ ‣ εςʔδϯάຊ൪ڥ$%,$-* $MPVE'PSNBUJPO w
"*ۦಈ։ൃʹ͓͚Δ͍ࣺͯڥɾϓϩτλΠϓڥͷߏங ‣ DELEͷര͕͞"*ͱͷ૬ੑ˕ ‣ ͱʹ͔͘͘࡞ͬͯյ͢ʂ DELEআരʂ w దٓDELEFYQPSUJNQPSUͰɺDELE$'Oͷ૬ޓҠߦ͕Մೳ
DELE $%,%JSFDU IUUQTHJUIVCDPNHPUPLDELE ͥͻελʔΛʂʂ
"QQFOEJY
ؔ࿈ࢿྉ"84$%,ͷதʹڵຯ͋Δํ IUUQTTQFBLFSEFDLDPNHPUPLIPXBXTDELXPSLT IUUQTTQFBLFSEFDLDPNHPUPLDELMBOHVBHFUSBOTGPSNBUJPO
DELMPDBM DELM IUUQTHJUIVCDPNHPUPLDELMPDBM w $%,ཧͷΞϓϦίʔυΛϩʔΧϧ࣮ߦ͢Δ$-*πʔϧ ‣ ؔ࿈ϦιʔεใΛ"84ڥ͔ΒࣗಈऔಘՄೳ ΞϓϦϩʔΧϧ࣮ߦͭͭ͠ɺ4FDSFU4%#ͳͲ࣮ϦιʔεʹΞΫηε
FOWϩʔΧϧͷσʔλಉظͳͲ͕ෆཁʹ ‣ ϒϥβ࣮ߦՄೳ
DELSFBMESJGU DELSE IUUQTHJUIVCDPNHPUPLDELSFBMESJGU w $%,υϦϑτݕग़πʔϧ ‣ $%, $MPVE'PSNBUJPO ͰະఆٛϓϩύςΟͷυϦϑτݕग़Մೳ
DELESJGUͰݕෆՄͷͷ͕ݕग़Ͱ͖Δ ‣ SFDPSESFWFSUJHOPSFՄೳ
DELNVMUJSFHJPOTUBDL IUUQTHJUIVCDPNHPUPLDELNVMUJSFHJPOTUBDL w ෳϦʔδϣϯͷϦιʔεΛͭͷ$%,ελοΫʹهड़
BXTDELVOJUUFTUJOH 4LJMM IUUQTHJUIVCDPNHPUPLDELTLJMMT w "84$%,ͷ୯ମςετ4LJMM ‣ "84$%,ʹ͓͚Δ୯ମςετͷ࣮ફతͳϊϋΛ$PEJOH"HFOU͕ཧղ Ͳͷ໘ͰͲΜͳςετΛॻ͖͔͘ॻ͔ͳͯ͘ྑ͍͔
அϑϩʔɾίʔυύλʔϯผͷྫɾΞϯνύλʔϯ ‣ CVJMEFST fl BTIدߘهࣄΛεΩϧԽ ʰ"84$%,ʹ͓͚Δ୯ମςετͷ͍ॴΛֶͿʱ
EFMTUBDL IUUQTHJUIVCDPNHPUPLEFMTUBDL w $MPVE'PSNBUJPOελοΫڧ੍আπʔϧ ‣ ௨ৗͷআͩͱࣦഊ͢ΔϦιʔεؚΊɺελοΫؙ͝ͱڧ੍আ ‣ $%,ωΠςΟϒରԠࡁΈ AEFMTUBDLDELAίϚϯυ
5IBOL:PV LHPUP "84%FW5PPMT)FSP 9!@TUFQ@UFDI (JU)VC!HPUPL