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
Aerospike を導入してみた話 / Consideration about Aerospike
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
mats
June 24, 2015
Technology
0
43
Aerospike を導入してみた話 / Consideration about Aerospike
Aerospike Deep Diveで使用した資料です。
mats
June 24, 2015
Tweet
Share
More Decks by mats
See All by mats
「生成系AI」と「ソフトウェアライセンス」の今 / Generative AI and OSS License
mats16
4
2.3k
🦜️🔗LangChain入門 / LangChain 101
mats16
1
670
Supabase - AWS DevDay 2022
mats16
3
2.1k
AWS スタートアップ支援プログラム / AWS Activate
mats16
0
1.3k
AWS Startup ゼミ 2021 秋期講習 / AWS Startup Seminar 2021 Autumn class - AWS Dev Day
mats16
4
2.6k
Unicorns run on AWS
mats16
0
310
AWS Startup tech Meetup Online 6
mats16
0
1.1k
シードスタートアップに知っておいてほしいこと / What seed startups need to know
mats16
0
390
Introduction to AWS App Runner
mats16
0
1.1k
Other Decks in Technology
See All in Technology
20260208_第66回 コンピュータビジョン勉強会
keiichiito1978
0
140
配列に見る bash と zsh の違い
kazzpapa3
1
150
What happened to RubyGems and what can we learn?
mikemcquaid
0
300
顧客の言葉を、そのまま信じない勇気
yamatai1212
1
350
顧客との商談議事録をみんなで読んで顧客解像度を上げよう
shibayu36
0
240
Oracle Cloud Observability and Management Platform - OCI 運用監視サービス概要 -
oracle4engineer
PRO
2
14k
予期せぬコストの急増を障害のように扱う――「コスト版ポストモーテム」の導入とその後の改善
muziyoshiz
1
1.9k
Introduction to Bill One Development Engineer
sansan33
PRO
0
360
We Built for Predictability; The Workloads Didn’t Care
stahnma
0
140
[CV勉強会@関東 World Model 読み会] Orbis: Overcoming Challenges of Long-Horizon Prediction in Driving World Models (Mousakhan+, NeurIPS 2025)
abemii
0
140
15 years with Rails and DDD (AI Edition)
andrzejkrzywda
0
190
こんなところでも(地味に)活躍するImage Modeさんを知ってるかい?- Image Mode for OpenShift -
tsukaman
0
140
Featured
See All Featured
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
140
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
430
SEOcharity - Dark patterns in SEO and UX: How to avoid them and build a more ethical web
sarafernandez
0
120
So, you think you're a good person
axbom
PRO
2
1.9k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
910
Scaling GitHub
holman
464
140k
Into the Great Unknown - MozCon
thekraken
40
2.3k
The Cult of Friendly URLs
andyhume
79
6.8k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
1.9k
Building Adaptive Systems
keathley
44
2.9k
Embracing the Ebb and Flow
colly
88
5k
Transcript
AerospikeΛಋೖͯ͠Έͨ ʙ ଞKVSͱͷҧ͍ΞϨίϨ ʙ גࣜձࣾΠϯςΟϝʔτɾϚʔδϟʔɹদాथ
ࣗݾհ দా थ גࣜձࣾΠϯςΟϝʔτɾϚʔδϟʔʢࣾһ໊̕ʣ ։ൃຊ෦ • ύϒϦοΫDMPʮAudienceSearchʯͷ։ൃ • ओʹΠϯϑϥपΓΛ୲
ΞδΣϯμ • IMͰͷΘΕํʢಋೖࣄྫʣ • ಋೖ࣌ʹݕ౼ͨ͠ଞͷKVS • ಋೖͯ͠ؾ͍ͮͨ͜ͱ
IMͰͷΘΕํ
IMͰͷΘΕํ • IDSyncαʔϏε • ࣗࣾIDͱଞࣾIDͷϚοϐϯάςʔϒϧͷϗεςΟϯά • ଐੑσʔλͷՃ • ༷ʑͳσʔλιʔε͔Βͷߋ৽ͱδϣΠϯ
IDSyncαʔϏε
IDSyncαʔϏε IDSyncαʔϏεͱ • ࣗࣾIDͱଞࣾIDͷϚοϐϯάςʔϒϧΛੜɺอ࣋ • API͔Βߋ৽ɺࢀরΛߦ͏͜ͱ͕Մೳ • ݱࡏɺ50ࣾҎ্ͷύʔτφʔͱID࿈ܞ
IDSyncαʔϏε ࿈ܞύʔτφʔʢҰ෦ʣ
ྫɿΞϯέʔτͰಛఆͷճΛͨ͠ਓʹࠂ৴ IDSyncαʔϏε IMID ΞϯέʔτύωϧID DoubleClick ID ྫɿࣗࣾαΠτʢΞϓϦʣʹ๚ΕͨਓʹϝʔϧࠂΛ৴ IMID 1st
Party Cookie ʢIDFAʣ E-mail
IDSyncαʔϏε ELB API Aerospike γεςϜ • ϑϩϯτ ELB + Nginx
+ uWSGI • όοΫΤϯυʹAerospikeΛ࠾༻ • ฏۉԠ1ms • ϐʔΫ࣌Ͱ1000req/sఔ
IDSyncαʔϏε ԠʢELBʣ
IDSyncαʔϏε • ओΩʔ͕ࣗࣾIDɺଞࣾIDͦΕͧΕ ͷςʔϒϧΛੜ ELB API {Aࣾ: hoge} "ࣾ *.
IPHF QJZP *. "ࣾ IPHF QJZP Aerospike Set: A_to_IM Set: IM_to_A ※ Set: RDBMSͷςʔϒϧʹ͋ͨΔ
ଐੑσʔλͷՃ
ଐੑσʔλͷՃ Join Server • ༷ʑͳଐੑใΛɺҟͳΔιʔε͔Βऔಘ • IMͰอ͍࣋ͯ͠ΔଐੑใΛਓ͕ར༻Ͱ͖Δܗʹ Ճ͢Δج൘ʹAerospikeΛ࠾༻ •
Ճͨ͠σʔλݕࡧΤϯδϯ͔Βར༻
ଐੑσʔλͷՃ Cookie IDΛओΩʔʹ༷ʑͳଐੑใΛอ࣋ • Ӿཡཤྺʹجͮ͘ʮΩʔϫʔυʯ • ֤ϝσΟΞΑΓఏڙ͞ΕΔʮηάϝϯτʯ • ʮUser Agentʯ
• ΞΫηεݩIPʹجͮ͘ʮॅॴʯʮاۀใʯ • etc…
ଐੑσʔλͷՃ ༷ʑͳଐੑใΛݸผͷSetͰอ࣋ ͦΕͧΕಠཱͯ͠ߋ৽Λߦ͏͜ͱ͕Մೳ *% ηάϝϯτ
*% ΞΫηεݩ*1 *% ϢʔβʔΤʔδΣϯτ .BD4BGBSJ 8JO$ISPNF *1 ಓݝ ౦ژ ւಓ *1 اۀ *. *% Ωʔϫʔυ ԭೄཱྀߦ Ҿͬӽ͠ Set: segment Set: ua Set: keywords Set: ip Set: address Set: company
ଐੑσʔλͷՃ ༷ʑͳଐੑใΛݸผͷSetͰอ࣋ ͦΕͧΕಠཱͯ͠ߋ৽Λߦ͏͜ͱ͕Մೳ *% ΞΫηεݩ*1 *%
ϢʔβʔΤʔδΣϯτ .BD4BGBSJ 8JO$ISPNF Set: ua Set: ip ΞΫηεϩά
ଐੑσʔλͷՃ ༷ʑͳଐੑใΛݸผͷSetͰอ࣋ ͦΕͧΕಠཱͯ͠ߋ৽Λߦ͏͜ͱ͕Մೳ *1 ಓݝ ౦ژ ւಓ *1
اۀ *. Set: address Set: company αΠόʔΤϦΞϦαʔνגࣜձࣾ
ଐੑσʔλͷՃ ༷ʑͳଐੑใΛݸผͷSetͰอ࣋ ͦΕͧΕಠཱͯ͠ߋ৽Λߦ͏͜ͱ͕Մೳ *% Ωʔϫʔυ ԭೄཱྀߦ Ҿͬӽ͠ Set:
keywords ఏܞϝσΟΞ
ଐੑσʔλͷՃ δϣΠϯͯ͠ݕࡧΤϯδϯʹೖͯ͠׆༻ *% ηάϝϯτ ϢʔβʔΤʔδΣϯτ Ωʔϫʔυ ಓݝ اۀ
.BD4BGBSJ ԭೄཱྀߦ ౦ژ *. 8JO$ISPNF Ҿͬӽ͠ ւಓ Join Server
ಋೖ࣌ʹݕ౼ͨ͠ଞͷKVS
ଞͷKVSͱͷൺֱݕ౼ • DynamoDB (AWS) • Redis • Cloud Bigtable (Google)
※ ݕ౼࣌ɺະϦϦʔε
DynamoDB (AWS) • අ༻͕ߴ͍ʢඇϦβʔϒυʣ • 10ສread/sͰɺ130ສԁ/݄ • 10ສwrite/sͰɺ650ສԁ/݄ • ΩϟύγςΟΛ͑ͨϦΫΤετϩετ͢Δ
• ௨ৗखલͰΩϡʔΠϯάͯ͠ରԠ͢ΔΒ͍͠
Redis (ElastiCache) ༻్͝ͱʹRedisΛ͚ͯɺෳฒΔ͜ͱΛఆ • ༰ྔ੍ݶ͋Γʢ࠷େͰ240GBʣ • ౸ୡͨ͠߹ʹସखஈ͕ͳ͍ • ߏங͕ඞཁʹͳΓɺεέʔϧ͠ͳ͍ •
50ࣾͱID࿈ܞ͢Δͷʹ50Πϯελϯεඞཁ
Cloud Bigtable (Google) • ଞͷαʔόGoogle Cloud PlatformʹҠ͞ͳ͍ͱɺ ωοτϫʔΫϨΠςϯγ͕ൃੜ͢Δ • Ԡ͕ରAerospikeൺͰ10ഒʢΒ͍͠ʣ
• Aerospike: 1msҎԼ • Cloud Bigtable: 5ʙ10ms
ಋೖͯ͠ؾ͍ͮͨ͜ͱ
Client͕ߴػೳ • Ϩίʔυ͕Ͳͷϊʔυʹஔ͞Ε ͍ͯΔ͔Ѳ͍ͯ͠Δ • ओΩʔͷϋογϡΛར༻ • ίωΫγϣϯཱ֬࣌ʹɺϚοϐϯά ςʔϒϧΛऔಘ͢Δ •
Ϛοϐϯάςʔϒϧɺϊʔυͷ Ճআ࣌ʹ࠶ܭࢉ͞ΕΔ Client
Clientύϫʔ͕ඞཁ • AerospikeͷύϑΥʔϚϯεΛग़͠Δʹɺߴଟॏ ͰϦΫΤετΛߦ͏͜ͱ͕ඞཁ • 1ϦΫΤετ1msͰ3.6ԯϨίʔυऔΓग़͢߹ 36ສඵ = 6000 =
100࣌ؒ • IMͰ16ʙ32coreͷαʔόΛ༻͍ɺඦଟॏͰॲཧ Λճ͍ͯ͠·͢
ҙ֎ͱϝϞϦͷ༻ྔ͕େ͖͍ SSDͷΈͷར༻Ͱҙ֎ͱϝϞϦΛ༻͢Δ • ΠϯσοΫε͕ϝϞϦల։͞ΕΔ • 1Ϩίʔυʹ͖ͭ̒̐όΠτ AWSͰϝϞϦͱSSDͷൺ͕΄΅ݻఆͳͷͰɺҰ෦ ΠϯϝϞϦͷNamespaceΛ͍ɺϦιʔεͷແବΛແ ͘͠·ͨ͠ɻ
Namespaceׂ͠ʹ͍͘ • RDBMSͰ͍͏σʔλϕʔε • SSDΛ༻͢Δ߹ɺϒϩοΫσόΠε୯ҐͰ͔͠ NamespaceΛ͚Δ͜ͱ͕ग़དྷͳ͍ • ΠϯϝϞϦͷ߹ࣗ༝ʹׂՄೳ
Queryͷ੍ SQLϥΠΫͳهड़ͰϨίʔυΛࢀর͢Δ͜ͱՄೳ • ࢦఆͨ͠αʔόͰॲཧ͕Δ ʢΫϥΠΞϯτଆͰͳ͍ʣ • ฒྻ࣮ߦ͕ग़དྷͳ͍ • ࢦఆ͢ΔαʔόΛม͑͋Ε࣮ߦՄ •
όοΫΞοϓQueryѻ͍ Client ×
όοΫΞοϓ • mysqldumpͷ༷ͳίϚϯυ͕͋Δ • ΄΅ฏจͳͷͰɺσʔλྔ͕େ͖͍ • औಘɺ෮ݩʹֻ͕͔࣌ؒΔ • Queryѻ͍ͳͷͰɺ࣮ߦϊʔυʹҙʢલड़ʣ
ͦͷଞɹࡶײ • ΠϯϝϞϦͩͱಛʹ͍ʢൺֱͯ͠ͳ͍͚Ͳʣ • ઃఆ߲͕΄΅ແ͍ͷͰɺߏஙָ͕ ʢٯʹϒϥοΫϘοΫεͰ͋Γ·͕͢ɻɻʣ • υΩϡϝϯτʹແ͍ػೳ͕ϥΠϒϥϦʹ͋Δ ʢιʔείʔυΛݟ·͠ΐ͏ʂʣ •
Ϧιʔεͷݟੵ͕͘͠ɺఆΑΓߴ͘ͳΔɻɻ
·ͱΊʢ͜Ε͔Β࢝ΊΔํʣ • ຊʹAerospike͕ඞཁͳέʔε͋·Γଟ͘ͳͦ͞͏ɻ ʻϚονͦ͠͏ͳέʔεʼ • σʔλྔͷݟੵ͕͍͠߹ʢࣄۀͷεέʔϧͳͲʣ • ࣌ؒ͋ͨΓͷϦΫΤετ͕େͳ߹ • Javascriptܦ༝Ͱෆಛఆଟ͔ΒAPIΛίʔϧ͞ΕΔ
• όονॲཧͳͲͰॠؒతʹෛՙΛ͔͚Δʢԯ݅୯ҐͷδϣΠϯʣ • αʔόɺΫϥΠΞϯτڞʹඞཁͱ͞ΕΔϦιʔεͷݟੵ͕͍͠ ͷͰɺΫϥυڥͰࢼͯ͠ΈΔ͜ͱΛΦεεϝ͠·͢ɻ • QueryΛϝΠϯʹαʔϏεΛઃܭ͍͚ͯ͠ͳ͍ɻ
ΤϯδχΞืू ࠷৽ͷٕज़ʹڵຯͷ͋Δ৽ϝϯόʔΛืूதͰ͢ʂ ࠾༻ٕज़ ։ൃج൫
͋Γ͕ͱ͏͍͟͝·ͨ͠