エンジニアtype - エンジニアのシゴト人生を考えるWebマガジン

[特集: ビッグデータ時代の歩き方 3/3] クックパッド「ハードとソフトの両方をケアできるエンジニアが救世主となる」

公開

 

<<[特集: ビッグデータ時代の歩き方 2/3] GMOインターネット「カギは、『キュレ ーション型』と『脱・運用型』エンジニア」

2011年10月12日、レシピコミュニティサイトを運営するクックパッドが、サイト運営環境をAWS(Amazon Web Services)にほぼ完全移行した。テスト環境や開発環境の一部を実験的に移行したのではなく、本サイトの移行である。
 

(左から)最高技術責任者/CTO 橋本健太氏、技術部インフラグループリーダー 菅原元気氏

(左から)最高技術責任者/CTO 橋本健太氏、技術部 インフラグループリーダー 菅原元気氏

どうして他社に先駆けてAWS移行という先進的な取り組みを行ったのか。同社の最高技術責任者である橋本健太氏と技術部インフラグループでリーダーを務める菅原元気氏はこう話す。
 
「昨年からクラウドに完全移行すべきか否かについて長い時間をかけて議論を進めてきましたが、検討していた当時はまだ信頼に足る選択肢が乏しいという状況でした。ですが、検証作業を進めることによって、AWSが運用上もっとも安定しており実用に耐え得るパフォーマンスがあると判断できたので導入を決断しました」(橋本氏)
 
クックパッドへのアクセス変動には大きな特徴がある。一日のうちでアクセスが増える時間帯は、昼食や夕食の準備にあたる12時前後と17時前後。また年間を通して見ると、バレンタインデーを境に2月のアクセスが最も増える。同社ではこの年間最大ピークに対応するため、毎年サーバの増設を強いられてきた。
 
この課題を解決するアイデアが、クラウドサービスの利用だった。
 

クラウドの導入がWebサービス開発にメリットを与える

 「当社には『3倍ルール』という社内ポリシーがありました。クックパッドがメディアに採り上げられた際などに発生する突発的なアクセス増加に対応するため、常に平常時の3倍のアクセスに耐え得るインフラを用意しておくというポリシーです。ただ、このポリシーに則って毎年2月のピークに合わせて物理サーバを増設すると、毎年莫大な投資が必要になります。その上、セットアップにも多くの時間と人員を割かねばなりません。こうした面を解消するためにも、クラウド化の検討を始めました」(橋本氏)
 

シーズンやイベントごとにトラフィックが増幅するため、サーバを常に増設しておく必要のないクラウドサービスは適していたともいえるだろう

シーズンやイベントごとにトラフィックが増幅するため、サーバを常に増設しておく必要のないクラウドサービスは適していたともいえるだろう

とはいえ、現在では40名ほど在籍するエンジニアも、クラウド導入の検討を開始した当時は10名程度 。少数精鋭のエンジニア部隊が、月間4.9億PVを誇る通常のサイト運用と並行してAWSへの全面移行を行うことに不安はなかったのだろうか。
 
「やはり当初は安定性やパフォーマスが不安材料になりました。クックパッドのようなWebサービスのクラウド導入事例は海外にいくつかありましたが、実用的なノウハウはほとんど表に出てきていない状態。ですから、可用性の検討が終わると、いつもはミドルウエア導入やネットワーク構成の変更などに充てていた運用リソースのほとんどを検証作業に振り分け、約1年かけて自分たちだけで不安材料を潰していったんです」(菅原氏)
 
幸運なことに、クックパッドのインフラエンジニアは全員がアプリ開発経験者。少数精鋭かつ、マルチなエンジニアリングができる技術者がそろっていたからこそ、クラウドはこんなところにも良い影響を及ぼした。
 

「ハードとかソフトじゃなく、もともとインターネットというもの自体が好きだったので、自然とインフラ分野にも興味を持てました」(菅原氏)

菅原氏は、「AWS移行に向けたクックパッドの取り組み」など、自身で経験したことを社内外に積極的に発信している

「コスト削減やセットアップにかける時間の抑制ができれば、新規サービスのリリースにマンパワーを割けるようになり、立ち上げのスピードも加速します。加えてサーバ環境の準備も比較的容易にできるため、将来的にエンジニアの作業を分散させる意味でもメリットがあると考えました」(菅原氏)
 
