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
サーバレスアーキテクチャのパフォーマンスチューニング
Search
Kazutomo Niwa
October 22, 2016
Technology
16
7.6k
サーバレスアーキテクチャのパフォーマンスチューニング
JAWS Festa 東海道 2016 の登壇資料です。
こちらもご参照ください →
https://gs2.io/
Kazutomo Niwa
October 22, 2016
Tweet
Share
More Decks by Kazutomo Niwa
See All by Kazutomo Niwa
Amazon Event Bridge による次世代の Pub/Sub
kazutomo
0
1.9k
DynamoDB のインデックス再編事例
kazutomo
2
820
Production-ready Amazon Event Bridge
kazutomo
2
1k
もうそこまで迫っている! Cloud2.0 時代の開発
kazutomo
3
1.7k
Game Server Services ではじめる サーバ開発運用しないゲーム開発
kazutomo
1
7.3k
Cloud2.0時代のゲーム開発を支えるGS2
kazutomo
1
2.1k
Unityネットワーク完全に理解した.pdf
kazutomo
3
3.1k
サーバレスアプリケーションの監視・運用
kazutomo
13
6.5k
ゼロからサーバレスの先頭に追いつこう
kazutomo
25
12k
Other Decks in Technology
See All in Technology
JEDAI Meetup! Databricks AI/BI概要
databricksjapan
0
110
リアルタイム分析データベースで実現する SQLベースのオブザーバビリティ
mikimatsumoto
0
1.4k
PHPで印刷所に入稿できる名札データを作る / Generating Print-Ready Name Tag Data with PHP
tomzoh
0
110
Helm , Kustomize に代わる !? 次世代 k8s パッケージマネージャー Glasskube 入門 / glasskube-entry
parupappa2929
0
250
次世代KYC活動報告 / 20250219-BizDay17-KYC-nextgen
oidfj
0
260
AndroidデバイスにFTPサーバを建立する
e10dokup
0
250
白金鉱業Meetup Vol.17_あるデータサイエンティストのデータマネジメントとの向き合い方
brainpadpr
6
760
エンジニアの育成を支える爆速フィードバック文化
sansantech
PRO
3
1.1k
現場の種を事業の芽にする - エンジニア主導のイノベーションを事業戦略に装着する方法 -
kzkmaeda
2
2.1k
開発組織のための セキュアコーディング研修の始め方
flatt_security
3
2.4k
プロセス改善による品質向上事例
tomasagi
2
2.6k
室長と気ままに学ぶマイクロソフトのビジネスアプリケーションとビジネスプロセス
ryoheig0405
0
370
Featured
See All Featured
Side Projects
sachag
452
42k
GraphQLの誤解/rethinking-graphql
sonatard
68
10k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
129
19k
Making Projects Easy
brettharned
116
6k
A Philosophy of Restraint
colly
203
16k
Optimizing for Happiness
mojombo
376
70k
It's Worth the Effort
3n
184
28k
Docker and Python
trallard
44
3.3k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2.1k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Documentation Writing (for coders)
carmenintech
67
4.6k
Measuring & Analyzing Core Web Vitals
bluesmoon
6
240
Transcript
αʔόϨεΞʔΩςΫνϟͷ ύϑΥʔϚϯενϡʔχϯά +"84 'FTUB ౦ւಓ (BNF4FSWFS4FSWJDFTגࣜձࣾ දऔకࣾ$&0୮Ӌ Ұஐ
ࣗݾհ (BNF4FSWFS4FSWJDFTגࣜձࣾ ݄ۀ දऔకࣾ$&0୮Ӌ ҰஐʢʹΘ ͔ͣͱʣ גࣜձࣾηΨೖࣾ ܞଳి͚ήʔϜɾαʔό։ൃʹैࣄ
ఱಊגࣜձࣾೖࣾ ϙέϞϯɾϚϦΦΧʔτΛ͡Ίͱͨ͠ ήʔϜαʔό։ൃɾӡ༻ʹैࣄ
Game Server Services(GS2) とは εϚϗήʔϜϒϥβήʔϜͷඞཁͱ͢Δػೳͷ͏ͪɺ • ϚονϝΠΩϯά • ϥϯΩϯά •
ϝʔϧϘοΫεʢϓϨθϯτϘοΫεʣ • ελϛφཧ ͱ͍ͬͨɺΑ͋͘ΔػೳΛ .JDSP4FSWJDFTԽ͠ɺ 4FSWFSMFTTͰઃܭɾ࣮͠ɺҰ࣌ؒԁʙͰར༻Ͱ͖Δͱ ͍͏"84ͷΑ͏ͳαʔϏεͰ͢ɻ
ςʔϚ αʔόϨεΞʔΩςΫνϟͰઃܭͨ͠8&#αʔόͰ Ͳ͜·ͰϨΠςϯγΛݮΒ͢͜ͱ͕ग़དྷΔ͔ɻ Λٻ͢Δ͜ͱͰɺͲ͕͜ϘτϧωοΫʹͳΔͷ͔ΛৄΒ͔ ʹ͠·͢ɻ
ཁ݅ • αʔόϨεΞʔΩςΫνϟ • "84Λ͏ • %#ͷΛॻ͖͑ͨΓಡΈࠐΜͩΓ͢Δ • ಠࣗυϝΠϯ •
)5514ʢͳΔ҆͘͘ͳΒΜ͚ʁʣ
ΞʔΩςΫνϟ Amazon CloudFront ACM Amazon API Gateway AWS Lambda Amazon
VPC Amazon RDS Amazon Route 53
ϓϩάϥϜ
ॳճΞΫηε࣌ ճࢼߦɻ্ԼΛΓࣺͯ ճΛ࠾༻ ɻ ฏۉ TFD தԝTFD ճҎ߱ ฏۉ TFD
தԝTFD
ඵͪΐͬͱʜ ճͷΞΫηεطʹىಈ͞ΕͨίϯςφΛ͍·Θ͢ͷ Ͱɺൺֱతૣ͘Ԡͯ͘͠Ε·ͨ͠ɻ ճͷ NT߹ʹΑͬͯ·ͩڐ༰Ͱ͖Δ͔͠Ε ͳ͍͚ΕͲɺॳճͷ TFDྲྀੴʹͪΐͬͱʜɻ
71$Λ૭͔Βࣺ͛ͯΔ 71$ͷ3%4ʹΞΫηε͍ͯ͠Δ͕ɺ71$ͷׂ&/*ͷ࡞ ͱׂ͕ඞཁͱͳΔͷͰɺ͍ɻ
ΞʔΩςΫνϟ Amazon CloudFront ACM Amazon API Gateway AWS Lambda Amazon
RDS Amazon Route 53
ॳճΞΫηε࣌ ฏۉ TFD தԝTFD ʊਓਓਓਓਓਓਓਓਓਓਓਓʊ ʼ ͋Μ·มΘΒΜ͔ͬͨ ʻ ʉ:?:?:?:?:?:?:?:?:?:ʉ ͜ͷ͋ͱग़ͯ͘Δ+BWBͷ7.ىಈͱ
&/*ͷׂ͕ฒྻͰಈ͍ͯΔ͔Β͔
ηΩϡϦςΟతʹʜ -BNCEBͷ*1ΞυϨεݻఆͰ͖ͳ͍ɻ .Z42-ͷύεϫʔυೝূ͚ͩͰͪΐͬͱෆ͔҆ɻ
ΞʔΩςΫνϟ Amazon CloudFront ACM Amazon API Gateway AWS Lambda Amazon
DynamoDB Amazon Route 53
ϓϩάϥϜ
ॳճΞΫηε࣌ ฏۉ TFD தԝ TFD %ZOBNP%# ʹͨ͜͠ͱͰɺ͘ͳͬͯ͠·ͬͨɻ ͜Ε "844%,ͷॳظԽॲཧ͕ॏ͕͔͔ͯ࣌ؒ͘Δ͜ͱ ʹىҼ͍ͯ͠Δɻ
ͳΜʹͯ͠ɺࠓͷΓํͰݫ͕͋͠͞Δɻ
+BWBΛ૭͔Βࣺ͛ͯΔ +BWB7.ͷىಈʹ͕͔͔࣌ؒΔɻͦͷͨΊɺॳճΞΫηε ࣌ʹ͕͔͔࣌ؒͬͯ͠·͏ɻ
ΞʔΩςΫνϟ Amazon CloudFront ACM Amazon API Gateway AWS Lambda Amazon
DynamoDB Amazon Route 53
ϓϩάϥϜ
ॳճΞΫηε࣌ ฏۉ TFD தԝ TFD ճҎ߱ ฏۉ TFD தԝ TFD
ॳճͰඵʹ 1ZUIPOʹͨ͜͠ͱͰىಈͷΦʔόʔϔου͕ܹݮͯ͠ɺॳ ճΞΫηε࣌ͰඵʹͳΓ·ͨ͠ɻ
$MPVE'SPOU "$. Λ૭͔Βࣺ͛ͯΔ 4MBDLͷࣄྫ IUUQXXXTMJEFTIBSFOFU"NB[PO8FC4FSWJDFTTFDVSFEBQJBDDFMFSBUJPO XJUIFOHJOFFSTGSPNBNB[PODMPVEGSPOUBOETMBDL 1 ͷΑ͏ʹɺ୯ҰϦʔδϣ ϯͰϫʔϧυϫΠυʹαʔϏεΛల։͍ͯ͠Δ߹ɺւΛ ͑ΔΑ͏ͳέʔεͰɺ$MPVE'SPOUˠΦϦδϯ
&$ Ͱ"84 ͷଠ͍όοΫϘʔϯʹΑΔߴ௨৴ʹΑΓϨΠςϯγ͕վળ ͢Δ͜ͱ͕͋Γ·͢ɻ ࠓճͷϢʔεέʔεͰΩϟογϡώοτظ͠·ͤΜ͠ɺ ϗοϓ͕૿͑Δ͜ͱʹΑΔϨΠςϯγ૿ͷѱӨڹ͕େ͖͍ ͷͰɺ$MPVE'SPOU Λύʔδ͠·͢ɻ
ΧελϜυϝΠϯΛઃఆ ͨͩ $MPVE'SPOU Λ֎͚ͩͩ͢ͱɺυϝΠϯ͕ "1*(BUFXBZؙग़͠Ͱ͔ͬ͜ѱ͍ͷͰɺ-FUT`T &ODSZQUͰ औͬͨαʔόূ໌ॻΛͬͯΧελϜυϝΠϯΛઃఆ͠·͢ɻ
ΞʔΩςΫνϟ Amazon API Gateway AWS Lambda Amazon DynamoDB Amazon Route
53
ॳճΞΫηε࣌ ฏۉ TFD தԝ TFD ճҎ߱ ฏۉ TFD தԝ TFD
ʙNTॖ $MPVE'SPOU Λ֎ͨ͜͠ͱͰɺʙNT͘ͳΓ·͠ ͨɻ "1*(BUFXBZ࣮ଶ $MPVE'SPOUɻ ˠ$%/͕ஈߏʹɻ ˠΤοδϩʔέʔγϣϯఆ͕೦ʹͳͬͯΔ͔ɻ
"844%,ͷॳظԽΛ GVODUJPOͷ֎ʹ "84 4%,ͷॳظԽΘΓͱ͕͔͔࣌ؒΔͷͰɺΞΫηε͢ Δʹ࣮ߦ͢ΔͷͰͳ͘ɺىಈ࣌ʹճ͚ͩ͢ΔΑ͏ʹ͢ Δɻ ͜ΕͰɺճҎ߱ͷԠ্͕͢Δɻ
ϓϩάϥϜ
ॳճΞΫηε࣌ ฏۉ TFD தԝ TFD ճҎ߱ ฏۉ TFD தԝ TFD
ʙNTॖ "84 4%,ͷॳظԽΛϑΝϯΫγϣϯͷ࣮ߦຖʹߦΘͣɺॳ ճʹͷΈߦ͏Α͏ʹͨ͜͠ͱͰɺίϯςφͷ͍ճ͚ͩ͠Ͱ ͳ͘ɺΫϥΠΞϯτΠϯελϯεͷ͍ճ͠ͷޮՌͰճ Ҏ߱ͷॲཧ͕࣌ؒૣ͘ͳΓ·ͨ͠ɻ ॳճ·Ͱ͘ͳͬͯΔͷϛεςϦʔͰ͢ɻ GVODUJPOݺͼग़͠·ͰϝϞϦׂΓͯྔʹΑΒͣϑϧύϫ ʔͰىಈͯ͘͠ΕͯΔʁ ʢࠓճ+BWB.#1ZUIPO.#ͱ͍͏࠷খαΠζͰܭଌ͍ͯ͠·͢ʣ
༨ஊ AWS Lambda Amazon DynamoDB AWS SDK
༨ஊ ϓϩάϥϜ
ॳճΞΫηε࣌ ฏۉ TFD தԝ TFD ճҎ߱ ฏۉ TFD தԝ TFD
NTΛΔ݁Ռʹʢ͕ͩɺ8&#αʔόͰͳ͍ "1*(BUFXBZ࣮ଶ $MPVE'SPOU ͳͷͰ ʢIUUQXXXTMJEFTIBSFOFULFJTVLFBXTMBNCEBBNB[POBQJHBUFXBZEFFQEJWF 1ʣ ɺ "1*(BUFXBZ $MPVE'SPOU ͱಉ༷ͷΛ๊͍͑ͯΔɻ
݁Ռɺ"1*(BUFXBZΛඈ͢͜ͱͰɺ͞Βʹʙ NTͷॖ͕Ͱ͖ͨɻ
·ͱΊ 100ms ~ 200ms 3000ms ~ 4000ms 3000ms ~ 4000ms
100ms 〜 300ms(割当メモリに左右) 100ms ~ 200ms Amazon CloudFront Amazon API Gateway Elastic Network Interface "844%, ॳظԽ
·ͱΊ +BWB ىಈ͕͍ɻ ˠىಈͨ͋͠ͱരͩΑʂ͑ͳ͍ࢠͩͱצҧ͍͠ͳ͍Ͱʂ $MPVE'SPOU ΛڬΉͱ͘ͳͬͨɻ ˠ"84͞Μɻ"1*(BUFXBZͰ"$.͑ΔΑ͏ʹ͍ͯͩ͘͠͞ɻ $MPVE'SPOU Λൈ͍ͯߴԽͯ͠ "1*(BUFXBZ͕ʜɻ
ˠ"84͞ΜɻͳΜͱ͔ߴԽ͍ͯͩ͘͠͞ɻ "844%,ͷ"1*ΫϥΠΞϯτΠϯελϯεੜҙ֎ͱ͍ɻ
એ (4 Ͱ͜ͷΑ͏ͳɺαʔόϨεΞʔΩςΫνϟಛ༗ͷಛੑ ΛѲ্ͨ͠ͰύϑΥʔϚϯενϡʔχϯάΛ֤ॴͰߦͬͯ ͍·͢ɻ (4 Λར༻͢Δ͜ͱͰɺࣗ͝Ͱ͜ͷΑ͏ͳνϡʔχϯάΛ ߦΘͳͯ͘࠷దԽ͞ΕͨαʔϏεΛ͝ར༻͍͚ͨͩ·͢ɻ ੋඇɺ(4ͷ࠾༻͝ݕ౼͍ͩ͘͞ɻ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ IUUQTHTJP ϕʔλςετࢀՃऀืूதʂ