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.9k
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の仕組み / how-aws-cdk-works
gotok365
13
1.8k
AWS CDK 実践的アプローチ N選 / aws-cdk-practical-approaches
gotok365
7
1.5k
TypeScript製IaCツールのAWS CDKが様々な言語で実装できる理由 ~他言語変換の仕組み~ / cdk-language-transformation
gotok365
9
730
とあるEdTechベンチャーのシステム構成こだわりN選 / edtech-system
gotok365
7
690
CodePipelineのアクション統合から学ぶAWS CDKの抽象化技術 / codepipeline-actions-cdk-abstraction
gotok365
5
450
AWS CDKにおけるL2 Constructの仕組み / aws-cdk-l2-construct
gotok365
6
1.2k
コミュニティ駆動 AWS CDK ライブラリ「Open Constructs Library」 / community-cdk-library
gotok365
2
420
AWS CDKにおける「再利用性」を考える / aws-cdk-reusability
gotok365
8
3.2k
OSS活動のススメ / oss-activities
gotok365
5
1.3k
Other Decks in Programming
See All in Programming
サーバーサイドのビルド時間87倍高速化
plaidtech
PRO
0
500
20250808_AIAgent勉強会_ClaudeCodeデータ分析の実運用〜競馬を題材に回収率100%の先を目指すメソッドとは〜
kkakeru
0
210
The State of Fluid (2025)
s2b
0
200
AI OCR API on Lambdaを Datadogで可視化してみた
nealle
0
180
Claude Codeで実装以外の開発フロー、どこまで自動化できるか?失敗と成功
ndadayo
2
1.4k
State of CSS 2025
benjaminkott
1
120
LLMOpsのパフォーマンスを支える技術と現場で実践した改善
po3rin
8
980
UbieのAIパートナーを支えるコンテキストエンジニアリング実践
syucream
2
730
学習を成果に繋げるための個人開発の考え方 〜 「学習のための個人開発」のすすめ / personal project for leaning
panda_program
1
110
A Gopher's Guide to Vibe Coding
danicat
0
170
あのころの iPod を どうにか再生させたい
orumin
2
2.5k
TDD 実践ミニトーク
contour_gara
0
150
Featured
See All Featured
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
Fireside Chat
paigeccino
39
3.6k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
Music & Morning Musume
bryan
46
6.7k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3k
How STYLIGHT went responsive
nonsquared
100
5.7k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.5k
Embracing the Ebb and Flow
colly
87
4.8k
Become a Pro
speakerdeck
PRO
29
5.5k
Building Applications with DynamoDB
mza
96
6.6k
The Cult of Friendly URLs
andyhume
79
6.5k
Code Review Best Practice
trishagee
70
19k
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 าͷςοΫ