TOP>企業情報>コラム>お客様の声>NO.25 サイバーエージェント

NO.25 サイバーエージェント

日本最大のブログ・メディア「Ameba(アメブロ)」を運営する株式会社サイバーエージェント。ブログ・サービスでは最後発だった彼らが、月間56.2億ページビュー(2008年9月末時点)という現在の地位を獲得するまでにどのようなシステム改善を行ったのか。その試行錯誤の内容と、インターネットサービス提供会社としての基盤技術に対する意識改革について、詳しく伺った。

Guest Speaker
株式会社サイバーエージェント
新規開発局
技術責任者 佐藤 真人 氏

インフラテクノロジーグループ
データベーススペシャリスト
渡部 智和 氏


1. 月間56.2億ページビュー。日本最大のブログ・メディア、Ameba(アメブロ)


「サイバーエージェントといえばAmeba(アメブロ)(以下 Ameba)」というイメージがありますが、Amebaについてお話を伺う前に、サイバーエージェントの企業概要について、少しお聞かせいただけますか。

サイバーエージェントは、インターネット・メディア事業とインターネット広告代理事業、投資育成事業を軸に事業展開を行うインターネット総合サービス企業です。インターネット・ビジネスに特化し、クライアントとユーザの両方向に接点を持ったビジネスモデルを特徴としています。

出典:(株)サイバーエージェント ホームページから転載

ちなみに、サイバーエージェントのロゴは「アメーバ」ですが、これはインターネットという新しい領域において常に成長と進化を続けるサイバーエージェントの企業イメージを、色々なものを吸収し、柔軟に形を変え成長するアメーバとして表したものです。

現時点では、前述した3つの事業が収益源の大半を占めていますが、我が社の企業ロゴにも採用しているアメーバを名前につけた「Ameba関連事業」には、全社を挙げて取り組んでいます。今後マーケティング・ツールとしても個人のメディアとしてもブログは大きな位置を占めていくと確信していますので、Ameba関連事業を我々の将来の収益の大きな柱にすべく、様々な新サービスを展開していきたいと考えています。

出典:2008年9月期第三四半期(2008年4月から6月)決算説明資料

次に、今お話に出た「最も注力されている『Ameba事業』」についてお聞かせください。

Amebaは、サイバーエージェントが運営しているブログ・メディアです。ブログは、今やインターネット利用人口の4割が閲覧している急成長中のインターネット・サービスですが、お蔭様でAmebaのブログ開設数は350万を突破し(2008年8月時点)、また一日の記事投稿者数15万人(2008年9月末時点)と、国内最大規模を誇っています。

Amebaが、多くのユーザに支持される理由は何だと思われますか。

Amebaは他社のサービスと比べて、以下の2点を強みにしています。

1.訪問者数の増加を牽引する著名人ブログ
約2,500人の著名人がAmebaにブログを開設してくださっています。これらのブログは、あくまで著名人ご自身のPRツールやファンとのコミュニケーションの場として活用されています。Amebaから広告料などは一切支払われていません。

2.次々とリリースされる新サービス
これこそがブログ・メディアの肝といえる部分だと思いますが、Amebaでは、他にはないユニークなブログ付随機能※1の開発や、その他ブログ以外のメディア・サービス等を提供しています。インターネット・サービス業者による一方的な情報提供だったWeb1.0時代から、双方向でのコミュニケーションが図れるWeb2.0時代への変遷を、我々がリードしたいと考えています。

Amebaは、ブログ・メディアで日本一なだけでなく、日本のホームページのアクセス・ランキングでも第4位です(Yahoo!、楽天、mixiに次いで第4位※2)。そんなメディアとしてのAmebaの可能性を模索すべく、テレビ朝日と共同で、国内初となるユーザ参加型テレビCMを活用した広告商品「ブロマーシャル」を開発しました。

これらの相乗効果によって、Amebaが国内最大のブログ・メディアに成長したのだと思います。

※1
ブログを訪問したことをボタン1つで手軽に相手に知らせることができる「ペタ」機能、特定の人に限定公開した記事を見せることができる「アメンバー」機能、ブログのネタを会員の皆様へお届けする「クチコミ番付」機能などがあります。
※2
ネットレイティングス2008年8月発表数値

2. Amebaが日本一になるまでの道のり


このようにお聞きしていると、Amebaは順風満帆なブログ・メディアとして誕生し、発展したように思えるのですが、現在に至るまでご苦労などはなかったのでしょうか。

もちろん、色々な苦労がありました。簡単に、順を追ってご説明します。

