ソーシャルゲームのような高負荷がかかるWebアプリケーションにおいては、何十, 何百台ものサーバーでスケールアウトするのが当然の時代になりました。特にDBサーバーでは垂直分割、水平分割による複数のDBへの負荷の分散が行われ、アプリケーション側でハンドリングすべきことが増してきています。 今回は、Google社のyoutubeの基盤として大量のクエリを捌いているVitessを、当社のゲームにおいて実際にDBサーバーのマネージ&スケールアウトに使用した話をします。主にVitess, gRPC, MySQL/KVSとの比較, Rails/ActiveRecordにおけるデータベース分割, VitessとRails, Live Resharding周りの話です。
![Ruby on Rails & Vitessによる
DBスケールアウト](https://cdn-ak-scissors.b.st-hatena.com/image/square/e01063c500392474b555e99ddfcc4f64535bd68c/height=288;version=1;width=512/https%3A%2F%2Ffiles.speakerdeck.com%2Fpresentations%2Ff01ed7288ee243aa972e7f7b7d460ae2%2Fslide_0.jpg%3F5863874)