ニュース
サーバーとアプリを高速化、さばけるアクセス数を競う「ISUCON 3」レポート
今年の優勝は、LINE選抜チーム「チーム生ハム原木」
(2013/11/12 06:00)
与えられたサーバーとそこで動くWebアプリケーションを限られた時間で高速化して、さばけるアクセス数を競う技術イベント「ISUCON 3」が、11月9日にLINE株式会社で開催された。第3回の開催となり、今回はLINE株式会社、面白法人カヤック、株式会社データホテルの3社が共催した。
ISUCONは、3人1組のチームそれぞれに同じ構成で用意されたサーバー(VPS)が与えられ、数時間でチューンしていちばん多くのアクセスをさばけるようにしたチームが優勝という、“速い者が勝ち”のバトルだ。設定変更やアプリケーションの改修だけでなく、サーバーソフトやOSを入れ替えたり、アプリケーションをまったく作り変えたりしてもよい。そのかわり、アクセスする側から見て挙動が変わるとFAIL(失敗)と判定される。
会場には、事前にオンラインで行なわれた予選を勝ち抜いた、一線級のチーム25組が集まった。席は早いもの順ということもあり、各チームともかなり余裕を持って会場に登場していた。
テーマは、Twitter風の画像SNS。「今日の18時にプレスリリースを打つから、それまでにアクセスに耐えられるようにしておいて」という無茶振りを受けたという設定だ。VPS 1台ですでにWebアプリケーションが動いており、あと4台の空のVPSも使って高速化する。
途中で各チームがベンチマークを実行すると、その結果がリアルタイムのランキングに反映され、会場のスクリーンに映し出される。今回は、「最初に5万点(途中で2万5千点に変更)に達したチームに特別賞」というボーナスポイントも設けられ、盛り上がった。なお、最終的な結果は、時間終了のあとに審査員がサーバーを再起動して計測する形で決められる。
優勝したのは、「LINE選抜『チーム生ハム原木』」。2位が42,464.4点(アクセス)のところを、177,290点と、4倍以上のスコアを叩き出した。
出題した藤原俊一郎氏(面白法人カヤック)の講評によると、今回は5台のサーバーをうまく使うとスコアが出るように問題を設定したとのこと。ポイントとして説明されたのは、いかに1台100Mbpsの帯域を5台のサーバーで使いきるか、画像変換はアップロードされた時に行うか閲覧された時に行うか(アクセス競合が問題になるという)、など。また、アップロードされる中に1MBを超えるサイズの画像があり、memcahcedのデフォルト設定ではキャッシュに載らないという罠もあったようだ。
「技術を競うイベントで、エンジニアの未来を良くしたい」
ISUCONについて、実行委員長の櫛井優介氏(LINE株式会社)に話を聞いた。なお、インタビューは開催時間の早いうちで、結果がまだまったくわからないときに行なわれた。
―― ISUCONの始まりを教えてください
櫛井:僕はいま会社で、エンジニアが集まった部署の中で1人だけエンジニアじゃなくて。技術広報という肩書で、イベントや勉強会の運営などをやっています。そのほか、サービスのクロージングから宴会の幹事まで、エンジニアがあまりやりたがらないようなことも(笑)。
そんな中で、周囲のエンジニアから「同じ条件で戦って順位が決まるイベントがやりたい」という声があって、始めました。先にあったチューニンガソンというイベントを意識していて、「もっと“なんでもあり”でやりたい」「言語にしばられないでやりたい」という方針でやっています。
第1回は2011年の8月で、新宿の貸し会議室で20組が集まりました。3名で1チームというのは最初から同じで、時間内で最大のパフォーマンスを発揮するには3人がいいだろうと。そうした基本的なルールや仕様は変わっていません。サーバーも、毎回データホテルの提供です。
第2回が2012年の11月で、NHN Japan(LINE株式会社の前身)の勉強会「NHNテクノロジーカンファレンス」の番外編として開催しました。
―― 「ISUCON」の名前の由来は
櫛井:最初は全然違う名前で考えていたんです。でも、あまりいい名前じゃなくて。当時、エンジニアがサーバーをチューニングしていくときにあまりにひどい構成だと「椅子を投げるぞ」という言葉が流行っていて(笑)、募集開始5分前に「だったら“椅子”って言葉を入れちゃえば」ということで、「ISUCON」に決まりました(笑)。
―― 毎回、違った種類のWebアプリをテーマにしていますね
櫛井:1回目がブログ、2回目がチケット販売サイト、今回が画像SNSですね。Webエンジニアが普段扱っているアプリに近いので、挑戦しがいがありますし、ここで得たものを持ち帰れます。そういったノウハウをオープンにシェアするマインドで考えています。
なので、毎回、懇親会が盛り上がるんですよ。いつも欠席なしで。それぞれがやったことをほかのチームと話したくて、うずうずしてるんですね。
そうやって技術を競うというのと、エンジニアの未来をよくしたいというのが、2つのテーマです。そうすれば、僕が見ているサイトも良くなってうれしい(笑)。
―― 問題を考えてアプリを用意したりする側も大変そうですが
櫛井:そこはまるきり任せていますが、そうとう大変そうで、1カ月ぐらい準備しています。5つの言語を用意していますし。あと、出題する人は考えているうちに難易度が自分でわからなくなるので、ほかの人にテストしてもらったり。
今回は、1・2回目で藤原さんが連勝したのと、出題していた側の人も出てみたいということで、藤原さんに出題をお願いし、快諾していただきました。そうしたら優勝の賞金が100万円になって(笑)。
―― 今回は予選もありましたね
櫛井:いままで応募の先着順だったんですが、ちょっとフェアじゃないと思っていたので、今回は予選を設けました。74チーム210人が参加しました。
今年は学生枠も設けました。学生さんは実務経験が少ないので不利な部分があって、でも経験を積んでもらいたいので、6チームの枠を用意しました。
あと、共催枠でLINEとカヤックから1チームずつ。いままで出題した側が予選に参加してみて、「厳しい」と泣きそうになっていました(笑)。
―― アプリからデータベース、サーバーまで、短い時間で把握してチューニングする必要がありますよね
櫛井:これまでの傾向として、役割分担をきっちりしているチームが強いといえます。同じ作業をしている時間がないので。さらにいうと、アプリをわかってインフラをいじれる人が強い。LINEはそういう人がいるので、僕は運営としては公平な立場ですが、LINE社員としての気持ちではぜひ優勝してほしい(笑)。
(なお、結果は前述した通り、LINE選抜チームが優勝した。)
―― 今後の予定は
櫛井:毎年1回できればいいかなと。多すぎても大変ですし。スピンオフ企画は考えています。今年も学生さんを対象に「ISUCON夏期講習」を開きまして、今後もやっていきたいと思います。