Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Amazon AuroraとMongoDBの アーキテクチャを比較してみたら 結構違った件について
Search
NearMeの技術発表資料です
PRO
April 04, 2025
97
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Amazon AuroraとMongoDBの アーキテクチャを比較してみたら 結構違った件について
NearMeの技術発表資料です
PRO
April 04, 2025
More Decks by NearMeの技術発表資料です
See All by NearMeの技術発表資料です
Claude Code × git worktree で並列開発 (続き) -差分のサービスだけを併設する-
nearme_tech
PRO
1
55
Claude Code × git worktree で並列開発 — サブモジュール構成のリポジトリで成立させる —
nearme_tech
PRO
0
59
LLM + 強化学習
nearme_tech
PRO
0
32
PosthogのA/Bテスト機能の紹介
nearme_tech
PRO
1
67
AIフレンドリーなプロダクトに向けて
nearme_tech
PRO
2
65
初めてのLean言語
nearme_tech
PRO
0
100
Apache Airflow Workflow orchestration without turning cron into spaghetti
nearme_tech
PRO
2
39
実務で役立つ幾何学 ボロノイ図の基礎から グラフ・ネットワーク応用まで
nearme_tech
PRO
1
77
SQL/ID抽出タスクから考える 実践的なハルシネーション対策
nearme_tech
PRO
1
90
Featured
See All Featured
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
330
エンジニアに許された特別な時間の終わり
watany
109
250k
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
240
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
300
RailsConf 2023
tenderlove
30
1.5k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
1
610
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
330
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
500
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
3
3.8k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
240
Deep Space Network (abreviated)
tonyrice
0
310
Transcript
0 Amazon AuroraとMongoDBの アーキテクチャを⽐較してみたら 結構違った件について 2025-04-04 第118回NearMe技術勉強会 @yujiosaka
1 データベース⽐較 • Amazon Aurora ‒ クラウドネイティブなリレーショナルデータベース • MongoDB ‒
オープンソースのドキュメント指向NoSQLデータベース
2 データ構造⽐較 mysql> select id, created_at from users; +---+---------------------------+ |
id | created_at | +---+---------------------------+ | 1 | 2024-06-15 10:06:27 | | 2 | 2024-06-15 11:11:14 | +---+---------------------------+ test> db.users.find() [ { _id: ObjectId("66a9d3c73dbe30f7509034fd"), createdAt: ISODate("2024-07-31T06:03:51.762Z") }, { _id: ObjectId("66a9d3c93dbe30f7509034fe"), createdAt: ISODate("2024-07-31T06:03:53.490Z") } ]
3 機能⽐較 • インデックスの機能はほぼ同等 • MongoDBにもJoin、View、トランザクションのようなRDBMSライクな機能がある
4 構成⽐較 App Write Replica Read Replica Read Replica Read
Read Write
5 構成の共通点 • 分散環境で⾼可⽤性と⾼性能を実現 • ⼀つのWriterレプリカと複数のReaderレプリカを持つ
6 古典的なデータベースのアーキテクチャ • ⼀台のサーバーに計算とストレージが同居している • ⼀台のサーバーが停⽌すると使⽤できなくなる • ⼀台のサーバーからデータが失われると復旧できなくなる App DB
Read & Write
7 MongoDBのアーキテクチャ App Primary Replica Secondary Replica Secondary Replica ①データをストレージと
Oplogに書き込む ②Oplogからデータを コピーする ②Oplogからデータを コピーする ③データをストレージから 読み込む ③データをストレージから 読み込む
8 Read Replica Read Replica MongoDBのPrimaryレプリカが停⽌した場合 App Primary Replica Secondary
Replica Primary Replica Read Write ①投票 ②選出
9 Replica∕Arbiter数 必要な票数 最⼤失敗数 1 1 0 2 2 0
3 2 1 4 3 1 5 3 2 6 4 2 7 4 3 必要な票数
10 MongoDBのアーキテクチャのメリット • ローカルでも動作する • スタンドアロンの構成は古典的なデータベースと同じ • Secondaryへのデータコピーが⾮同期なので書き込みが爆速 • Primaryが停⽌しても、ほぼ遅延なくSecondaryが選出される
11 MongoDBのアーキテクチャのデメリット • Secondaryから読み込まれるデータが最新ではない可能性がある • 最新のデータを保証しなければならない場合はPrimaryから読み込む • Primaryが復旧できなくなると、Secondaryにコピーされる前のデータは失われる
12 MongoDBのシャーディング mongos Shard 1 Shard 1 Shard 3 Primary
Replica Primary Replica Primary Replica Second Replica Second Replica Second Replica Second Replica Second Replica Second Replica App mongoc
13 MongoDBのシャーディング • データを複数のシャードに分散させることで、書き込みを⾼速化させる • mongocが振り分けのルールを保存し、mongosがルーティングを⾏う • それぞれのシャードは、⾃分たちがシャードされていることを知らない(例外あり) • シャード間でデータ量のバランスが悪くなったら、⾃動∕⼿動でリバランシングする
14 Amazon Auroraの構成 App Write Replica Read Replica Read Replica
AZ1 AZ2 AZ3 Storage 1 Storage 2 Storage 3 Storage 4 Storage 5 Storage 6 Write Read Read
15 コピーへの書き込み AZ1 AZ2 Storage 1 Storage 2 Storage 3
Storage 4 Storage 5 Storage 6 AZ3 Write Replica 4以上のコピーへの書き込みで成功
16 コピーへからの読み込み AZ1 AZ2 Storage 1 Storage 2 Storage 3
Storage 4 Storage 5 Storage 6 AZ3 Read Replica 3以上のコピーからの読み込みで成功
17 コピー数 書き込みコピー数 読み込みコピー数 1 1 1 2 2 1
3 2 2 4 3 2 5 3 3 6 4 3 7 4 4 必要なコピー(クォーラム)数
18 Amazon Auroraのアーキテクチャのメリット • Readから読み込まれるデータも最新であることが保障されている • Writeが復旧できなくなってもデータが失われない
19 Amazon Auroraのアーキテクチャのデメリット • 書き込みはスケールしない • Primaryが停⽌すると、60-120秒間使⽤できなくなる • ローカルでは動作しない(MySQLとPostgreSQLと互換性があるため実質問題ない)
20 Amazon Auroraのシャーディング • 不可 • DocumentDB(MongoDBのAPIとの互換性を謳ったサービス)でも不可
21 まとめ • Amazon Aurora ‒ 書き込み性能がスケールしない代わりに、データの完全性を担保 • MongoDB ‒
多少のデータが失われることを許容することで書き込み性能に特化
22 結局使い分けが⼤事 22
23 Thank you