データベース分散

mixi アプリを含めた多くのWebサービスの場合、データの書き込みより読み出しの方が圧倒的に多いことが常です。たとえば総ネギ振り回数の表示はネギ振りカウンタの全ユーザーに対して行いますが、実際にネギを振る、すなわちネギ振り回数の更新を伴うリクエストを行うユーザーは数%ほどしかいません。

そこで、Webサービスのデータベースでは、Master-Slave構成が取られることがよくあります。

図1:Master-Slaveの構成図

Master- Slave構成とは、データーベースサーバーを複数立ち上げ、1つのサーバーをMasterとしてレプリケーションで複数のSlaveサーバーと同期させる構成のことです。この構成では、更新系のクエリーを1つのMasterに振り、参照系のクエリー(SELECT)を複数のSlaveにふることで、沢山ある参照系のクエリーを複数のSlaveサーバーでさばけるようになります。こうすることで、参照が増えてもSlaveサーバーを増やすだけで良くなるのです。データベースの構成としては基本的なものなのでぜひ導入しましょう

スケーリング

負荷が高まった場合などにサーバーの処理能力を向上させるには、スケールアップとスケールアウトという二つの考え方があります。スケールアップとは、サーバーをより性能の高いものに置き換えることを言います。スケールアウトとは、サーバーを追加して全体の処理能力をあげることを言います。一般的に、スケールアップよりもスケールアウトが重視されます。それはサーバー1台あたりの処理能力というのは限界があるためです。

ここまでやってきて更新系と参照系のサーバーを分ける構成になってきていると思います。これらはすべて参照系が更新系よりも負荷が高いという分析から、参照系をたくさん並べられるようにしたのです。これらはすべて、サーバーを追加するだけで処理能力が上がる構成にするためです。

サービスの特性によっては、更新系が大量になる場合もあります。データ量が膨大になってくるとインデックスすらメモリに乗り切らなくなり、さらに別の分散方法が必要になります。そういった場合はSarding(mixi ではlevel2分散と呼ばれている)という構成を導入し、データを複数のサーバーに分散するのがいいでしょう。負荷が特定の時間に突発的に上がるような場合は、Q4Mを導入して時間軸方向に分散する方法もあります。以下のエントリーが参考になるかもしれません。
→「mixiの年末年始対策 日記投稿システムの改善(mixi Engineers’ Blog)」

さらに膨大な数のサーバーが必要になる前にクラウドを導入するのもよいでしょう。最近はクラウドっぽいサービスも増えていますが、本当のクラウドの魅力はなんといっても迅速なサーバー(インスタンス)の追加です。朝はアクセスが少ないからサーバーも少なく、夜はたくさんアクセスがあるからサーバーも増やすといった運用もできます。実際にサーバーを買ってしまうと、想定していた負荷よりも低かったり、アプリ自体のアクセス数が減ってしまった場合にそのコストが無駄になっちゃいますよね。クラウドは、本当に流行るかどうかわからない実験的なサービスや、期間限定のアプリや、流行り廃りが早い一発ネタアプリに向いていると言えます。ソーシャルアプリは新しいプラットフォームで負荷の想定が難しいため、積極的にクラウドを利用するのが良いでしょう。

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30