mixiの生みの親“バタラ氏”が語るMySQLの意外な利用法DBMS導入事例:MySQL

サービス開始から3年余りで会員数が1000万人を超えたSNSの「mixi」。そのシステムはOSSで構築されており、データベース管理システム(DBMS)には「MySQL」を使う。急増するトラフィックをさばくために負荷分散を重ねた結果、現在ではサーバ1000台以上が連なる超分散システムへ。その中でMySQLが果たす役割とは。

2007年09月12日 00時00分 公開
[石田 己津人]

日記だけで4億件のデータ

 ミクシィが運営するSNS「mixi」は、2007年7月末段階でユーザー数が1110万人。人が12人集まれば、1人はmixiユーザーというわけだ。ユーザーのアクティブ率(ログイン間隔が3日以内)は約62%と高く、2007年4月から6月の月間平均ページビューは117.5億に達した。日記だけでも4億件以上に上るなど、蓄積するデータ量も莫大。2004年3月のサービス開始から、わずか3年半で現在の巨大コミュニティーへと発展したのだ。

 ミクシィは、「LAMP(OSのLinux、WebサーバのApache、DBMSのMySQL、開発言語のPerl、PHP、Python)」と呼ばれるWebシステム向けの標準的なオープンソースソフトウェア(以下、OSS)でシステムを自社開発し、安価なPCサーバを1000台以上連ねる超分散構成でmixiのサービスを支えている(広告配信など周辺機能では、パッケージ製品を採用している部分もある)。このmixiのケースは、MySQLを採用するWebシステムとして、間違いなく世界有数の規模といえる。

株式会社ミクシィ 取締役 最高技術責任者 衛藤 バタラ氏

 mixiの生みの親――事業企画をミクシィへ提案、当初は1人でシステムを構築していた――ともいえる取締役 最高技術責任者の衛藤 バタラ氏は、MySQL採用のいきさつを次のように振り返る。「当時は、SNSがビジネスとして成り立つかどうかも分からなかったので、コストが掛かる商用DBは頭にありませんでした。OSSとしてはPostgreSQLという選択肢もありましたが、MySQLは当時からレプリケーション機能が標準で付き、ユーザー事例などのドキュメントも豊富。サポート会社のMySQL ABも存在していたので安心でした」

 もちろん開発当初は、誰もが現在のような急展開を想定できるわけがなく、この3年半、急激に増え続けるトラフィックへどのように対応するのか、バタラ氏をはじめ開発スタッフの苦労は並々ならぬものがあった。特に、MySQLのスケールを高めるのに苦労したという。

標準機能では負荷分散できず

 mixiはサービスを開始してから2カ月後には、ユーザー数が1万人を突破した。早くもWebサーバとDBサーバが各1台という初期構成では負荷に耐えられなくなったが、Webサーバには「DNSラウンドロビン」(1つのホスト名に複数のIPアドレス=Webサーバを割り当て)という負荷分散技術があり、サーバを増設してスケールアウトすることで、容易に対応できた。そして、MySQL標準のレプリケーション機能を使い複数のDBサーバをマスター−スレーブ構成(マスターからスレーブのデータを非同期更新)とすることで、マスターは更新専用、スレーブは参照専用として負荷分散も行った。

 普通のWebサイトであれば、トラフィックの大半は参照処理のため、たとえトラフィックが増加しても参照専用のスレーブの追加で十分にスケールアウトするだろう。しかしmixiの場合、サービスの特性上、更新処理の多さが際立った。トラフィックの増加に伴い、更新処理が集中するマスターが過負荷になったほか、マスターで発生した更新を各スレーブが複製する際のオーバーヘッドで、参照処理にまで影響が出始めたのだ。

関連ホワイトペーパー

MySQL | サーバ | 負荷分散 | データベース | オープンソース | OSS


ITmedia マーケティング新着記事

news095.jpg

Googleの次世代AIモデル「Gemini 1.5」を統合 コカ・コーラやロレアルにも信頼される「WPP Open」とは?
世界最大級の広告会社であるWPPはGoogle Cloudと協業を開始した。キャンペーンの最適化、...

news018.jpg

Cookie廃止で広告主とデータプロバイダ、媒体社にこれから起きることとその対策
連載の最後に、サードパーティーCookie廃止が広告主と媒体社それぞれに与える影響と今後...

news100.jpg

メタバース生活者定点調査2023 メタバース利用経験は横ばいでも認知は向上
博報堂DYホールディングスによる「メタバース生活者定点調査2023」の結果です。メタバー...