クックパッド株式会社は 1998 年に料理のレシピ投稿・検索サイト「クックパッド」の提供を開始しました。現在は会員事業と広告事業の 2 本を柱に、数多くのサービスを提供する「食を中心とするインフラ」への進化を目指しています。創業当時からの理念である「毎日の料理を楽しみにすることで、心からの笑顔を増やす」は現在も変わりませんが、新規事業の数は年々増えており、その展開スピードも速くなっています。また海外でのサービス展開も積極的に行っており、現在は米国、スペイン、インドネシア、レバノンといった地域でローカルに根ざしたレシピサービスを提供しています。

クックパッドに最もアクセスが集中するピーク時期はバレンタインデーのある 2 月です。毎年、バレンタインデーの 3 カ月以上前から我々インフラチームはサーバーを増強する手配を行っていたのですが、サイトの知名度が上がるにしたがい、アクセスの急激な成長にサーバの手配がまったく追いつかない状態になってしまいました。バレンタインデー以外でも、サービスの数や規模が倍々で増えていく中にあって、インフラの調達が追いつかないという事態はかなり致命的です。2015 年 6 月時点で、クックパッドのユーザー数は月間のべ 5600 万人超で、一番アクセスが多い時間帯では 1 秒あたり 2 万リクエストにもなります。バレンタインデーはこの 2 倍前後になります。少ない人数のインフラチームと自前のデータセンターでクックパッドの膨大なアクセスを捌くには、いずれ限界が来るのは避けられなかったかもしれません。

年々拡大するビジネスに追いつけないインフラをなんとかしなければならない、自前のデータセンターではいまのビジネスのスピードについていけない - 2010年、当時の社長(創業者の佐野 陽光 氏)がそう宣言して、クラウドへの移行が決まりました。国内企業としてはかなり早い時期でのクラウド移行宣言だったと思っています。当時、私はインフラチームのひとりだったのですが、正直言うと「クラウドなんて大丈夫なのかな」と若干の不安を覚えました。しかし、ビジネスの拡大をキャッチアップするにはインフラに大きな変化が必要なことはわかっていました。技術的な制約でビジネスを止めなくてはならない、それはインフラエンジニアにとって非常に苦痛なことでした。

cookpad_image

「クラウドなら新しい技術の恩恵を受けやすく、またちょっとした思いつきや組み合わせを試しやすく、それらをビジネスに速く反映させることができます。」
- クックパッド株式会社 インフラストラクチャー部 部長 成田 一生 様

クラウドへの移行を決めた 2010 年当時は、当社のサービスに使えるレベルのサービスを提供しているベンダーは AWS 以外になく、まさに「AWS 一択」という状況でした。もっともその AWS も 2010 年当時はまだ東京リージョンが開設する前だったので、検証はシンガポールリージョンで行いました。

もうひとつ、AWS を選んだ大きな理由のひとつは、海外にいくつもデータセンターを持っていたことです。当時すでに海外でのサービス展開を積極的に行うことを決めていたため、米国や欧州にリージョンを持つ AWS は当社のビジネスにマッチしていたと言えます。クラウドでなければ、自分たちで海外のデータセンターを契約する必要があったかもしれませんが、さすがに現実的ではありませんでした。

本格的に AWS への移行を開始したのは 2011 年に入ってからです。2011 年 3 月には東京リージョンが開設したので、タイミングとしてはちょうど良かったと思います。2011 年 11 月には全ての移行を終え、データセンターの電源を落としました。最後の 2 日間はデータセンターに籠ってずっとケーブルを抜く作業ばかりしていた思い出があります。

jp_diagram_cookpad_1024x1005

AWS に移行してからまず気づいたことは、ストレージ周りの管理が非常に楽になったことです。それまでは冗長化にかなり苦労していたのですが、Amazon S3 に移行してからはその手間がなくなり、障害の頻度も激減しました。逆にオンプレミスではストレージの管理がボトルネックになっていることをあらためて感じました。

コストに関して言えば、移行前は増え続けるトラフィックをさばくため、つねに"3 倍ルール"で、平常時の 3 倍のアクセスに耐えられる台数のサーバーを購入していました。余分な在庫を抱えている状態を何年もずっと続けていたので、その無駄な部分が無くなったことは確かです。ただ、総合的なコストに言及すればそれほど移行前と大きな変化はありません。むしろ短期的に見れば AWS で上がったコストもあります。ですがクラウドに移行する最大のメリットは「ハードウェアに縛られない」という点ではないでしょうか。新しい技術を試してみたい、ほんの短い期間だけサーバーを増強したい、そういった"何かをちょっとだけやりたい"というとき、オンプレミスのデータセンターではハードに縛られて身動きが取りにくいのです。しかしクラウドなら新しい技術の恩恵を受けやすく、またちょっとした思いつきや組み合わせを試しやすく、それらをビジネスに速く反映させることができます。単純なコスト比較では語れないメリットだと思います。

当社で現在利用している AWS のサービスは Amazon EC2、Amazon S3、Amazon Redshift、Amazon VPC、Amazon ElastiCache、Amazon Gracier、Amazon Route53、Amazon SQS、Amazon Elastic Transcoder、Amazon RDS(MySQL)、Amazon DynamoDB などです。年々増えていく感じで、現在では全部で 15 ほど利用しています。

今後はさらなるアクセス増を見込んでよりスケーラブルなサービスを展開していきたいので、Amazon DynamoDB の積極的な活用を考えています。MongoDB などオープンソースの KVS はやはり管理が大変で、クックパッドのアクセスを捌くにはマンパワーが必要になってしまいます。マネージドな KVS である Amazon DynamoDB はそのあたりの悩みを解決してくれる存在だと見ています。

その他、Amazon Kinesis や Amazon Machine Learning といった分析系のサービスにも興味をもっています。こちらも機会を見て検討していく予定です。

当社ではデータセンターは持つ予定はなく、サービスはすべてクラウドで展開されることになります。だからこそ気をつけているのは必要以上にロックインされないことです。データセンターをやめたからこそ、インフラをブラックボックスにしない技術力がインフラエンジニアには求められるようになるのではないでしょうか。現在、当社のインフラチームには 12 名が在籍していますが、そのうち 7 名が AWS 周りを担当しています。全員、AWS のサービスをかなり使い込んでいますが、彼らにとっても低レイヤーの知識は以前と変わらず求められています。しかし、データセンター時代にはサーバーは物理的な作業を伴うハードウェアそのものでしたが、クラウドの登場によって、コードを書けばサーバーの調達から運用までできるようになりました。そういう意味で言えば、クラウドの普及はインフラエンジニアに求められる知識と技術を大きく変えたかもしれません。

AWS に望むことがあるとすれば、今後もさらに安定したインフラ基盤を目指してほしいという点でしょうか。クックパッドのインフラチームがサイト運営で最も大切にしてい るのは安定性です。当社はつねに 1000 以上のサーバーを運用しているので、ハードウェアがどこかで故障してしまうのは仕方ないと思いますが、そのリカバリのための改善が行われているのは、とても助かっています。また、今後、ハードウェアを再起動することなく入れ替えることができるようなライブマイグレーションのような機能が提供されたら、と考えています。

 

- クックパッド株式会社 インフラストラクチャー部 部長 成田 一生 様