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
ANGEL Dojo 最終発表資料
Search
ten986
December 01, 2022
Programming
0
820
ANGEL Dojo 最終発表資料
2022年に行われた ANGEL Dojo の、ゆめみチームの最終発表資料です。
ten986
December 01, 2022
Tweet
Share
More Decks by ten986
See All by ten986
ペアレビューは同期的でなくてもよくないですか?
ten986
2
140
自作のEsolangでQuineを書いてみた
ten986
0
220
【解説付き】自作のEsolangでQuineに挑戦してみた
ten986
0
140
Other Decks in Programming
See All in Programming
第3回 Snowflake 中部ユーザ会- dbt × Snowflake ハンズオン
hoto17296
4
360
Multi Step Form, Decentralized Autonomous Organization
pumpkiinbell
1
660
Kanzawa.rbのLT大会を支える技術の裏側を変更する Ruby on Rails + Litestream 編
muryoimpl
0
220
Compose でデザインと実装の差異を減らすための取り組み
oidy
1
300
Amazon Bedrock Multi Agentsを試してきた
tm2
1
280
社内フレームワークとその依存性解決 / in-house framework and its dependency management
vvakame
1
550
SRE、開発、QAが協業して挑んだリリースプロセス改革@SRE Kaigi 2025
nealle
3
4.1k
SpringBoot3.4の構造化ログ #kanjava
irof
2
970
Lottieアニメーションをカスタマイズしてみた
tahia910
0
120
DROBEの生成AI活用事例 with AWS
ippey
0
130
Software Architecture
hschwentner
6
2.1k
CI改善もDatadogとともに
taumu
0
110
Featured
See All Featured
Code Reviewing Like a Champion
maltzj
521
39k
Why Our Code Smells
bkeepers
PRO
335
57k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
How to Ace a Technical Interview
jacobian
276
23k
Embracing the Ebb and Flow
colly
84
4.6k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
20
2.4k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.7k
Optimising Largest Contentful Paint
csswizardry
34
3.1k
The Power of CSS Pseudo Elements
geoffreycrofte
75
5.5k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
49k
Transcript
ANGEL Dojo࠷ऴൃද ΏΊΈνʔϜ ※ Amazon Web ServicesɺAWSɺ͓Αͼ Powered by AWS
ͷϩΰɺ Amazon.com, Inc. ·ͨͦͷؔ࿈ձࣾͷඪͰ͢
࣍ • ղܾ͢Δސ٬՝ • αʔϏε֓ཁ • ΞʔΩςΫνϟઆ໌ • ಈ࡞σϞ •
νʔϜ։ൃͷ • ࠓޙͷల
ղܾ͢Δސ٬՝
ॳΊ͍ͯ͘ॴʹ ཱྀߦ͠Α͏ͱͨ࣌͠ɺ ͜Μͳ͜ͱͰΜͩܦݧ ͋Γ·ͤΜ͔ʁ
༧ఆͷ伱ؒ࣌ؒΛ Ͳ͏ຒΊΑ͏ ෳΞϓϦͰ ใΛ֬ೝ Ͳ͏͍͏ॱ൪Ͱ εϙοτΛ८Ζ͏ ཱྀߦͷܭըͷใ֬ೝ࣌ʹɺෳΞϓϦΛ༻͍Δ͜ͱ͕໘ ཱྀߦͷܭըͷใ֬ೝ࣌ʹɺ͕͔͔࣌ؒͬͯ͠·͏ ༷ʑͳใΛ ऩू͢Δඞཁ͕
Έ ༧ఆͷ伱ؒ࣌ؒΛͲ͏ຒΊΑ͏ ߦ͖͍ͨॴ͍͔ܾͭ͘·͍ͬͯΔ͕ɺ ͦΕҎ֎Ͳ͜ʹߦ͚͍͍͔ࢥ͍͔ͭͳ͍ ཱྀߦઌʹৄ͍͠ਓʹɺଞͷ͓͢͢Ί εϙοτΛฉ͚͍͍ʂ ۭ͖࣌ؒ ۭ͖࣌ؒ
Έ༷ʑͳใΛऩू͢Δඞཁ͕ ߦ͖͍ͨεϙοτͷใΞΫηεํ๏ɺ Γ͑ҊͳͲௐΔ͜ͱ͕ଟͯ͘େม ৄ͍͠ਓʹใऩूΛखͬͯΒ͓͏ʂ
Έ Ͳͷॱ൪ͰεϙοτΛ८Ζ͏ ͓ళͷӦۀ࣌ؒɺҠಈ࣌ؒɺҐஔؔͳͲ Λߟྀ͠ͳ͕ΒܾΊ͍ͯ͘ͷ͕େม ཱྀߦͷΤΩεύʔτʹ εϚʔτͳ༧ఆΛΜͰΒ͓͏ʂ Կ࣌ʹͲ͜ʹߦ͚Δ͔ ௐͳ͍ͱ͔Βͳ͍
ΈෳΞϓϦͰใΛ֬ೝ ΞϓϦΛΓସ͑ͨࡍʹ֬ೝͨ͠ใΛ ಄ʹೖΕ͓ͯ͘ඞཁ͕͋Γେม ཱྀߦͷܭըΛશʹѲ͍ͯ͠Δਓʹ ͍͖ͭͯͯΒ͍͍͑ʂ
ΈΛղফ͢ΔͨΊʹ ͜ΜͳཱྀߦͷΤΩεύʔτ͕͍Ε͍͍ʂ • ܭըஈ֊Ͱͷ͓͢͢ΊεϙοτͷఏҊ • ͷεέδϡʔϧͷఏҊ • ཱྀߦͷ͓͠Γ·Ͱ࡞ͬͯ͘ΕΔ ͜ΕΒ͕ͭͷΞϓϦͰ݁ͨ͠Βɾɾɾʁ
TRIPONE τϦϙϯ
αʔϏε֓ཁ
TRIPONE ॆཱྀ࣮ͨ͠ߦΛָ͠ΉͨΊͷ ཱྀߦͷΤΩεύʔτΞϓϦ • ܭըஈ֊Ͱͷ͓͢͢ΊεϙοτͷఏҊ • ͷεέδϡʔϧͷఏҊ • ཱྀߦͷ͓͠Γ·Ͱ࡞ͬͯ͘ΕΔ ॳΊͯͷॴͰཱྀߦΛຬ٤Ͱ͖Δ
※ϩέʔγϣϯͷը૾نʹଇͬͯ༻͍ͯ͠·͢
͓͢͢ΊεϙοτఏҊ ߦ͖͍ͨεϙοτΛೖྗ εϙοτΛબ ܭըʹΓͳ͍δϟϯϧͷ ͓͢͢ΊεϙοτΛఏҊ ※ϩέʔγϣϯͷը૾نʹଇͬͯ༻͍ͯ͠·͢
εέδϡʔϧఏҊ ։࢝࣌ؒɾऴྃ࣌ؒɾ ࡏ࣌ؒΛฤूՄೳ બ͓ͨ͢͢͠ΊεϙοτΛͱʹ Ҡಈ࣌ؒΛߟྀͨ͠εέδϡʔϧΛࣗಈͰఏҊ
TRIPONE͚ͩͰܭը͕Մೳʂ • ߦ͖͍ͨεϙοτΛબ͢Δ͚ͩͰ ༧ఆཱ͕ͯΒΕΔʂ • ࣗಈͰεέδϡʔϧͷఏҊ • Γ͍ͯͳ͍δϟϯϧͷ ͓͢͢ΊεϙοτͷఏҊ ※ϩέʔγϣϯͷը૾نʹଇͬͯ༻͍ͯ͠·͢
TRIPONE͚ͩͰ݁ʂ • ཱྀߦͷ͓͠ΓΛࣗಈͰ࡞ • λΠϜϥΠϯܗࣜͷ εέδϡʔϧ • ަ௨खஈϚοϓΛ ̍ը໘Ͱશͯ֬ೝ
TRIPONEͰཱྀߦΛຬ٤ʂ • TRIPONE͚ͩͰܭը͕Մೳʂ • TRIPONE͚ͩͰ݁ʂ • ॳΊͯͷॴͰ࣌ؒΛ ࣋ͯ༨͢͜ͱͳཱྀ͘ߦΛຬ٤Մೳʂ
༧ఆͷ伱ؒ࣌ؒΛ Ͳ͏ຒΊΑ͏ ෳΞϓϦͰ ใΛ֬ೝ Ͳ͏͍͏ॱ൪Ͱ εϙοτΛ८Ζ͏ ༷ʑͳใΛऩू ͢Δඞཁ͕ ͓͢͢ΊεϙοτఏҊͰ 伱ؒ࣌ؒΛຒΊΔ͜ͱ͕Ͱ͖Δʂ
ͭͷΞϓϦͰཱྀߦͷܭըΛ શͯྃͰ͖Δʂ εέδϡʔϧఏҊͰ࣌ؒͰ؆୯ʹ εέδϡʔϧΛ࡞Δ͜ͱ͕Ͱ͖Δʂ ͭͷΞϓϦͰཱྀߦͷεϙοτใ Γ͑ҊɺϚοϓΛ֬ೝͰ͖Δʂ
ΞʔΩςΫνϟઆ໌
ΞʔΩςΫνϟͷϙΠϯτ
ΞʔΩςΫνϟͷϙΠϯτ ϑϩϯτΤϯυ • /FYUKTͰ։ൃ • σϓϩΠ"NQMJGZ)PTUJOH • ϚοϓදࣔGCPͷGoogle Maps Platform
ΞʔΩςΫνϟͷϙΠϯτ όοΫΤϯυ • "QQ4ZODʹΑΔAPIཧ • -BNCEBɺ֎෦APIΛୟ͘ ෳࡶͳϩδοΫ • σʔλӬଓԽ%ZOBNP%#
ΞʔΩςΫνϟͷϙΠϯτ CI/CD • "NQMJGZ$POTPMFʹΑΔCI/CDͷࣗಈߏங • productionϒϥϯνʹϚʔδͨ͠ΒCI/CD͕Δ • CI/CDޙSlackʹ௨
AWS Well-Architected Λຬͨ͢ઃܭ ӡ༻ͷ༏लੑ ηΩϡϦςΟ ৴པੑ ύϑΥʔϚϯεޮ ίετ࠷దԽ Amazon CloudWatchやAWS
X-Rayを 用いた監視 クライアントから呼び出される部分 はAWS WAF・Amazon Cognitoで保護 マネージドサービスかつ サーバレスサービスで構成 ࣋ଓՄೳੑ AWS Well-Architected ϑϨʔϜϫʔΫ ϑϨʔϜϫʔΫͷ6ຊͷப ΑΓ
ΞʔΩςΫνϟͷϙΠϯτ ӡ༻ͷ༏लੑ ü "8493BZͰΞϓϦέʔγϣϯͷಈ࡞ੳ ü "NB[PO$MPVE8BUDI-PHT での監視 ü "NB[PO$MPVE8BUDI36. で
クライアント側のエラーも対応 ü "NB[PO 4/4 → "84$IBUCPU Ͱエラー࣌ʹӡ༻ऀ4MBDLʹ௨
Amazon CloudWatch RUM ϑϩϯτΤϯυͷཧ • Τϥʔ • ύϑΥʔϚϯε • Ϣʔβʔͷߦಈ
ΤϥʔΛSlackʹ௨ • Amazon CloudWatch • Amazon SNS • AWS Chatbot
ͰόοΫΤϯυͷΤϥʔΛ Slackʹ௨͢Δ
ΞʔΩςΫνϟͷϙΠϯτ ηΩϡϦςΟ ü "848"'を使用 ü "NB[PO$PHOJUPの使用 ü AWS KMSͱAWS Systems
Manager Paramater StoreΛ ซ༻ͯ͠APIΩʔΛ҉߸Խอଘ
ΞʔΩςΫνϟͷϙΠϯτ • ৴པੑ • ύϑΥʔϚϯεޮ • ίετ࠷దԽ • ࣋ଓՄೳੑ ʹ͍ͭͯߟྀ
ü ϚωʔδυαʔϏε ü αʔόϨεαʔϏε
ΞʔΩςΫνϟͷϙΠϯτ ϚωʔδυαʔϏεͱαʔόϨεαʔϏε Λ͏ར ü αʔόཧͷෛ୲ΛݮΒ͢ ü パフォーマンスが自動的に維持 ü ίετͷ࠷దԽ ü
ίϯϐϡʔλϦιʔε͕࠷దԽ͞ΕΔͷͰ ڥͷෛ୲͕ݮΔ
ΞʔΩςΫνϟͷϙΠϯτ
ಈ࡞σϞ
νʔϜ։ൃͷ
ேձ/༦ձͰԁͳίϛϡχέʔγϣϯ • νʔϜேձ༦ձΛ։͍ͨ • ใڞ༗ɺ࡞ۀํɾαʔϏε༰ͷೝࣝ߹Θͤ • ΞΠεϒϨΠΫͰࡶஊଅਐ • ʮٳΈͷͷ༧ఆʁʯʮࠓΓͨ͜͠ͱʯ
શһͰڞ༗͖͢ใͷՄࢹԽ • λεΫɺࢿྉΛ /PUJPOͰҰݩཧ • ͲΜͳ࡞ۀΛ͔ͨ͠ʁ ͕ޙͰ֬ೝͰ͖Δ • ੵۃతͳࢿྉɾυΩϡϝϯτͷ࡞ •
ேձ༦ձͷ༰ɺσβΠϯɺ"1*ઃܭɾɾɾ • ҉ͷྃղΛۃྗഉআ͢Δ
࣮ʹ͍ͭͯͷ • ϑϩϯτΤϯυ͔Β։ൃ͢Δ • ։ൃܦݧ͋Γ "84ܦݧͳ͠ͳͷͰ • ը໘͕͋Εೝࣝ߹Θָͤ • ϞϒϓϩͳͲ୲࡞ۀ
• dਓͰ࡞ۀͯ͠ਫ਼Λ্͛Δ
ࠓޙͷల
ϦϦʔεܭը Ќ൛ W WY • ཱྀߦͷΤΩεύʔτΞϓϦ ʮTRIPONEʯϦϦʔεʂ
• ؼΓཱྀߦͷΈରԠ • ෳఔͷཱྀߦʹରԠ • όάमਖ਼ • ͓͢͢ΊεϙοτఏҊػೳͷ ਫ਼্ • εέδϡʔϧఏҊػೳͷ ਫ਼্ • ͓͠Γͷڞ༗ػೳͷՃ • ࢥ͍ग़هػೳͷՃ • おすすめスポット提案に かかる時間の短縮
ϏδωεϞσϧ εϙϯαʔγοϓ Ø εϙϯαʔ͓͢͢Ίεϙοτʹදࣔ͞Ε͘͢ͳΔ σʔλϚωλΠζ Øར༻ऀ͝ͱͷཱྀߦσʔλを他の企業にఏڙ͢Δことで 対価として収益ΛಘΔ ܖྉ σʔλఏڙ ཱྀߦܥاۀ
TRIPONE τϦϙϯ
·ͱΊ ސ٬՝ • 伱ؒ࣌ؒΛ͍͍ײ͡ʹຒΊ͍ͨ • ޮͷྑ͍ॱ൪ͰεϙοτΛճΓ͍ͨ • ࣄલܭըͷใ֬ೝΛ ͭͷΞϓϦͰ͍݁ͨ͠ •
ܭըʹ࣌ؒΛ͔͚ա͗ͣɺαΫοͱ ऴΘΒ͍ͤͨ TRIPONEͷ֓ཁ • ཱྀߦεέδϡʔϧͷఏҊ • ͓͢͢ΊεϙοτͷఏҊ • ͓͠Γͷࣗಈ࡞ • ͓͠Γͷ֬ೝը໘ͰͰ͖Δ ॳΊͯͷॴͰ࣌ؒΛ࣋ͯ༨͢͜ͱͳཱྀ͘ߦΛຬ٤Ͱ͖Δʂʂ