イベントレポート
ISUCON 4
サーバーとウェブアプリを高速化し、さばけるアクセス数を競う技術戦が今年も
「ISUCON 4」開催、予選に185チーム・本戦に31チームが出場
(2014/11/12 13:00)
与えられたサーバーとそこで動くウェブアプリケーションを限られた時間で高速化して、さばけるアクセス数を競う技術イベント「ISUCON 4」が11月8日に開催された。第4回となる今回は、LINE株式会社が主催し、テコラス株式会社(旧株式会社データホテル)とクックパッド株式会社の2社が協賛。LINE株式会社のオフィスに参加チームが集まって技術を競った。
ISUCONは、当日発表されたサーバー(テコラスのVPS)とそこで動いているウェブアプリケーションを元に、決められた数時間でチューンしていちばん多くのアクセスをさばけるようにしたチームが優勝という、“速い者が勝ち”のバトルだ。設定変更やアプリケーションの改修だけでなく、サーバーソフトやOSを入れ替えたり、アプリケーションをまったく作り変えたりしてもよい。そのかわり、アクセスする側から見て挙動が変わるとFAIL(失敗)と判定される。
事前のオンライン予選に185チーム(507人)が集まり、そこから本選に31チーム(88人)が出場した。内訳は、予選トップ23チーム、予選での学生枠トップ5チーム、運営3社の選抜3チームとなる。なお、前回は予選参加が74チーム(210人)であり、参加チームが大きく増えている。
今回のテーマは「動画広告配信サーバー」。ページ表示時にリアルタイムで抽選が行なわれて広告が配信されるタイプだ。また、広告入稿や、インプレッション数とクリック数を数えて報告する機能も含まれている。
激戦を制して優勝を勝ち取ったのは、LINE選抜チーム「生ハム原木」。前回のISUCON 3に続いての2連覇となった。準優勝はチーム「チームフリー素材」。3位が、ISUCON 1~2優勝者である藤原俊一郎氏の率いる「fujiwara組」。4位にチーム「ナイスカロリー」、5位にチーム「lily white」が入賞した。5チームにはそれぞれ賞金が授与されたほか、優勝チームには副賞として、Node.jsから制御できるクアッドコプター「AR Drone」がテコラスから全員に渡された。
また、学生枠トップの学生賞に「(ρ_-)/超銀杏バスターズ\(・ω・ o)」が入賞した。学生賞にも賞金が渡されたほか、特別賞としてテコラスのVPS「EX-CLOUD」の1年間無料プランがプレゼントされた。
出題したクックパッドの成田一生氏の講評によると、今回いちばん効果のあった対策は、動画の大きなデータをクライアントにキャッシュさせること。適切に「Cache-Control:」ヘッダーを付けて返すことで、点数が2~3桁違ってくるという。この説明には、会場中から「ああ……」という呻き声が聞こえた。これに気付いたのが1位(614,841点)と2位(362,755点)の2チームだけで、3位(15,350点)を大きく引き離した。
そのほか出題側が仕掛けたこととしては、初期状態でVPSのメモリの大部分が使われていて、ローカルでベンチマークソフトを走らせるだけでメモリがスワップアウトされる状態になっていたことや、3台のVPSのうち初期状態の1号機だけ性能が低いこと、予選とは逆にベンチマークのワーカー数を増やしても点が上がらないようにしたことなどが説明された。
優勝チーム3人のコメント:
- tagomoris 「年に一度の、本当に技術のことだけ考える楽しい一日でした。凄腕の人々のチームの中で優勝できてうれしいです」
- kazeburo「本当にギリギリのところで設定の間違いに気付けてよかった。ほっとしました」
- sugyan「優勝できたのもうれしいですし、このイベントを通してノウハウや失敗談が参加者間で共有されてウェブ業界の技術が底上げされていくのを毎回感じます。追いていかれないよう今後も精進したいと思います」
トップクラスのエンジニアが対決する「夢の舞台」
今回の運営の3社から、成田一生氏(クックパッド株式会社)、櫛井優介氏(LINE株式会社)、山川英治氏(テコラス株式会社)に話を聞いた。
―― 今回はクックパッドが出題として参加しましたね。
櫛井氏:問題作成を担当していた人が「成田さんにお願いしておいたから」と成田さんを連れてきました(笑)。
成田氏:ちなみにクックパッドの出題チームは若いメンバーで、私以外の2人はそれぞれ22歳と17歳でした(笑)。
本選では動画広告配信という、アドテクをテーマにしました。動画広告がここ1年で流行ってきていることと、アクセス数が売り上げに直結しているのでシビアなことが問題として選んだ理由です。また、データのサイズの大きさなど、技術的にも課題があります。
今回はトラブルが多くなってしまいました。1つには、負荷をかけるサーバーが午前中に不調でスコアを計れなくなったこと。また、動画はサイズが大きいため、ネットワークの帯域がいっぱいになって、帯域の奪いあいになってベンチマークのスコアが安定しなかったことです。
ネットワークの帯域については、事前の予想が外れたのも原因です。実際のサービスでは大きなコンテンツをできるだけCDNでキャッシュされるようにするので、それを模倣して、キャッシュさせるとスコアが大きく伸びるように作りました。皆がこれに気付いてもらえれば帯域に問題はなかったのですが、気付いたチームは少なかったようです。
実際に参加していると、どうしても周りが見えなくなりますよね。私も過去に2回参加して、1~2カ月は「なんで俺はあそこに気が付かなかったんだろう」と落ち込んだりしました。
山川氏:テコラスは、ちょうど11月1日に社名を変更した直後の協賛となりました。今までと同様に、本選で使うサーバーを提供しています。また、優勝の副賞のAR Droneを用意しました。参加者に合わせて、プログラミングで楽しめるものをということで、時間をかけて選びました(笑)。
櫛井氏:ISUCON 4を発表してから、テコラスも社名が変わったほか、クックパッドもロゴを変更してるんですよね(笑)。
―― 予選も盛況だったようですね。
成田氏:1カ月前にオンラインで予選を開催しました。参加チームが多くなったので、予選は2日設けて、どちらかに参加できるようにしました。この時もクックパッドが出題です。
予選のテーマは、パスワードリスト攻撃対策のあるログイン画面でした。単純なつくりのプログラムだけに、かなり激しい争いとなりましたね。
櫛井氏:参加者はオンラインでしたが、運営と出題チームはLINEのオフィスに集まって、深夜までいっしょに過ごしました。
成田氏:実はベンチマーカーにバグがあって、そこを突いて高得点を出したチームが数チームありました。そのバグを1日目の後に修正しつつ、2日目と1日目で公平になるように論議して、徹夜になりました。
結局、1日目の高得点は尊重して上位5チームを本選出場にした上で、それ以外の1日目の参加チームも2日目のベンチマーカーでスタッフが計測しなおして、順位を決めました。
櫛井氏:予選参加が、74チームから185チームと、かなりビッグなイベントになりましたね。予選の傾向では、プログラミング言語別でgo言語が4位に急上昇して、流行の移り変わりを感じます。
―― 次にまた出題を頼まれたらどうしますか?
成田氏:「もう絶対にやらない」とみんな言っていますね(笑)。夏ごろからずっと時間をかけて、人生のワンシーンをISUCON 4に捧げたと感じています。
同時に、とても楽しかったのですが。ISUCONは僕らにとって、日本のウェブ業界でトップクラスのエンジニアが対決する「夢の舞台」です。
同じジャンルのエンジニアが数字でランキングされるので、技術力の低さが可視化されてしまう。残酷ですが、それも楽しい。すごいらしいと言われている人が、どれぐらい優秀なのかも、自分と比べて数字で分かりますし。
櫛井氏:ちなみに、去年は優勝だけに賞金が与えられましたが、今年は5位まで賞金を出しています。優勝だけだと最後にいちかばちかの修正を加えて点数が出ないチームが多くなってしまうためです。最後まで戦いきってもらい、粘り強さを出してほしい。また、学生の人にももっと参加してほしいですね。
もちろん賞金だけではなく、猛者が1つの場所に集まってガチンコで対決することに魅力を感じてもらえているようで、4回でこんなビッグイベントになりました。とにかく熱量がすごい。それで参加者が帰って自分たちのプロダクトに反映して、ウェブの技術が上がってくれれば、使う側の私も助かる(笑)。
―― 参加者の方々も参考になるレポートをブログに上げていますよね。それをISUCONの公式ブログでも大量にリンクしていますね。
櫛井氏:リンクは私が手動で上げています。Twitterからアンケートまで、技術以外の部分は私が一人で担当しています。エンジニアのためになることであればと思って。
―― ちなみに、ISUCON 5の予定は?
櫛井氏:来年もやりたい、という気持ちはあります。まだ未定ですが。
次回やるなら、予選は1日にしたいですね。参加者のスケジュールを考えると候補日が選べるほうがいいのですが。ここまで大きなイベントになると「予選こそがISUCON」という方も増えるので、今回のトラブルを考えると、公平さを重視して、1日でやりきりたい。