Amebaは2004年9月にサービスを開始したのですが、ブログ・サービスとしては最後発の方でした。そこで、サイバーエージェントが得意とする企画力と営業力をもって宣伝活動を行った結果、次第に注目を集めるようになりました。しかし当時、利用ユーザ数の急激な増加にシステム側が追いついていなかった。Amebaの利用ユーザが増えるのと比例して、利用ユーザからの苦情の声も増えるという、厳しい状況でした。

そこで、この状況を打開すべく2005年7月に巨費を投じてシステム・リリースを行ったのですが、それも失敗に終わります。その失敗を受け、弊社社長の藤田は自らがアメーバ事業部の責任者になって解決に当たることを宣言します。

藤田社長は、なぜアメーバ事業部の責任者になろうと思われたのでしょう。

実はこの2005年のシステムは、ユーザに満足していただけるサービスを短期間で提供したいという思いから、外部の開発会社に全面的に依頼をして構築してもらったシステムでした。しかし、結果は期待に反して失敗に終わります。

システム自体の問題もありましたが、この失敗を契機に、藤田は「インターネット事業をメインとする会社が、システム開発を外部にアウトソースしてはいけない」と考えるようになりました。「我々のコアビジネスとIT技術は密接に関わっている。自らのビジネスを成功させるためには、我々が責任を持って基礎技術に対しても取り組んでいかなければならない」と。

この頃から、藤田は、社内のみならず決算説明会など公式の場においても「Ameba、そしてサイバーエージェントの永続的な発展のためには、技術力の強化が不可欠である」という趣旨の発言をするようになりました。技術者の採用に積極的に取り組み始めたのも、この頃※3からです。

2006年5月、藤田の号令の下、ベンダー任せだったシステム基盤を、技術部がイニシアチブをとる形で抜本的に改善する取り組みが始まりました。

※3
佐藤氏がサイバーエージェントに入社したのも、2006年4月のことです。

具体的にはどのように、システムの刷新に着手されたのでしょう。

当時のシステムは構成面などでも多くの問題を抱えていました。例えば、DBサーバが本番系と待機系で1台ずつしかない。更新系と参照系のコンテンツが混在して処理の分散が図れていない、処理性能を増強するにはサーバ内のプロセッサ数を増やすか高速化するかのスケール・アップ方式しか策がない等、ユーザ・アクセス数の増加が予測しにくいB to Cサイトには相応しくないと思われる構成でした。

とはいえ、やはり最優先で手をつけなければならなかったのは、「データベースの性能改善」です。しかし、外部にシステム開発を委託し、自社にDBAが不在だった当時の我々には、いったいどこがボトルネックになっているのか、皆目検討がつきませんでした。そこで、前職でお付き合いのあったアシストに相談を持ちかけたのです。

アシストにDB診断サービスとDB運用の技術コンサルティングをお願いしたところ、設定の間違いや無駄なデータベース処理を特定することができました。その情報を基にバッチ処理の見直しやSQLの改善、索引の見直しを行ったところ、ハードウェアの余力ができ、ページビューを増加させることができたのです。

また、その時は短期での問題特定をデータベースの専門家が不在の中で行う必要があったため、アシストにDB診断サービスをお願いしましたが、自社でもパフォーマンス・チューニングを行えるようになりたいと考え、DB診断サービスで使われていたPerformance Insight(以下PI)を購入し、スキル・トランスファーをお願いしました。今では、PIは我々にとってなくてはならない存在になっています。

データベースのチューニングの次は、どの課題に手をつけられたのですか。

次は、システム構成面の見直しです。高負荷に耐えられるサーバやデータベース構成を、一から見直すことにしました。先に申し上げたように、ブログ・メディアはアクセス数の急増を予測しにくい特徴があります。例えば、時事関連や芸能人のニュースが巷をにぎわすと、その関連ブログへのアクセス数は跳ね上がります。また、今後さらなる利用者数の獲得を狙うためには、高い拡張性と安定性が求められたため、サーバ台数の増加で全体の処理性能をアップできるスケール・アウト方式を前提に検討を開始しました。

また、過去の苦い経験から、「サイバーエージェントの社員だけで開発を行う」という基本方針を掲げていたため、自分たちにとって、どういう処理がどのシステム技術によって行われるのかを把握しやすいように、データベース構成も見直しました。その結果、外部に開発を委託した2005年のデータベースはOracleのみで構築されていたのですが、今回はOracleとオープンソースDBであるMySQLの併用で構成することにしました。

2008年現在のAmebaシステムの原型はこの時に作られたものです。その後も、必要に応じてひたすら改善を繰り返しました。そうした「ひたすらの改善」は今日でも進行中です。また、新サービスのリリース時には、社長の藤田が自ら最終チェックを行っています。

3. 自己責任エンジニアにとってのオープンソースのありがたさ