「クラウド化の検討を進めるにあたって、2011年のバレンタインデーに向けたサーバ増設が問題になりました。サーバ増設を行った場合、半年後には捨てる事になる無駄な投資になりかねないという問題です。そのため、クラウド化の検討と並行し て、既存のサーバ台数でバレンタインデーのトラフィックを乗り切るためのキャパシティの検証と、さまざまなパフォーマンスチューニングを行いました。結果的にはこのチューニングが効果を出せたため、不要なサーバ増設を避けられ、予算の面からもスムーズにクラウドへの移行ができました。」(橋本氏)
 

大切なのは、「クラウド化後」にどう動くか

国内でもクックパッドのような大規模サイトのクラウド化は例を見ないだけに、同社はクラウド化による新たな課題にもいち早く直面している。
 

###

「菅原を始め現場のエンジニアが自主的に最新技術に触れ、その知識を会社に還元してくれる。頼もしい限りです」(橋本氏)

「物理サーバであれば、サーバ同士の通信は太い線でつなげば問題ありませんでしたが、クラウド上ではそう簡単にはいきません。サーバとサーバの 間の線が細くて流せる通信量が想定より少ないなど、今までには考えられなかったボトルネックがいくつか見つかっています。こうした課題は見つけ次第、地道 に対処していかなければなりません。大量のサーバで細い帯域をカバーするなど、新しい発想に基づく設計が必要になってきています」(橋本氏)
 
もちろん、現場でインフラを担当する菅原氏もその点は十分に認識している。
 
「インフラのクラウド化が進むと、従来の考え方が通用しづらくなっていくのは確かでしょう。メリットが多いAWSですが、物理サーバに比べてまだまだパフォーマンスが劣ることも事実です。数の力で処理速度を上げたり、データベースも分散処理するなどして、冗長化や処理速度向上のための工夫も必要になってくると思います」(菅原氏)
 
GMOインターネットの山下氏と堀内氏も言っていたように、インフラエンジニアが、「最後の砦」から「攻守を兼ね備えた存在」へと変わりつつあるのは、クックパッドも同じようだ。
 
「確かにシステムの運用がクラウド化すると、インフラエンジニアにもOSやネットワークプログラミング、アプリケーションなど、より上層レイヤーの技術が求められるようになるのではないかと思っています。また、以前に比べ、インフラ関連の勉強会の開催も増えているようですので、今後インフラエンジニアが表舞台に立つ機会も増えていくのではないでしょうか」(菅原氏)
 
「菅原が言うように、これからのインフラエンジニアは、ハードウエアの運用からソフトウエアの世界に軸足を移していかざるを得ないと思っています。AWSのようなクラウドサービスが普及すると、インフラ分野にもプログラミングの力が活かせるようになる。菅原自身もサーバ管理用のツールを自作したりしていますが、インフラエンジニアにも今まで以上にモノを作る力は必要になるはずです。また一方で、アプリ開発者がインフラ領域に手を伸ばしやすくもなる。今後は組織的にも技術者のスキルや層に厚みが増すのではないかと期待しています」(橋本氏)

大規模Webサービスを自社で展開しながらも、クックパッドのようにインフラ分野に時間とコストを大きくかけられない企業は少なくない。そんな企業にこそ、菅原氏のような「技術に興味があり、Webもインフラも見られるマルチエンジニア」が重宝されるのだろう。

「今は分散ネットワーク技術に興味を持っています。今後はP2Pなどの技術がさらに重要になると考えています。」と、菅原氏の興味は既に次の新しい技術へと向いている。
 
自分たちで新しい技術を導入した後、全体最適を視野に入れてネクストアクションを考えられるエンジニアこそ、予測不能なインフラ転換期の救世主になるのかも知れない。

取材・文/森川直樹、武田敏則(グレタケ)、小禄卓也(編集部)

<<[特集: ビッグデータ時代の歩き方 1/3] ゼロスタート山崎徳之氏「どんなにインフラが変化しても、すべてはOSのインストールから始まる」
<<[特集: ビッグデータ時代の歩き方 2/3] GMOインターネット「カギは、『キュレ ーション型』と『脱・運用型』エンジニア」