自分そっくりに作成したアバターを使い、ほかのユーザとチャットしたり、あるいはゲームで対戦したりと、さまざまな楽しみ方ができるサイバーエージェントのWebサービスが「アメーバピグ」です。仮想空間として、浅草、渋谷、沖縄、北海道などさまざまなエリアが用意されており、ユーザはこれらの場所に出かけてほかのユーザと交流、あるいは仮想通貨であるアメゴールドを利用してアイテムを購入するといったことができます。また、アイドルグループのコンサートが「アメーバピグ」内で開催され、15,000人の観客を集めるなど、さまざまなイベントが開催されている点も見逃せないポイントでしょう。
渡辺雄作氏
この「アメーバピグ」のサーバサイド部分の開発およびインフラの構築/運用を担当しているのが、( 株)サイバーエージェント 新規開発局 システムデベロップメントグループの渡辺雄作氏です。今回は、「 アメーバピグ」の開発の裏側や現在注目されている技術などについて同氏にお話を伺いました。
大人気サービスに育った「アメーバピグ」の開発を担当
―― いつ頃から、「アメーバピグ」の開発に関わっているのでしょうか。
「『 アメーバピグ』の開発当初からですね。企画段階から当時のプロデューサーと一緒に開発を進めました。最初はアバターを使ったサービスを開発して欲しいという話だったのですが、途中で『ここまでかわいいものができたのなら動かしてみよう』という話になり、現在の形になりました」
―― 人気の高いサービスになるという手応えはありましたか。
「サービス開始前に社内で試してもらったところ評判はよかったので、それなりに使ってもらえるだろうとは思っていましたが、現在のような状況までは想像していませんでした」
―― 開発で苦労された点を教えてください。
「1つはバックエンドのデータベース部分をどうするかというところですね。こうしたサービスではリアルタイム性が強く求められるため、バックエンドにMySQL、フロントエンドに独自開発したクラスタ構成の分散KVS(Key-Value Store)を参照用に利用していました。ただKVSのクラスタが200台近くになって、管理コストの負担が大きくなってしまったんですね。そのとき高速なSSD(Solid State Drive)を試す機会があり、ディスクI/O部分のボトルネックを解消できることがわかりました。それで現在はMySQLにダイレクトに接続する形になっています」
―― コスト負担を抑えて性能を高められることから、複数台のサーバを使ってスケールさせるアーキテクチャが現在広まっていますが、台数が増えすぎると管理コストが大きくなってしまうというわけですね。
「10台や20台ならともかく、数百台~数千台となると管理コストも莫大になります。ケースにもよりますが、高性能なハードウェアを使ってサーバを集約するという手法も有効ではないかと思います」
Webサービス上でリアルタイム処理を実現する際、データベースからのディスクI/Oがパフォーマンス上のボトルネックとなるケースは少なくありません。現状トレンドとなっているのは、複数台のサーバを利用して負荷分散を行うスケールアウトの手法ですが、その場合は増え続けるサーバをどう管理するのかも考える必要があるとのこと。このあたりは多くのエンジニアにとっても参考になるのではないでしょうか。
続けて、サイバーエージェントに入社した経緯などを伺いました。
“ゴリゴリ”開発できる職場を求めてサイバーエージェントへ
―― サイバーエージェントに入社する前は、どういった業務に携わられていたのでしょうか。
「もともとシステムインテグレータで証券金融系のシステムを開発していました。ただ、どうしても担当できる分野が少なく、エンジニアとしてステップアップできるのかという不安があり転職を考えるようになりました。もともとプログラミングが好きだったということもあり、とにかくゴリゴリ開発できることを重視しました。その中で選んだのがサイバーエージェントだったわけです」
―― サイバーエージェントを選択したポイントはどこだったのでしょうか。
「当時のサービスは『アメーバブログ』だけだったのですが、これからおもしろくなるだろうなと感じたことと、会社として事業内容がしっかりしていたことですね。インターネットサービスを提供しているだけでなく、広告代理業や投資育成事業などB2B事業にも力を入れていて、ほかの企業とは違った強みがあったことが魅力でした」
―― サイバーエージェントでエンジニアとして働く魅力を教えてください。
「風通しがよいということですね。自由と責任がセットで与えられていて、たとえば何かを開発するといったとき、そこで使うフレームワークや言語を自分の責任において自由に選択できます。ここはほかの会社との大きな違いではないでしょうか。また、自分の担当以外のサービスに関わる機会が多く、自分が希望すれば別のサービスに携わることもできます。あまり組織として『これだけをやらなくてはいけない』といったことはありません。そのあたりもサイバーエージェントの自由度の高さだと感じています」
―― 今後のキャリアパスはどのように考えていますか。
「プログラマからシステムエンジニア、マネージャといったステップアップが一般的だと思いますが、単にマネジメントだけでなく自分でも手を動かす…… プレイングマネージャのような存在を意識しています。それがベストかどうかはまだわかりませんが、サイバーエージェントにはさまざまなキャリアパスがあり、いろいろな形で組織に貢献できるしくみが整っているのであまり不安は感じていません。これからじっくり考えていきたいと思います」
―― 最後に、今後取り組んで行きたい技術、あるいは注目している技術を教えてください。
「HBaseやCassandraといったカラムベースのデータベースです。データベースはどうしてもディスクI/Oがボトルネックになるので、それを何とかできるのであれば、HBaseを使ってみたいと考えています。あとGPGPU(General-Purpose computing on Graphics Processing Units;GPUを汎用の計算に応用する技術の総称)も気になっています。Webサービスでも、GPUの処理能力を使える領域は出てくるのではないでしょうか」
スペシャリストとして技術を探求し続けるのか、それともマネージャとして仕事の幅を広げるのか。将来のキャリアパスをどう考えるのかは、多くのエンジニアにとっての共通の悩みと言えるのではないでしょうか。渡辺氏もその点について悩んでいるとしつつ、サイバーエージェントであれば不安はないという言葉が印象的でした。
サイバーエージェント公式エンジニアブログ
URL:http://ameblo.jp/principia-ca
エンジニアの生の声を週替わりでお届け中!