Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Amazon AuroraとMongoDBの アーキテクチャを比較してみたら 結構違った件について

Amazon AuroraとMongoDBの アーキテクチャを比較してみたら 結構違った件について

Transcript

  1. 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") } ]
  2. 7 MongoDBのアーキテクチャ App Primary Replica Secondary Replica Secondary Replica ①データをストレージと

     Oplogに書き込む ②Oplogからデータを  コピーする ②Oplogからデータを  コピーする ③データをストレージから  読み込む ③データをストレージから  読み込む
  3. 9 Replica∕Arbiter数 必要な票数 最⼤失敗数 1 1 0 2 2 0

    3 2 1 4 3 1 5 3 2 6 4 2 7 4 3 必要な票数
  4. 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
  5. 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
  6. 15 コピーへの書き込み AZ1 AZ2 Storage 1 Storage 2 Storage 3

    Storage 4 Storage 5 Storage 6 AZ3 Write Replica 4以上のコピーへの書き込みで成功
  7. 16 コピーへからの読み込み AZ1 AZ2 Storage 1 Storage 2 Storage 3

    Storage 4 Storage 5 Storage 6 AZ3 Read Replica 3以上のコピーからの読み込みで成功
  8. 17 コピー数 書き込みコピー数 読み込みコピー数 1 1 1 2 2 1

    3 2 2 4 3 2 5 3 3 6 4 3 7 4 4 必要なコピー(クォーラム)数
  9. 21 まとめ • Amazon Aurora ‒ 書き込み性能がスケールしない代わりに、データの完全性を担保 • MongoDB ‒

    多少のデータが失われることを許容することで書き込み性能に特化