サイバーエージェントを支える技術者たち

第8回“アメーバブログのインフラを支える多能工”―Ameba事業本部 システムディベロップメントグループ 大黒圭祐

利便性の高さやレスポンスの良さから1,300万人を超える会員を獲得しているのが、日本最大規模のインターネットメディア「Ameba」です。⁠Ameba」の特徴として挙げられるのは、便利な機能が数多く提供されていること。記事を読んだことを伝える「ペタ」やお気に入りのブログをすばやくチェックできる「読者登録⁠⁠、さらに特定の人だけに記事や画像を公開できる「アメンバー」などの機能があり、ブロガーと読者が気軽にコミュニケーションを図ったり、あるいは気になるブログを簡単にチェックしたりできるため、一度使うとやめられないサービスになっています。

大黒圭祐氏
大黒圭祐氏

今回は、この「Ameba」のブログサービス「アメーバブログ」のインフラ部分を担当している、サイバーエージェント Ameba事業本部 システムディベロップメントグループの大黒圭祐氏にお話を伺いました。

アクセス数の多いWebページでも工夫を重ねてレスポンスを向上

―― まず現在担当しているサービスを教えてください。

「⁠⁠Ameba』のトップページ(マイページ)です。ブログの更新情報や、その他サービスについてのお知らせを表示するページになります。各サービスにアクセスする際に必ず通るページですので、アクセス頻度が高くデータベースなどへの負荷も大きいため、多方面に気を配る必要があるところですね。ただ、ほかのシステムの影響でレスポンスが悪化しないように工夫を重ねています」

―― 必ず見るトップページということで要望も多いと思いますが、早期に対応したい部分にはどういったことが挙げられますか。

「やはりリアルタイム性ですね。たとえば、お気に入り登録したブログで記事が投稿されたら、できるだけ早くトップページに更新情報として表示するといったものです。リアルタイム性を追求するとどうしてもシステムに負荷がかかるためバランスが難しいのですが、データベース周りを含め検討を重ねているところです。

具体的な対応策としてはSSDを使うことが考えられますが、現時点ではなかなか難しいですね。現在、⁠Ameba」関連サービスで100台以上のサーバを使っていますが、それらすべてにSSDをつなげるというと、膨大な作業になってしまうので」

―― Webシステムのレスポンス向上というとKVS(key-valueストア)が話題になっていますが、「Ameba」では採用しているのでしょうか。

「更新情報のリアルタイム性を高めるために、memcachedを使っています。ただサーバの台数が増えたときにどうなるのかなど検証が必要な部分も多いため、現状では分散環境で使うというところまでは行っていません。また、もし分散環境で使うということになったとしても、既存のシステムと併用するといった形になると思います」

―― やはりKVSには注目されているのでしょうか。

「そうですね。とくに更新情報などといったコンテンツは永続性も求められないですし、データの信頼性よりもスピードが要求される部分なので、そういった意味ではKVSが向いている用途ではないかと考えています。

また、最近はアプリ側のエンジニアからKVSを使いたいと言われることが増えました。テーブル設計が不要であったり、カラムを増やすのが簡単であるため、アプリ側のエンジニアとしても使いやすいようです。」

日本のインターネットメディアの中でもトップのアクセス数を誇る「Ameba」ですが、大黒氏はその中でもとくに重要性の高いトップページを担当しているとのこと。それだけに、分散KVSなどの新技術の導入には慎重な対応が求められるということでしょう。ただ、KVSには注目しているとのことで、今後どのように使われるのか興味が湧くところです。

続けてサイバーエージェントの魅力や今後の目標について伺いました。

自分自身でコーディングしてツールを開発したい

―― エンジニアとしてサイバーエージェントで働く魅力を教えてください。

「サイバーエージェントに入社するまでは、システムインテグレータやソフトウェアベンダに勤めていましたが、それらの会社と比べるとやはり縛られないというのがいいところだと思います。基本的に開発しているのが自分たちのサービスなので、自己責任で完結できるという部分が魅力です」

―― 入社されたころからインフラ全般の担当をされていたのでしょうか。

「いえ、当時はインフラとデータベースで分かれていて、私はデータベースのほうを担当していました。ただデータベースだけをやり続けるより、インフラにもチャレンジしたいと思うようになり、両方に携わる現在の形に落ち着きました。ただ、自分でラックにサーバを設置したり、ディスクを交換したりするとは思わなかったですね。そこはかなり新鮮でした」

―― 「Ameba」関連サービスだけでサーバが100台以上というお話ですが、そのくらいの数になると管理も大変になりますよね。

「ラックの空きとネットワークの帯域との戦いになっています(笑⁠⁠。⁠Ameba」サービスの規模は右肩上がりで成長を続けており、トラフィックの伸びの勢いがすごいんです。それにどう対応していくかが常に課題になっています」

―― 現在注目されている技術があれば教えてください。

「これは僕がやりたいというより、ほかの人に試してと言われているものなのですが、分散ファイルシステムの「Ceph」を現在調べています。分散KVSとは異なり、永続的にデータを保存できるファイルシステムです。クラウドのバックエンドのストレージとして使えるということなのですが、我々のサービスでも何か適用できる部分があるのではないかと考えています」

―― 最後に今後の目標について伺えますか。

「まず今後に向けてやっていきたいと考えているのが、実際に自分でコーディングをしてツールを作ることです。現在、オープンソースでいろいろなツールが広まっていますが、すべてがサイバーエージェントのサービスにそのまま応用できるわけではありません。一方で、活用できれば有効なものも多く存在しますので、そのあたりの課題を解消できるようなツールを開発できればと思っています。

目標としてはあと1つあって、出身地である徳島に還元できるようなことをしたいと考えています。ちょっと今の仕事とは路線が違うのですが、将来的に地域を活性化できる何かができればいいですね」

縛られないのがサイバーエージェントの良いところだと言う大黒氏のお話から、社内の自由な雰囲気がエンジニアのやる気を引き出しているのではないかと改めて感じました。内部の雰囲気はなかなか外からはわかりませんが、働くのであればやはり社風は重視したいところ。そういった意味でサイバーエージェントは、エンジニアにとって魅力的な職場であると言えるのではないでしょうか。

サイバーエージェント公式エンジニアブログ
URL:http://ameblo.jp/principia-ca
エンジニアの生の声を週替わりでお届け中!

おすすめ記事

記事・ニュース一覧