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で"使う"GoFデザインパターン 〜実際どうなの?〜 / GoF design ...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
k.goto
July 11, 2023
Programming
2.2k
4
Share
AWS CDKで"使う"GoFデザインパターン 〜実際どうなの?〜 / GoF design patterns used with AWS CDK
2023/07/12開催 JAWS-UG CDK支部 #7での発表資料です。
k.goto
July 11, 2023
More Decks by k.goto
See All by k.goto
AWS CDK の目玉新機能「Mixins」とは / cdk-mixins
gotok365
2
570
AWS CDKの仕組み / how-aws-cdk-works
gotok365
17
5.3k
AWS CDK 実践的アプローチ N選 / aws-cdk-practical-approaches
gotok365
8
2.5k
TypeScript製IaCツールのAWS CDKが様々な言語で実装できる理由 ~他言語変換の仕組み~ / cdk-language-transformation
gotok365
10
1.5k
とあるEdTechベンチャーのシステム構成こだわりN選 / edtech-system
gotok365
7
910
CodePipelineのアクション統合から学ぶAWS CDKの抽象化技術 / codepipeline-actions-cdk-abstraction
gotok365
5
530
AWS CDKにおけるL2 Constructの仕組み / aws-cdk-l2-construct
gotok365
6
1.5k
コミュニティ駆動 AWS CDK ライブラリ「Open Constructs Library」 / community-cdk-library
gotok365
3
580
AWS CDKにおける「再利用性」を考える / aws-cdk-reusability
gotok365
8
3.7k
Other Decks in Programming
See All in Programming
AWS re:Invent 2025の少し振り返り + DevOps AgentとBacklogを連携させてみた
satoshi256kbyte
2
150
Smarter Angular mit Transformers.js & Prompt API
christianliebel
PRO
1
120
我々はなぜ「層」を分けるのか〜「関心の分離」と「抽象化」で手に入れる変更に強いシンプルな設計〜 #phperkaigi / PHPerKaigi 2026
shogogg
2
840
GNU Makeの使い方 / How to use GNU Make
kaityo256
PRO
16
5.6k
YJITとZJITにはイカなる違いがあるのか?
nakiym
0
130
Rethinking API Platform Filters
vinceamstoutz
0
11k
PHP 7.4でもOpenTelemetryゼロコード計装がしたい! / PHPerKaigi 2026
arthur1
1
540
事業会社でのセキュリティ長期インターンについて
masachikaura
0
230
KagglerがMixSeekを触ってみた
morim
0
370
AI活用のコスパを最大化する方法
ochtum
0
380
一度始めたらやめられない開発効率向上術 / Findy あなたのdotfilesを教えて!
k0kubun
4
2.9k
メッセージングを利用して時間的結合を分離しよう #phperkaigi
kajitack
3
570
Featured
See All Featured
KATA
mclloyd
PRO
35
15k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
120
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Visualization
eitanlees
150
17k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
199
73k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
440
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
330
The Cost Of JavaScript in 2023
addyosmani
55
9.8k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Odyssey Design
rkendrick25
PRO
2
570
Amusing Abliteration
ianozsvald
1
150
Evolving SEO for Evolving Search Engines
ryanjones
0
180
Transcript
LHPUP าͷςοΫ "84$%,ͰֶͿ (P'σβΠϯύλʔϯ ʙ࣮ࡍͲ͏ͳͷʁʙ +"846($%,ࢧ෦ ͏
ࣗݾհ LHPUP w ςοΫϦʔυɾϥʔϝϯ͖ w "84$PNNVOJUZ#VJMEFS %FW5PPMT w าͷςοΫ
ٕज़ϒϩά w ࣗ࡞"84πʔϧͷ044։ൃ w "84$%,$POUSJCVUPS ‣ $POTUSVDU)VCެ։ w 5XJUUFS!@TUFQ@UFDI ‣ LHPUP าͷςοΫ
(P'σβΠϯύλʔϯͱ w ॻ੶ʰΦϒδΣΫτࢦʹ͓͚Δ࠶ར༻ͷͨΊͷσβΠϯύλʔϯʱ ˞ ‣ ௨শʰ(P'ຊʱ ‣ (P' (BOHPG'PVS
͜ͷڞஶऀͷਓ ‣ શύλʔϯ w ݹ͔͘Β͋Δ͕ɺ"84$%,ͷ෦࣮ʹҰ෦༻͍ΒΕ͍ͯΔ ˞ʰΦϒδΣΫτࢦʹ͓͚Δ࠶ར༻ͷͨΊͷσβΠϯύλʔϯʱ ιϑτόϯΫύϒϦογϯά ஶΤʔϦώɾΨϯϚɺϥϧϑɾδϣϯιϯɺϦνϟʔυɾϔϧϜɺδϣϯɾϒϦγσΟʔε ༁ຊҐాਅҰ ٢ాथ
(P'σβΠϯύλʔϯͱ IUUQTEPDTBXTBNB[PODPNKB@KQQSFTDSJQUJWFHVJEBODFMBUFTUCFTUQSBDUJDFTDELUZQFTDSJQUJBDSFVTBCMFQBUUFSOTCFTUQSBDUJDFTIUNM 5ZQF4DSJQUͰ$%,Λॻ͘ࡍͷϕετϓϥΫςΟεͱͯ͠ ެࣜυΩϡϝϯτͰ(P'σβΠϯύλʔϯ͕հ
"84%FW%BZ5PLZP
"84$%,ͰֶͿ(P'σβΠϯύλʔϯ ʙ*B$ʹίʔυઃܭʙ
"84$%,ͰֶͿ(P'σβΠϯύλʔϯ ʙ*B$ʹίʔυઃܭʙ ͏ ʙ࣮ࡍͲ͏ͳͷʁʙ
"84$%,ͷཧɾݱ࣮ w ཧɿJGจGPSจશ෦ແ͠ʂ w ݱ࣮ɿڥࠩҟΛ࣮ݱ͠ͳ͍ͱ͍͚ͳ͍͜ͱʹɾɾɾ ‣ ֤։ൃऀͷڥͰ$IBUCPU TMBDLνϟϯωϧ ɺ8"'ɺ֎ܗࢹ࡞Βͳ͍ ‣
͑ͬɺͦͷڥ͚ͩ*1੍ݶͰ͔͢ʂʁ ݅ذ JGจ ͕ൃੜʂ ίʔυͷෳࡶԽɾංେԽʂ
͑ʁ (P'σβΠϯύλʔϯͬͯ $%,ʹ͑ΔΜͰ͔͢ʁ
$%,º(P'σβΠϯύλʔϯͷϝϦοτ ίʔσΟϯάʹ͓͚Δઃܭ͕͖ࣝɺΞϓϦ։ൃʹੜ͔ͤΔ $%,ίʔυΛޮΑ͘ॻ͚Δ ‣ ݅ذ͕ݮΔ ‣ ݟ௨͕͠ྑ͘ͳΓϑΝΠϧ͕ංେԽ͠ͳ͍ ˠཧղ༰қੑɾ֦ுੑ࠶ར༻ੑͷ্ 㲈อकੑͷ্ $%,ͬͯԿΛ࡞͍ͬͯΔͷ͔Θ͔ΓͮΒ͍͕࣌͋ͬͯɾɾɾ
Πϯελϯεੜͯ͠มʹೖΕͯϝιουݺΜͰذͯ͠ʜ
$%,º(P'σβΠϯύλʔϯͷσϝϦοτ ίʔσΟϯάઃܭͷ͕ࣝ͋Δఔඞཁ ಠࣗ࿏ઢͰ͋Δ ࣮༻ྫ͕গͳ͍ͷͰ ‣ $%,ͷతʮΠϯϑϥߏஙఆٛʯએݴతɾ੩తͳهड़έʔε͕ଟ͍ ޮੑΑΓγϯϓϧʹఆ͚ٛͩฒ͍ͨ ‣
ʮΓա͗ʯʹͳΔՄೳੑ ·ʙͨมͳ͜ͱͯ͠ɺແۤɾΦϨΦϨʹͳͬͪΌ͏ΜͰ͠ΐʁ
(P'σβΠϯύλʔϯιϑτΣΞֶ ܾͯ͠ແۤɾΦϨΦϨͰͳ͍ ύλʔϯɿܕɼ༷ࣜ σβΠϯɿઃܭ
"84$%,ֵ৽తͳ*B$ ैདྷͷ*B$ʹͳ͍ ༷ʑͳՄೳੑΛൿΊ͍ͯΔ
$%,º(P'σβΠϯύλʔϯͷՄೳੑ w ΞϓϦΠϯϑϥͷ֞ࠜΛ͑ͯΈΔྑ͍͖͔͚ͬʹͳΔ͔͠Εͳ͍ ‣ ʮఆٛΛॻ͍͍ͯΔʯ͔ΒʮίʔσΟϯάΛ͍ͯ͠Δʯͱ͍͏࣮ײͷมԽ ‣ ίʔσΟϯάָ͕͘͠ͳΔɾ։ൃʹڵຯ͕ग़Δ͔͠Εͳ͍ w ࣍ୈͰίʔυΛݟͨ͘͢͠ΓɺอकίετΛԼ͛ΒΕΔ͔͠Εͳ͍ ‣
ೝෛՙ͕Լ͕ͬͨΓ ‣ มߋ࣌ͷίʔυमਖ਼ྔ͕ݮͬͨΓ ैདྷͷΠϯϑϥఆٛͷʹनΘΕ͗͢ͳ͍͍ͯ͘Μ͡Όͳ͍͔ʁ
$%,º(P'σβΠϯύλʔϯͷՄೳੑ w ϧʔϧΛܾΊͯΠϯϑϥఆ͔ٛΒҳ͠ա͗ͳ͍Α͏ʹ w ैདྷͷએݴతͳΠϯϑϥఆٛΛ͑Δ෦ɺϓϩάϥϛϯάݴޠͳΒͰ ͷࣗಈςετͰΧόʔ ‣ 6OJU5FTU 4OBQTIPU5FTU
'JOFHSBJOFE"TTFSUJPOT5FTU 7BMJEBUJPO5FTU ‣ *OUFHSBUJPO5FTU JOUFHUFTUTBMQIB
$%,ͰͷΦεεϝύλʔϯબ ᶃ $PNQPTJUFύλʔϯ ᶄ 5FNQMBUF.FUIPEύλʔϯ ᶅ "CTUSBDU'BDUPSZύλʔϯ $%,ͳΒͰͷπϦʔߏ Λ׆͔ͯ͠ޮԽ ڥؒ
EFWcQSPE ͷࠩҟΛ࣮ݱ ɾڥ͝ͱͷݟ௨͕͠ྑ͘ͳΔ ɾ݅ذΛݮΒͤΔ ɾڞ௨෦ڞ௨Խͯ͠ޮతʹ ͓·͚ɿ'BDBEFύλʔϯ$POTUSVDU
ࢀߟɿᶃ$PNQPTJUFύλʔϯ
ࢀߟɿᶄ5FNQMBUF.FUIPEύλʔϯ
ࢀߟɿᶄ5FNQMBUF.FUIPEύλʔϯ ڥ͝ͱʹॊೈʹόϦσʔγϣϯ༰Λม͑Δʂ ݅ذ࠷খʂ
ࢀߟɿᶅ"CTUSBDU'BDUPSZύλʔϯ
ࢀߟɿᶅ"CTUSBDU'BDUPSZύλʔϯ
ࢀߟɿᶅ"CTUSBDU'BDUPSZύλʔϯ ڥ͝ͱʹॊೈʹߏஙϦιʔεΛม͑Δʂ ݅ذ࠷খʂ
$%,෦ͰΘΕ͍ͯΔύλʔϯ ᶃ 4JOHMFUPOύλʔϯ ‣ 4JOHMFUPO'VODUJPOίϯετϥΫτ ᶄ 4USBUFHZύλʔϯ ‣ 7BMJEBUJPOػೳ /PEFWBMJEBUF
ᶅ 7JTJUPSύλʔϯ ‣ "TQFDUTػೳ ৄࡉ"84%FW%BZ5PLZP ʰ"84$%,ͰֶͿ(P'σβΠϯύλʔϯ ʙ*B$ʹίʔυઃܭʙʱ ొஃࢿྉʹͯʂ ˞ຊࢿྉ࠷ޙʹϦϯΫهࡌ
࠷ޙʹ w "84$%,ͷՄೳੑແݶେ ‣ ৽͍͠ɾࣗ༝͕ߴ͍ނʹϕετϓϥΫςΟε͕ݻ·Γ͖͍ͬͯͳ͍ ͦͦ͜ͷ(P'σβΠϯύλʔϯద༻Έ͍ͨʹɺ·ͩྫ͕ग़͍ͯͳ͔ͬͨΓ ‣ πʔϧͱͯ͠ΤϯδχΞͱͯ͠৳ͼ͠Ζ͕͋Δʂ
$%,ͷ৽ͨͳ͍ํΛฤΈग़͢νϟϯεʂ ීஈΠϯϑϥدΓͷਓΞϓϦ։ൃɾίʔσΟϯάʹ৮ΕͯΈΔྑ͍ػձ͔ʂ "84$%,Λ͍͍ͯ͜͠͏ʂ ༻๏ɾ༻ྔकͬͯͶ (P' ͋Γ͔ʁ
ࢀߟɿ"84%FW%BZొஃࢿྉɾ(JU)VC "84%FW%BZ5PLZP ొஃࢿྉ ࠨɿIUUQTTQFBLFSEFDLDPNHPUPLBXTEFWEBZDELHPGEFTJHOQBUUFSOT $%,º(P'ίʔυ࣮ྫɾΫϥεਤ (JU)VC ӈɿIUUQTHJUIVCDPNHPUPLDELHPGEFTJHOQBUUFSO
એɿࣗ࡞"84πʔϧ044 ʲEFMTUBDLʳ"84$MPVE'PSNBUJPOελοΫڧ੍আπʔϧ ‣ IUUQTHPUPLIBUFOBCMPHDPNFOUSZEFMTUBDL ʲDMTʳ4όέοτߴআɾۭʹ͢Δπʔϧ όʔδϣχϯάରԠ ‣ IUUQTHPUPLIBUFOBCMPHDPNFOUSZDMT ʲMBNWFSʳ-BNCEBϥϯλΠϜόʔδϣϯݕࡧπʔϧ
Ϧʔδϣϯԣஅ ‣ IUUQTHPUPLIBUFOBCMPHDPNFOUSZMBNWFS
5IBOL:PV LHPUP าͷςοΫ