今⽇はMongoDB
の話はしない
桑野 章弘
⾃⼰紹介
• 桑野 章弘(くわの あきひろ)
• 好きなAWSのサービス:ElastiCache, Route53
• 好きなデータストア:MongoDB
• Twitter: @kuwa_tw
• 属性
• MongoDB 芸⼈
• インフラ全般芸⼈(昔は⾃作サーバとかもやってました
こんにちはAWSアップデート
情報Botです
ココ>@kuwa_tw
MongoDBとは
• ご存知MongoDB
• ドキュメントストアのNoSQL
• JavaScriptでクエリがかける
• 冗⻑化もシャーディングもある
• Version3.6(Release Candidate版)が出ました
しないっていってるでしょ!
今⽇はテーマ「アドテク」
と聞いております
アップデート情報おじさんから
はひとつ
ElastiCache for Redis
Redis Cluster
についてお知らせしたい
アドテク業界では
• ⾼速なNoSQLが使われることが多い
• 100ms or die
ElastiCache for Redis
• みんなごぞんじRedisとmemcachedのマネージドサービス
• めんどくさい運⽤をAWSにおまかせ!
• バックアップ
• フェイルオーバ
• サーバ増減
• などなど
こんな事例もあります
MongoDBでいうと
• MongoDB Atlas
• MongoDBaaSサービス
• VPC Peering対応もしているのであなたのVPCで使うこともできm
おっとまちがえた
Amazon Redis
• 今のElastiCacheで使っているRedisはAmazonにて独⾃拡張し
たRedis
• ElasitiCache for Redis 2.8.22 以上
• 改善点
• バックアップ改善
• Swapの効率化
• 同期の効率化
Redis Cluster
• Redis 3.2 で Redis Cluster のサポート
• データを分散保存することで最⼤15シャード、3.5TiBのデータ
が保存可能
• 最⼤2000万/秒の読み込み、450万/秒の書き込み性能
Replication Group A
Replication Group B
Replication Group C
各シャードに
分散してデー
タを保存
App
MongoDBでいうと
• シャーディング
• データをChunkの細かい粒度に分割、各
mongodに負荷を分散すること
• Mongocはどのシャードにどのチャンクが
所属しているかを管理s
Clients
ChunkA ->	ShardA

ChunkB ->	ShardB

ChunkC ->	ShardC
mongoc
mongod
ShardA
mongod
ShardB
mongod
ShardC
mongos
ChunkA ChunkB ChunkC
ChunkA ChunkB ChunkC
ChunkA
ChunkB
おっとつい癖で
Redis Cluster Hot Resize
• 2017年11⽉にリリースホヤホヤ
• Redis Clusterでのスロットの割当を動的に変えられるようにな
り、台数の増減に対応しました
Replication Group A
Replication Group B
Replication Group CApp
Replication Group D
わいやで
じゃあ紫頼むわ
よろしく
やで
MongoDBでいうと
• moveChunk
• Mongocの情報の更新とシャード間のデー
タ移⾏を⾏うことによってアクセスの平準
化とスケールアウトを⾏う仕組m
Clients
ChunkA ->	ShardA

ChunkB ->	ShardB

ChunkC ->	ShardC
ChunkD->	ShardA
ChunkE->	ShardAからB
へ
ChunkF ->	ShardAからC
へ
mongoc
mongod
ShardA
mongod
ShardB
mongod
ShardC
mongos
ChunkA ChunkB ChunkC
ChunkA ChunkB ChunkC
ChunkA
ChunkB
ChunkD
ChunkE
ChunkF
ChunkE
ChunkF
今⽇はMongoDBの事は話さな
いんだった
Clusterの運⽤きつい
• サーバ⾜して
• 監視して状態⾒て
• サーバ壊れたら⾜して
• リソース追加したら⾜して
• っていうのはやっぱり台数(シャード数)が増える毎に⾟
い、、、
ってこれMongoDBの運⽤時の
話だ
ということで
• 今⽇はMongoDBの話をしませんでした(ほんの少しだけし
ちゃいました)が、アドテク的によく使われるRedisの運⽤負
荷を下げていく部分にElastiCacheというのも⼀ついかがで
しょうか!
なんかこれ怒られそうだな、、、
ありがとうございました!!!

今日はMongoDBの話はしない