$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
APIへのアクセスが急増して慌てた話 / We Should Know our Applica...
Search
Takeshi Nakamoto
July 04, 2018
Programming
0
780
APIへのアクセスが急増して慌てた話 / We Should Know our Application Performance
Takeshi Nakamoto
July 04, 2018
Tweet
Share
More Decks by Takeshi Nakamoto
See All by Takeshi Nakamoto
JJUG-2018-Fall-MF2
tksh_n6o
0
610
Other Decks in Programming
See All in Programming
re:Invent 2025 のイケてるサービスを紹介する
maroon1st
0
150
Jetpack XR SDKから紐解くAndroid XR開発と技術選定のヒント / about-androidxr-and-jetpack-xr-sdk
drumath2237
1
190
AIコーディングエージェント(Gemini)
kondai24
0
270
Deno Tunnel を使ってみた話
kamekyame
0
240
実は歴史的なアップデートだと思う AWS Interconnect - multicloud
maroon1st
0
260
Spinner 軸ズレ現象を調べたらレンダリング深淵に飲まれた #レバテックMeetup
bengo4com
0
170
モデル駆動設計をやってみようワークショップ開催報告(Modeling Forum2025) / model driven design workshop report
haru860
0
280
tsgolintはいかにしてtypescript-goの非公開APIを呼び出しているのか
syumai
7
2.3k
Patterns of Patterns
denyspoltorak
0
310
愛される翻訳の秘訣
kishikawakatsumi
3
340
AI 駆動開発ライフサイクル(AI-DLC):ソフトウェアエンジニアリングの再構築 / AI-DLC Introduction
kanamasa
11
3.8k
開発に寄りそう自動テストの実現
goyoki
2
1.4k
Featured
See All Featured
Thoughts on Productivity
jonyablonski
73
5k
GraphQLの誤解/rethinking-graphql
sonatard
73
11k
Chasing Engaging Ingredients in Design
codingconduct
0
84
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
1
210
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
37
2.7k
HDC tutorial
michielstock
0
260
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.8k
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
Prompt Engineering for Job Search
mfonobong
0
120
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.5k
Amusing Abliteration
ianozsvald
0
69
Deep Space Network (abreviated)
tonyrice
0
21
Transcript
APIͷΞΫηε͕ٸ૿ͯ͠߄ͯͨ 2018/06/29 Minami Aoyama Night#6 தຊ ࢤ 1
ࣗݾհ தຊࢤʢͳ͔ͱ͚ͨ͠ʣ גࣜձࣾϚωʔϑΥϫʔυʢʙʣ αʔόʔαΠυΤϯδχΞʢ+BWBʣ ੩Ԭݝॣ౦܊ઘொࡏॅ 2
ઘொ ɾࡾౡӺʙాொӺ࣌ؒ ͩ͜·ͷΈ ɾࢠҭͯࢧԉΛܝ͍͛ͯΔ ग़ੜ͕੩Ԭݝτοϓ ɾڈʮ͞Θ͔ʯ͕Ͱ͖·ͨ͠ 3
ຊͷ༰ ˔ ϚωʔϑΥϫʔυͱΞάϦήʔγϣϯγεςϜͷհ ˔ ಥવͷෛՙ૿ͰγεςϜ͕ࢭ·Γ͔͚ͨ࣌ʹͨ͜͠ͱ ˔ ࢭ·Βͳ͍Α͏ʹ͢ΔͨΊʹͨ͜͠ͱ ˔ ·ͱΊ 4
ຊͷ༰ ˔ ϚωʔϑΥϫʔυͱΞάϦήʔγϣϯγεςϜͷհ ˔ ಥવͷෛՙ૿ͰγεςϜ͕ࢭ·Γ͔͚ͨ࣌ʹͨ͜͠ͱ ˔ ࢭ·Βͳ͍Α͏ʹ͢ΔͨΊʹͨ͜͠ͱ ˔ ·ͱΊ 5
ϚωʔϑΥϫʔυʹ͍ͭͯ ʮ͓ۚΛલɻਓੜΛͬͱલɻʯͱ͍͏ϛογϣϯʹͱ͖ͮɺ ݸਓ๏ਓɺͯ͢ͷਓͷ͓ۚͷ՝Λղܾ͢ΔαʔϏεΛఏڙ͍ͯ͠·͢ɻ 6
ΞΧϯτΞάϦήʔγϣϯͱ ిࢠϚωʔ EC ূ݊ ۜߦ ɾߴɺೖग़ۚ໌ࡉ 0000-0000-0000-0000 0000-0000-0000-0000 ΫϨδοτΧʔυ ɾ໌ࡉɺར༻ߴ
ɾҾམɾֹ ɾϙδγϣϯ ɾߪೖཤྺ ɾར༻ཤྺ Ϗδωε ɾച্ใ 7
ΞάϦήʔγϣϯγεςϜͷߏ ΞάϦ%# ΞάϦ ϓϩμΫτ܈ ֤ۚ༥ػؔ : σʔλͷྲྀΕ … BEFORE 8
ΞάϦήʔγϣϯγεςϜͷߏ ΞάϦ%# ΞάϦ ϓϩμΫτ܈ ֤ۚ༥ػؔ : σʔλͷྲྀΕ … BEFORE ͍Ζ͍ΖπϥΠʜ
9
ΞάϦήʔγϣϯγεςϜͷߏ ΞάϦ%# ΞάϦ ϓϩμΫτ܈ ֤ۚ༥ػؔ : σʔλͷྲྀΕ AFTER ΞάϦ API
"1*ܦ༝ʹ౷Ұ … 10
ΞάϦήʔγϣϯγεςϜͷߏ ΞάϦ%# ΞάϦ ϓϩμΫτ܈ ֤ۚ༥ػؔ : σʔλͷྲྀΕ AFTER ΞάϦ API
… ࠓճίίͷ 11
ຊͷ༰ ˔ ϚωʔϑΥϫʔυͱΞάϦήʔγϣϯγεςϜͷհ ˔ ಥવͷෛՙ૿ͰγεςϜ͕ࢭ·Γ͔͚ͨ࣌ʹͨ͜͠ͱ ˔ ࢭ·Βͳ͍Α͏ʹ͢ΔͨΊʹͨ͜͠ͱ ˔ ·ͱΊ 12
ಥવͷ503 ˔ ಥαʔϏε͔ΒΞϥʔτ͕͘ΔʢΤϥʔϖʔδΛฦ͢ʣ ˓ ͜ͷ࣌ͰΞάϦ"1*ͷύϑΥʔϚϯε͕ྼԽ͍ͯ͠Δೝࣝͳ͠ ˔ ଞͷ։ൃऀ͕ௐࠪͯ͠ɺΞάϦ"1*͕Ϋοι͍ͱ࿈བྷ͕͋Δ ˓ ͜ͷ࣌ͰॳΊͯμογϡϘʔυΛ֬ೝ ˔
ݟͨ͜ͱͷͳ͍άϥϑΛ֬ೝ ˓ ୈҰใ͔Β΄Ͳܦա -PBE"WFSBHF 13
ॳಈͷল ˔ ϦϦʔε࡞ۀͳͲΛ͍ͯ͠ͳ͍ͷͰͳ͍ͱࢥ͍͜ΜͰ͍ͨ ˓ ͔ͤͬ͘༻ҙ͍ͯ͠ΔμογϡϘʔυ͢Βݟͯͳ͔ͬͨ 14
ௐࠪ & ϦϦʔε ˔ /FX3FMJD%BUB%PHΛݟͯ%#ίωΫγϣϯपΓͰ٧·ͬͯͦ͏ ˓ %#ෛՙΛ্͛ͳ͍Α͏ߜͬͯಈ͔͍ͯͨ͠ ˔ ͍ͬͨΜϓʔϧΛ૿͢ϦϦʔεΛߦ͏ ˔
ϦϦʔε͕ྃ͠ɺ"1*͕ਖ਼ৗʹϨεϙϯεΛฦ͢Α͏ʹͳΔ ˓ ͨͩɺϦϦʔεͷӨڹͱ͍͏ΑΓɺෛՙͷϐʔΫΛա͗ͨ͜ͱ͕େ͖͔ͬͨ ˔ ୈҰใ͔Β࣌ؒ΄ͲͰฏৗ௨Γͷঢ়ଶʹͳͬͨ 15
ෆதͷ͍ ˔ "1.ʢ/FX3FMJDʣΛ͍ͬͯͨͷͰͱΓ͋͑ͣͷରԠ͕Ͱ͖ͨ ˔ ϝτϦΫεϞχλϦϯάʢ%BUB%PHʣ͍ͯͨ͠ͷͰ ޙ͔ΒͲΜͳঢ়ଶͩͬͨͷ͔Λ؍͢Δ͜ͱ͕Ͱ͖ͨ ˔ Ϩεϙϯε͘ͳ͕ͬͨɺશʹఀࢭ͠ͳ͔ͬͨ 16
ෛՙ૿ͷݪҼ ˔ .'͕৽͘͠࿈ܞΛ։࢝ͨ͠αʔϏε͔Βͷྲྀೖ૿ ˓ ࿈ܞઌͷϢʔβʔ͚ʹΩϟϯϖʔϯ͕ߦΘΕ͍ͯͨ ˓ ࣄલͷڞ༗͕ͪΌΜͱͰ͖ͯͳ͔ͬͨ ˔ ௨ৗ࣌ͷഒ΄ͲͷϦΫΤετ૿ ˓
ϐʔΫ࣌ͷഒ 17
ຊͷ༰ ˔ ϚωʔϑΥϫʔυͱΞάϦήʔγϣϯγεςϜͷհ ˔ ಥવͷෛՙ૿ͰγεςϜ͕ࢭ·Γ͔͚ͨ࣌ʹͨ͜͠ͱ ˔ ࢭ·Βͳ͍Α͏ʹ͢ΔͨΊʹͨ͜͠ͱ ˔ ·ͱΊ 18
·ͣௐࠪɺͷલʹ ˔ ࣮͜ͷલʹߴෛՙʹͳΓαʔϏε͕ෆ҆ఆʹͳ͍ͬͯͨ ˔ ϦΫΤετ૿ՃʹΑΓɺ%#͕͘ͳΓɺͭΒΕͯ"1*͘ͳͬͨ ˔ εϩʔΫΤϦվળ ˔ ࢭΊͯྑ͍ॲཧΛࢭΊΔ ˔
"1*αʔόʔ૿͞ͳ͍ͱ -PBE"WFSBHF 19
DataDogͷμογϡϘʔυ 20
·ͣௐࠪ ˔ /FX3FMJD%BUB%PHΞϓϦέʔγϣϯϩάΛ֬ೝ ˓ %#ͷෛՙͦΜͳͰͳ͍ ˓ "1*αʔόʔͷ$16ෛՙ͕ߴ͔ͬͨ ˓ ίωΫγϣϯϓʔϧ͔ΒίωΫγϣϯΛऔಘ͢Δ͕ͪ࣌ؒଟ͔ͬͨ ˔
αʔόʔͷੑೳ͕͋·Γߴ͘ͳ͔ͬͨͷͰॲཧ͖͠Εͳ͔ͬͨͱ݁ ˓ εέʔϧΞοϓͱಉ࣌ʹɺ૿͢ 21
ࠓޙͲ͏͢Δ͔ ˔ ΩϟϯϖʔϯͳͲ͕͋Δͱ͖͋Β͔͡Ί࿈བྷͯ͠Β͏ ˔ ͕ͩɺࣄલʹڞ༗ͯ͠ΒͬͨϦΫΤετ૿ʹ͑ΒΕΔͷ͔ʁʁ ˔ ͦ͏ͩɺෛՙςετ͠Α͏ 22
ෛՙςετ ˔ϦΫΤετϩάΛ࠶ੜͯ͠ͷαʔόʔʹෛՙΛ͔͚Δ ˔ෛՙΛ͔͚ΔαʔόʔͷΛ૿ͯ͠ϦΫΤετ૿Λ࠶ݱ͢Δ ˔͖͍͠Λ୳͢ ˓ͲΕ͘Β͍ͷϦΫΤετͳΒීஈͲ͓ΓॲཧͰ͖Δͷ͔ ˓ෛՙ͕૿͑ͨͱ͖ʹͲͷϦιʔε͕࠷ॳʹݶքʹͳΔͷ͔ ˔ςετछྨߦͬͨ ˓%#ίωΫγϣϯͷͱ͖ʹͲΕ͚ͩॲཧͰ͖Δ͔ ˓%#ίωΫγϣϯͷͱ͖ʹͲΕ͚ͩॲཧͰ͖Δ͔ 23
ෛՙςετ GitHub - tsenart/vegeta: HTTP load testing tool and library
˔ બΜͩཧ༝ ˓ ϦΫΤετϩάΛ࠶ੜͰ͖Δʢ؆୯ʂʣ ˓ ͙͑͢ΔʢόΠφϦஔ͚ͩ͘ʂʣ ˓ $-*Ͱૢ࡞Ͱ͖ΔʢεΫϦϓτͰ੍ޚͰ͖Δʂʣ 24
ෛՙςετ ˔ ؒʹຊ൪αʔόʔͰςετ ˓ ࣮ࡍͷαʔόʔͰੑೳΛݟ͔ͨͬͨ ˔ ෛՙΛͩΜͩΜ૿͍ͯ͘͠ • ݁Ռ%BUB%PHͰޙ͔Β֬ೝ ˓
͍͢͝ศརͩͬͨ vegeta API vegeta vegeta … 25
ෛՙςετ 100 0 CPUར༻ 26
ෛՙςετ • ҆ఆͯ͠ॲཧͰ͖ΔϦΫΤετͷ্ݶΛΔͨΊͷςετ ◦ ஈ֊తʹෛՙΛ૿͢ ◦ Ϩεϙϯε͕ѱԽͨ͠Βऴྃ 100 0 CPUར༻
27
ෛՙςετ • DBίωΫγϣϯ1ͭͰ҆ఆͯ͠ॲཧͰ͖ΔϦΫΤετͷ্ݶΛΔͨΊͷςετ ◦ ஈ֊తʹෛՙΛ૿͢ ◦ Ϩεϙϯε͕ѱԽͨ͠Βऴྃ 100 0 CPUར༻
28
ෛՙςετͷͦͷޙ ˔ ίωΫγϣϯͰॲཧͰ͖ΔϦΫΤετ͕ग़ͨ ˔ ίωΫγϣϯͭ͋ͨΓͰॲཧͰ͖ΔϦΫΤετ͕ग़ͨ ˓ ίωΫγϣϯͷϦΫΤετΛॲཧͰ͖͍ͯͳ͍ ˔ %#·ͩ༨༟͕͋Γͦ͏ ˓
ͬͺΓ$16͕ϘτϧωοΫͬΆ͍ ˓ αʔόʔͷεέʔϧΞοϓ ˓ ແବͳίʔυ͕ͳ͍͔ௐࠪ 29
ͦͷޙͰͬͨ͜ͱ ˔ ෛՙςετͰܾΊ͖͍ͨ͠ʹԠͨ͡Ξϥʔτ ˔ ίʔυͷݟ͠ ˓ ϨεϙϯελΠϜ͕ʹ ˔ %#ͷ ˔
ෛՙςετճ ˓ தʹΦϯϥΠϯͰ࣮ࢪ ˓ εϧʔϓοτഒʹͳͬͯͨ ˔ ল ˓ ٸʹϦΫΤετ͕૿͑ͨܦݧ͕ॳΊͯͩͬͨ 30
ຊͷ༰ ˔ ϚωʔϑΥϫʔυͱΞάϦήʔγϣϯγεςϜͷհ ˔ ಥવͷෛՙ૿ͰγεςϜ͕ࢭ·Γ͔͚ͨ࣌ʹͨ͜͠ͱ ˔ ࢭ·Βͳ͍Α͏ʹ͢ΔͨΊʹͨ͜͠ͱ ˔ ·ͱΊ 31
·ͱΊ ˔ ΞϓϦέʔγϣϯͷੑೳΛ۩ମతͳͰѲ͢Δ ˓ ҆ఆՔಇ͢ΔͷͲͷ͘Β͍͔ ˓ ҆ఆՔಇ͠ͳ͘ͳΔϘτϧωοΫԿͳͷ͔ ˔ αʔϏεଆͷΠϕϯτΛѲ͓ͯ͘͠ʢίϛϡχέʔγϣϯʣ ˓
όοΫΤϯυಛʹ ˔ γεςϜঢ়ଶΛՄࢹԽ͓ͯ͘͠ͱେมศར 32
Thank you! 33