Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Aerospike を導入してみた話 / Consideration about Aerospike
Search
mats
June 24, 2015
Technology
0
42
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.1k
🦜️🔗LangChain入門 / LangChain 101
mats16
1
660
Supabase - AWS DevDay 2022
mats16
3
2k
AWS スタートアップ支援プログラム / AWS Activate
mats16
0
1.2k
AWS Startup ゼミ 2021 秋期講習 / AWS Startup Seminar 2021 Autumn class - AWS Dev Day
mats16
4
2.6k
Unicorns run on AWS
mats16
0
300
AWS Startup tech Meetup Online 6
mats16
0
1.1k
シードスタートアップに知っておいてほしいこと / What seed startups need to know
mats16
0
380
Introduction to AWS App Runner
mats16
0
1.1k
Other Decks in Technology
See All in Technology
MariaDB Connector/C のcaching_sha2_passwordプラグインの仕様について
boro1234
0
950
MLflowダイエット大作戦
lycorptech_jp
PRO
1
150
2025-12-18_AI駆動開発推進プロジェクト運営について / AIDD-Promotion project management
yayoi_dd
0
130
文字列の並び順 / Unicode Collation
tmtms
3
620
Strands Agents × インタリーブ思考 で変わるAIエージェント設計 / Strands Agents x Interleaved Thinking AI Agents
takanorig
4
1.1k
NIKKEI Tech Talk #41: セキュア・バイ・デザインからクラウド管理を考える
sekido
PRO
0
170
GitHub Copilotを使いこなす 実例に学ぶAIコーディング活用術
74th
3
3.6k
生成AI活用の型ハンズオン〜顧客課題起点で設計する7つのステップ
yushin_n
0
260
ExpoのインダストリーブースでみたAWSが見せる製造業の未来
hamadakoji
0
170
多様なデジタルアイデンティティを攻撃からどうやって守るのか / 20251212
ayokura
0
500
20251219 OpenIDファウンデーション・ジャパン紹介 / OpenID Foundation Japan Intro
oidfj
0
290
CARTAのAI CoE が挑む「事業を進化させる AI エンジニアリング」 / carta ai coe evolution business ai engineering
carta_engineering
0
2.1k
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
186
22k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
61
47k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.8k
Designing for humans not robots
tammielis
254
26k
Utilizing Notion as your number one productivity tool
mfonobong
2
180
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
0
59
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
400
The World Runs on Bad Software
bkeepers
PRO
72
12k
Mind Mapping
helmedeiros
PRO
0
35
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
22
Writing Fast Ruby
sferik
630
62k
Facilitating Awesome Meetings
lara
57
6.7k
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ΛϝΠϯʹαʔϏεΛઃܭ͍͚ͯ͠ͳ͍ɻ
ΤϯδχΞืू ࠷৽ͷٕज़ʹڵຯͷ͋Δ৽ϝϯόʔΛืूதͰ͢ʂ ࠾༻ٕज़ ։ൃج൫
͋Γ͕ͱ͏͍͟͝·ͨ͠