ところで、現在のAmebaはOracleとMySQLの併用で構成されていると伺いました。オープンソースDBであるMySQLを採用された理由は何でしょうか。

その名の通り「ソースが公開されていること」が最大の理由でした。つまり、何かあった時に、「ソースコードが追える」という点です。藤田の宣言にあったように、今後は我々サイバーエージェントのエンジニアが「自己責任」でシステム開発を行うため、どうせ自己責任なら、ブラック・ボックスが多い市販パッケージを用いるよりも、コードが追えるオープンソース・ソフトを採用するという判断が出てきたのは自然な流れでした。したがって、MySQL以外にもApacheやTomcatなども採用しました。

また、ハードウェア自体もUNIX機より価格性能比の高いIAサーバにしました。ハードウェア単体で見るとスペック・ダウンですが、システム構成を分散構成にしているため、全体のキャパシティは向上しました。また「オープンソース+安価なIAサーバ」という構成にしておけば、将来、サーバ台数を増やす時にもコストが抑制できます。

すべてをオープンソースにされず、商用ソフトを残されているのはなぜでしょうか。

Amebaにおける個々のシステム処理とそれを支える基礎技術とのバランスからです。

オープンソースは自分たちでソースを追えるという良さの反面、すべて自分たちで解決しなければならないという責任も同時に負うことになります。純粋に自分たちの技術スキル向上を目的にするならば、すべてオープンソースにするという選択もよいでしょう。しかし、我々はお客様にサービスを提供する立場です。すべてオープンソースにすることに固執すると、かえってサービス提供のスピードが落ちたり、コストアップに繋がる可能性もあります。そのことを考えると、すでに実績のある商用ソフトを活用する方がよいケースもあるでしょう。

そこで、Amebaのシステムを画一的に決めるのではなく、それぞれの処理を分析し、最適なシステム構成を模索、構築したのが2008年現在のAmebaシステムです。

4. Amebaシステムのデータベース構成


ここから先は、現在のAmebaシステムの全体構成について、主にデータベースの観点からお聞きします。Amebaシステムでのデータベース構成を教えていただけますか。

Amebaシステムのデータベースは、「大量ファイル・サーバ」、「約40台のMySQLサーバ」、「3台のOracleサーバ」により構成されています。それぞれのサーバに格納されているデータは、下図の通りです。


大きくは、記事本文や画像本体はファイル・サーバに、記事の「場所」とコメント、トラックバックはMySQLに、ブログ全体を管理する情報はOracleにという割り振りになっています※4。そしてMySQL内の情報は、原則としてOracleにも格納し、冗長化しています。つまり、まずOracleに書き込んで、その後、MySQLに書き込みます。したがって、MySQLが落ちた場合でもOracle側のデータを使えばシステムが復旧できます。現状はこのようにOracleが「正」、MySQLが「副」という扱いですが、将来的には、Oracleの負荷軽減のため、MySQLの比重を増やしていく考えです。

※4
Amebaのあしあと機能、「ペタ」は、これらデータベースとは全く別のシステムで管理しています。

5. MySQLとOracleを使い分ける時の基準


MySQLとOracleという、二つのデータベースの使い分けの基準を教えてください。

大きくは、「量は膨大だが、構造は単純なデータを格納・処理する場合はMySQL」、「複雑な処理が必要な場合はOracle」という使い分けです。

MySQLでは、記事タイトルやコメントなど「ブログ本体」のデータを管理しています。これらは「単純増加、単純構造」のデータといえます。ちなみにMySQLの中には、記事本文エントリー用、コメント用、トラックバック用の3つのテーブルしかありません。このように「単純増大系のデータをシンプルに処理する」場合は、MySQLが向いています。

一方、Oracleは、「データが複雑に絡み合う」局面で使います。Oracleで管理している「ブログ属性」、「読者・お気に入り」、「分類情報」等の情報は、データ容量はさほど多くありませんが、管理が複雑な情報です。実際、Oracleの中にはテーブルの数が約40あり、それらを複雑にJOINして管理しています。複雑なJOINが必要な局面は、MySQLよりもOracleの方が向いています。他にも可用性という面で、Oracle Real Application Clusters(Oracle RAC)という他のデータベースにはない構成が取れるという強みもあります。

2006年のシステムの抜本的な刷新以降、何度も試行錯誤を繰り返しながら、ようやく「コストとの兼ね合いやブログ・メディアの扱うデータの特性」を考慮に入れた、現在のデータベース構成に辿り着いたのです。

6. システム改善によって変わったこと


色々と試行錯誤をされたようですね。特に効果が高かったシステム変更について、項目だけでも教えていただけますか。

