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
k.goto
July 11, 2023
Programming
4
1.8k
AWS CDKで"使う"GoFデザインパターン 〜実際どうなの?〜 / GoF design patterns used with AWS CDK
2023/07/12開催 JAWS-UG CDK支部 #7での発表資料です。
k.goto
July 11, 2023
Tweet
Share
More Decks by k.goto
See All by k.goto
AWS CDKにおけるL2 Constructの仕組み / aws-cdk-l2-construct
gotok365
4
970
コミュニティ駆動 AWS CDK ライブラリ「Open Constructs Library」 / community-cdk-library
gotok365
2
330
AWS CDKにおける「再利用性」を考える / aws-cdk-reusability
gotok365
7
2.8k
OSS活動のススメ / oss-activities
gotok365
4
1.1k
AWS CDKコントリビュートTIPS / aws-cdk-contribution-tips
gotok365
5
1.7k
S3バケットを高速で削除・空にするツール「cls3」 / s3-deletion-tool-cls3
gotok365
4
880
AWS CDKで コンテナイメージスキャンを行う 〜ECRとその他の方法〜 / cdk-container-image-scan
gotok365
2
1.5k
スタートアップでこそCDKが活きた〜生産性を向上できた5つの理由〜 / startup-cdk-productivity
gotok365
14
4.1k
AWS CDKで学ぶGoFデザインパターン〜IaCにもコード設計〜 / aws dev day cdk gof design patterns
gotok365
14
6.7k
Other Decks in Programming
See All in Programming
remix + cloudflare workers (DO) docker上でいい感じに開発する
yoshidatomoaki
0
120
パスキーのすべて / 20250324 iddance Lesson.5
kuralab
0
150
Signal-Based Data FetchingWith the New httpResource
manfredsteyer
PRO
0
150
SLI/SLOの設定を進めるその前に アラート品質の改善に取り組んだ話
tanden
3
800
MCP調べてみました! / Exploring MCP
uhzz
2
2.1k
SQL Server ベクトル検索
odashinsuke
0
160
Agentic Applications with Symfony
el_stoffel
2
220
リストビュー画面UX改善の振り返り
splcywolf
0
110
php-fpm がリクエスト処理する仕組みを追う / Tracing-How-php-fpm-Handles-Requests
shin1x1
5
1.9k
サービスクラスのありがたみを発見したときの思い出 #phpcon_odawara
77web
4
580
snacks.nvim内のセットアップ不要なプラグインを紹介 / introduce_snacks_nvim
uhooi
0
390
家族・子育て重視/沖縄在住を維持しながらエンジニアとしてのキャリアをどのように育てていくか?
ug
0
260
Featured
See All Featured
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
The Cost Of JavaScript in 2023
addyosmani
48
7.6k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
7
640
How to train your dragon (web standard)
notwaldorf
91
6k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Adopting Sorbet at Scale
ufuk
75
9.3k
Building Better People: How to give real-time feedback that sticks.
wjessup
367
19k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7.1k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.5k
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 าͷςοΫ