「ISUCONって、本当に楽しい!」――“新体制”のISUCON11運営チームに聞くその醍醐味:面白い! だけで終わらない魅力
出題されるWebサービスを決められたレギュレーションの中でチューニングし「いい感じにスピードアップ」することを競うコンテスト、「ISUCON」。2021年9月18日に本選が開催される「ISUCON11」の運営チームに、出題の大変さやISUCONの楽しさ、醍醐味(だいごみ)を聞いた。
東京五輪で新たな記録を目指し、ライバルや自分自身の限界を超えようと努力するアスリートの姿に心を打たれた人も多いのではないだろうか。ソフトウェアエンジニアリングの世界ではスポーツの世界とは異なり、そこまで自分を追い込み、ガチで競う機会はなかなかないが、それを体験できるイベントが年に1回開催されている。「ISUCON」だ。
ISUCONとは「いい感じにスピードアップコンテスト」の略称だ。毎回異なるWebサービスが出題され、決められたレギュレーションの中でチューニングし、どれだけ高速化できるかを、1〜3人のチームで競う。ベンチマークを回して最も高い得点をたたき出したチームの勝ち――と、言葉にすれば簡単だが、ISUCONにはエンジニアリングに必要な要素が詰まっているといえるだろう。
チューニングを行うには、フロントエンドからバックエンドに至るまで対象Webサービスのアーキテクチャを把握し、構成する各技術要素の特性を理解しておく必要がある。さらに、何がボトルネックとなっており、何がリソースを消費しているかを計測し、仮説に基づいて改善して再び計測していく……という、ソフトウェア開発の基本を繰り返すことも重要だ。その際に武器となる言語や開発ツール、モニタリングツールなどにも通じていなければならない。ミクロからマクロまで、エンジニアとしての幅の広さと、突き詰める奥の深さ、両方が求められる。
そんなわけで、2021年で11回目を迎えるISUCONへの注目度は年々高まってきた。初回からISUCONの企画・運営に携わってきたLINEの櫛井優介氏(Developers Successチーム Culture Evangelist)によれば、「ISUCON9くらいまでは参加枠が埋まるのに2カ月程度かかっていましたが、ISUCON10では、500チームという上限が25時間で埋まってしまいました。そこで今回(ISUCON11)は、もう少し増やした方がいいのかなと上限を600チームに増やしたら、なぜか2時間で埋まってしまいました」と、うれしい悲鳴が上がる状況だ。
「ISUCONは『エンジニアの運動会』と言われることもあるんですが、年に1回、技術者が集まって楽しく競えるところが注目されているのかなと思います。また、最近は学生がすごく強くなってきているのが特徴です。学生の皆さんをはじめ新しい人がコミュニティーにどんどん入ってきてくれているのも、盛り上がっている要因の一つではないでしょうか」(櫛井氏)
これまでとは運営体制を変えて準備が進められた「ISUCON11」
ISUCON11のオンライン予選は2021年8月21日に開催され、学生96組を含む598チーム、のべ1421人が参加した。
お題となったのは「ISU」(イス)から送られるデータを記録して確認する「ISUCONDITION」というサービスで、世の中でも広がりつつあるIoTサービスを意識した構成だ。8時間の競技を経て、ベンチマーク上位を記録した30チーム、81人(うち学生15人)が2021年9月18日に開催されるオンライン本選に参加する。
学生パワーの高まりも背景に、運営体制も変化している。以前は、本選出場者へのヒアリングを元に、上位入賞チームに翌年の出題を任せる形だった。つまり、本選を戦った強いエンジニアたちに「こいつの問題を解いてみたい」と思わせるチームが、予選、本選ごとに1チーム一問形式で問題を用意していた形だった。
これに対しISUCON11では、予選、本選、参加者向けのポータルというプロジェクト単位でリードを立て、そこに、NTTコミュニケーションズ(以下、NTT Com)、ヤフー、そして東京工業大学デジタル創作同好会「traP」からの有志やTeam takonomuraのメンバーがアサインされていく新しい体制を取った。学生と社会人が共同で進めていく形だが、櫛井氏ら過去の運営に携わった経験者から、「初めて参加する人はここでつまずきがちで、それを解消するためにこんな準備が先に必要」といったアドバイスも得ながら、想像以上にスムーズな運営が実現できたという。
予選作問チームに加わったNTT Comの北澤祥太氏(プラットフォームサービス本部)もヤフーの沖本祐典氏(検索統括本部)も、予選終了直前にポータルが使えなくなり参加者に不便をかけてしまったが、それでもどうにか無事に予選を終えることができ、本当にほっとしていると声をそろえた。「運営は学生の皆さんも含めて人数が多く、コミュニケーションの負荷が高めだったのですが、いい方に進んで無事終えることができ良かったです」(沖本氏)
インフラを担当した北澤氏は、「競技者が利用するベンチマーカー用の仮想マシン600台全てを一発で展開するという大規模な作業は初めての経験でした。そのため競技前日よりも前に600台を立ち上げる検証を行い、そこで『Terraform』のstateから1台、2台外れてしまう問題を確認しました。このときは『terraform import』コマンドでstateから外れたリソースを『Terraform』の管理化に入れることで解決しました。この例のように、構築作業や構築された環境で意図しないことが起きていないかを事前に十分検証しておくことができたからこそ、当日は『いけるやろ』という気持ちで臨むことができました」と振り返った。
基本的にISUCONの出題者は、過去に参加者としてISUCONに参加し、なかなか上がらないスコアと悪戦苦闘した経験の持ち主ばかりだ。運営の立場になってみると、外から見ているときとは違った視点が得られたという。
「ベンチマーカーを作る側になってみて、思った以上にいろんなことを考えているのだと実感しました。例えば、ただ単にリクエストをどれだけさばけるかで点数を付けるのではなく、バックエンドのどのエンドポイントがどんなタイミングでたたけるとユーザーはどううれしいのか、といったことまで考えながら点数設計を行う、それ故にいろんな悩みがあるんだなというのを実感しました」(北澤氏)
沖本氏も「作問者は、参加者が思っているよりも10倍くらい考え、すさまじいエネルギーと時間をつぎ込んでいることを実感しました。ISUCONの問題には、実際のWebサービスとして自然であることと同時に、プログラミングコンテストやCTF(Capture The Flag)のような競技性も求められます。その2つを同時に成立させることは正直離れ業なんですが、運営にはそれを実現しようという熱意とスキルを持った人々が集まっていました」と述べた。
エンジニア個人としてはもちろん、会社として携わることにも大きな意義
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- 「ISUCON11」の予選レギュレーションが発表 競技日程は2021年8月21日
ISUCON11の予選レギュレーションが発表された。チームで登録する必要があり、1チーム当たりの選手は1〜3人。予選に参加できるのは最大600チーム。参加チームはAWSのアカウントを用意しておく必要がある。 - 衛、走る――変わらない価値を追求し続ける、Hardeningの挑戦
複数人でチームを組んでビジネスを「衛る」技術を競うイベント、「Hardening 2020 Business Objectives」が沖縄で開催。「ビジネスの目的」は何なのか、それをどのように守っていくのかを9チーム、約100人の参加者が体験した。 - CTF問題「マルウェアの作成した自動起動設定を発見せよ」から学べる知識とは
情報セキュリティの技術を競うコンテスト「CTF」の問題から情報システムの仕組みやセキュリティを理解する連載。第4回は、「マルウェアの作成した自動起動設定を発見せよ」という問題について解説します。