データベースなどインフラ周りにおける変更事項で、特に効果が高かったものは以下の通りです。

  ・Oracle設定変更(SQL文のチューニング機能「オプティマイザ」の設定を「コストベース」に)
  ・更新処理と参照処理の分離による効率化(参照系の処理は全体の9割近い)
  ・サーバをUNIX機から価格性能比の高いIAサーバへ変更
  ・各種負荷分散対応(Webサーバ、APサーバ、DBサーバ、ファイル・サーバ等)
  ・可用性の向上(OracleのRAC化)
  ・データベース性能に関する定期的なチェック、チューニング(PIを活用)

これら以外にも無数の改善を日々施しています。その甲斐あってか、例えば芸能人の結婚ニュースなどでブログ・アクセス数が急増したとしても、今のAmebaでは少々表示は重くはなるものの、なんとか乗り切れます。こんな時、システム改善の成果が実感できて嬉しくなります。以前のAmebaたど、芸能人のおめでたいはずのニュースが我々にとっては嬉しくないという思いもどこかでありましたからね。今は素直に喜べるのが嬉しいです。

7. サイバーエージェントでは、アシストをどう活用しているか


サイバーエージェントから見たアシストの評価についてお聞かせください。

アシストは我々が考えるシステム設計が、Oracleから見て正しく機能するかどうかを相談するアドバイザーのような会社ですね。

Oracleのパートナーとしてアシストを選んだ理由は何ですか。

前職でアシストと付き合いがあったのですが、その時の印象としてベンダーには珍しく、対応にスピード感と当事者感があると感じていました。そこで、データベースの性能改善を行うにあたって、まず声をかけてみようと思ったのです。

実際に緊急対応が求められた改善作業におけるアシストの印象はいかがでしたか。

思っていた以上でした。アシストには、我々のAmebaという事業の重さを理解し、深夜作業も含めてスピード感のある対応をしてもらっています。

スピード感と当事者感についての印象を説明するならば、例えば、アシストはメールでの質問に対して、プロフェッショナルな回答がすぐ返ってきます。当社は細かい改善を頻繁に行うため、多くの質問に対するすばやい回答を求めますが、このスピードにベンダーがついてこられたというのが驚きでした。特に、2006年4月当時、当社にはデータベース・エンジニアが一人しかいませんでしたが、まさにデータベース・エンジニアがもう一人増えた印象でした。

あるベンダーの担当者に、トラブルが起きた際に連絡をした時のことです。その担当者は、過去に我々とやり取りしたメールをすべて印刷して持ってきて、自分たちの対応に何ら落ち度がなかったことを証明しようとしました。そこにスピード感や、問題を一緒に解決しようという姿勢は感じられませんでした。

アシストには我々と一緒になってやっていこうとする姿勢があります。OracleやPIなどで、何人かのアシストの技術者と会いましたが、どなたもAmebaをより良いブログ・メディアにしたいという我々の思いを十分に理解し、共有してくれていると感じています。

8. 今後の期待


Amebaの今後の抱負と、アシストへの期待をお聞かせください。

Amebaにアクセスが集中する度に、「システムは大丈夫だろうか。重くなっていないだろうか」という緊張感を覚えます。しかし、それは「今、自分が作ったシステムに多くの人がアクセスしている」という手応え、高揚感を感じる瞬間でもあります。

Amebaは、今後ブログという域を超えたインターネット・メディアとして、より多様な、世界に通用するサービスを展開していきたいと思っています。後発組だったAmebaが、国内最大規模にまで発展できたのですから、決して不可能な挑戦ではないと思っています。また、ページ・ビューを伸ばすだけでなく、本格的な収益化を目指します。

これらを実現するためには、Amebaを支えるシステム基盤自体が強くなければなりません。我々は過去の失敗を通じて、「自己責任を持ったIT組織になる」という意識改革を行ってきました。もちろん、自分たちだけですべてが賄えるものではありません。適材適所で最適なパートナーに協力を仰ぎながら、Amebaをより発展させていきたいと考えています。アシストには、私たちの新たなチャレンジへの思いを共有していただき、引き続きプロフェッショナルなご支援をいただけるよう期待します。今後ともよろしくお願いします。




取材日時:2008年8月
サイバーエージェントWebサイト

現在、サイバーエージェント様でご利用いただいている製品、サービス
  ・リレーショナルDB/Oracle
  ・パフォーマンス管理/Performance Insight


Facebookで情報をお届けしています

Facebookでは、アシストの「今」を週3回のペースでお届けしています。「めげない、逃げない、あまり儲けない」を合言葉に日々頑張っておりますので、応援よろしくお願いします。



ページの先頭へ戻る