サイバーエージェントアメリカでエンジニアとして働く鷹雄健氏
サイバーエージェントのノウハウで早期の内製化を実現
- ――どのような背景からシステム内製化プロジェクトが始まったのでしょうか。
鷹雄:これまでサイバーエージェントでは、
事業の立ち上げにおいてスピードを優先してきました。このため、 ビジネスで何らかのシステムが必要になったときに、 内製ではなく外注、 あるいはASP (Application Service Provider) が提供するサービスを利用するケースがあります。 スマートフォン広告ネットワークサービスを運営しているAMoAdにおいても、
事業スピードを優先し、 あるシステムでASPを利用していましたが、 システムの柔軟性向上や課題の解決などを目的として、 2013年1月にそのシステムを内製化することが決まりました。 この移行作業は本当に大変でした。最初のメンバーは私とJavaエンジニアの2名だけで、
このままではいつまで経っても移行できないと判断し、 まずはリソースを集めることに集中しました。最終的には、 サイバーエージェントグループ全体のリソースやノウハウを活用することで、 3ヵ月で自社にシステムを構築して移管することができました。 - ――今回の移行作業は3ヵ月で完了したということですが、
もしサイバーエージェント全体のリソースやノウハウが使えなければ、 どれくらいの時間がかかったでしょうか。 鷹雄:まったくわからないですね。そもそも移行できたのかすら怪しいと思っています。サイバーエージェントグループには1,000人以上のエンジニアが在籍していて、
何か調べたいことがあったときに、 それについて詳しいエンジニアにすぐに話を聞くことができます。もちろんインターネットや書籍でも調べることはできますが、 難しいのは実現できないことについて答えを知りたいときなんです。多くの場合、 何ができるのかについては書かれていても、 何ができないかについてはあまり触れられていません。つまり、 できないことについて調べていると、 答えにたどり着けない可能性があるのです。しかし、 実際に同じようなことで悩んだエンジニアに話を聞くことができれば、 実現できないことがすぐにわかります。こういったところで、 エンジニアが多数在籍しているサイバーエージェントならではのメリットをあらためて実感しました (図1)。
一般的なサーバで無停止システムを構築
- ――新しいシステムのインフラはどのような構成になっているのでしょうか。
鷹雄:サーバは100台以上あり、
基本的にはオンプレミスで運用しています。外部のIaaS (Infrastructure as a Service) を利用しないのは、 システム規模が大きくなるとオンプレミスのほうがコストを抑えられることと、 システムの要件に合わせて柔軟に構成できることが理由です。 IaaSのメリットはハードウェアの運用管理負担を軽減できることだと言われていますが、
それなりの規模でセキュリティに配慮しつつ、 かつ冗長性も確保しなければならないというシステムでは、 やはりインフラエンジニアがきちんと面倒を見ないと実現は難しいんです。そうすると、 運用管理にもそれなりのコストが必要で、 また仮想サーバの利用料金も相当な額になるため、 オンプレミスで運用することを決めました。 - ――今回のシステムでは、
サーバ仮想化技術は使われているのでしょうか。 鷹雄:すべてのサーバではありませんが、
KVMを利用して仮想化しています。サーバを仮想化するというとパフォーマンス面でのオーバーヘッドが話題になることが多いのですが、 KVMに関してはハードウェア構成や設定が適切であれば物理サーバと変わらない感覚で利用できます。また、 仮想サーバを別の物理サーバへ移行したり、 仮想サーバの作成や削除も簡単に行えたりと、 運用負荷を軽減するメリットまで考えると、 データベースサーバなど高負荷なものを除いて、 物理サーバで直接運用する理由はあまりないのかなと考えています。 - ――プロジェクトを進めていく中で、
難しかった点があれば教えてください。 鷹雄:今回のシステムで要件の1つとして求められていた完全無停止を実現することです。一般的なサービスであれば、
たとえばサーバのスケールアップやスケールダウンといった構成の変更、 あるいはバックアップの取得といった理由で深夜にサービスを止めることがあります。しかし、 今回のシステムの要件は、 どのような理由があろうと止めることはできない、 というものでした。もちろん、 ミドルウェアのダウンといったトラブルが起きてもシステムを稼働し続ける必要があるので、 インフラやミドルウェアなど、 さまざまなレイヤで冗長化を図っています。 特に難しさを感じたのはシステム全体の設計です。時間をかけることができれば、
どうすればシステムを止めずに運用し続けられるかをじっくり検証できますが、 カットオーバーが遅れれば遅れるほどビジネスへの影響も大きくなります。そのため、 短い検証期間の中でベストな設計を見つけ出す必要がありました。この点は苦労したところです。 ハードウェアの耐障害性の向上という意味で言えば、
まず選択肢として考えられるのは信頼性の高い製品を使うことです。ただ、 そうした製品は概して高価であり、 用途や要件によっては選択できないケースもあるでしょう。今回のシステムについても、 高い信頼性が求められるシステムではありましたが、 用途や要件を考えると信頼性よりも性能面にコストをかけたいところでした。実際、 パフォーマンスの点ではFusion-IO社のioDriveを利用する形で投資しています。一方、 信頼性については一般的なサーバを利用し、 冗長化ができて、 かつ低遅延で切り替えられるアクティブスタンバイ構成にすることなどによって、 コストを抑えて対応しています。
インフラ設計・構築のおもしろさとやりがい
- ――今回のプロジェクトではインフラ面を担当されたとのことですが、
以前からインフラエンジニアとして業務されていたのでしょうか。 鷹雄:サイバーエージェントに転職する前はアプリ開発をやっていましたが、
サイバーエージェントではIaaSを使ったインフラの設計から上位レイヤの開発まで手がけました。実は、 あまりレイヤにはこだわっていなくて、 サイバーエージェントに入社する際に、 アプリ開発とサーバサイドエンジニア、 インフラエンジニアのいずれかを選んでほしいと言われましたが、 1つには絞れないという話をしたことを覚えています。実際、 1~2年ほど前からフルスタックエンジニアというキーワードが出てきて、 レイヤの隔たりがなくなってきた印象です。 今回のプロジェクトでも、
インフラやアプリ開発まで担当していたことで解決できた問題もあります。パフォーマンス面で問題が発生した際、 ボトルネックになっているのがアプリケーションやミドルウェアなのか、 それともインフラ側なのかを見極め、 どのように改善するか考えたときには、 両方を知っていることのメリットを感じました。 もちろん、
サイバーエージェント社内でもインフラを専門的に担当するエンジニアはいます。しかし、 昔と変わってきているのは、 インフラの構築やネットワークの管理だけではなく、 たとえばChefで運用を自動化するという話になるとRubyを覚えなければならないなど、 インフラエンジニアにもプログラミングの知識が求められるケースが増えていることです。そういった意味で、 レイヤの境目は徐々に薄れてきているのではないでしょうか。 - ――インフラの設計や構築をしていて、
おもしろさややりがいを感じるのはどういったところですか。 鷹雄:サイバーエージェントで提供するサービスのインフラ設計と構築という点で言えば、
個人で開発したサービスでは扱えない膨大なトラフィックを処理する基盤を作れることです。どれだけ勉強しても、 実際に膨大なトラフィックを処理するために何が必要になるのかは、 経験してみないとなかなかわかりません。ハードウェアベンダーの方にお話を伺っても、 それだけのトラフィックをはたして処理できるかどうか保証はできない、 と言われることもあるほどです。そのようなトラフィックと向き合えるのはおもしろいですし、 やりがいもあります。 またサイバーエージェントであれば、
インフラの設計や構築といった業務において、 適切に評価が行われていることも大きいですね。インフラは動いて当たり前で、 障害が発生すると怒られるといった風潮があります。いくら仕事がおもしろくても、 適切に評価されなければモチベーションを維持するのが難しいと思いますが、 サイバーエージェントでは技術力に基づいて適切に評価が行われます。そういった点でストレスを覚えることなく仕事に取り組めるのは、 サイバーエージェントの良いところだと考えています。 - ――評価という面以外での、
サイバーエージェントの魅力を教えてください。 鷹雄:サイバーエージェントグループ内の数多くのエンジニアとコミュニケーションできることです。グループ間の情報共有やコミュニケーションに敷居がなく、
何かを知りたいときにすぐに聞けるので助かっています。 エンジニアが働きやすい環境を整えるということに、
すごく気を配っている点もありがたいですね。オフィスのレイアウトも工夫されていますし、 机やいすも集中して作業できるものが選ばれています。こういったところは、 サイバーエージェントがエンジニアの会社なんだなと感じる部分です。 - ――サイバーエージェントグループでは、
広告配信事業を展開している事業会社のエンジニアを集約してシステムを強化する方向を打ち出しています。その中で、 インフラ面では今後どのような展開を予定しているのでしょうか。 鷹雄:2014年1月に新たな組織として
「Coresystem Infrastructure Association」 を立ち上げました。この組織は各グループ会社のすべてのインフラを統合し、 ビッグデータ処理を支える基盤を構築していきます。また各社でノウハウを共有したり、 データセンターの集約による効率化、 そして新技術の研究なども目的としています。 現在アドテク本部
(写真2) では、 データサイエンティストチームが日々改善施策を考案しており、 その内容を配信システムチームがシステムに適用することで、 広告主側とメディア側の双方で大きな効果を生み出しています。このようにビジネスが拡大していく中で、 Coresystem Infrastructure Associationはより高いレベルの要求に応えられるように、 広告配信のためのインフラを強化していきます。