ISUCON13に初参加した感想Zennぱっぱ🏃ISUCON13に初参加した感想2023/12/03に公開ISUCONideaはじめにISUCON13に初参加してきました!思った以上にいい経験だったので、ブログに書こうと思います。先に結果だけ書くと、最終スコアが10,539点で、順位は238位/661チームでした!参加のきっかけ元々、ISUCON自体は昔から知っていて、いつか参加したいなあと思っていました。やるならチームでやりたいなあと思っていたので、会社の同期に声をかけてみました。すると、同期2人が「やろう!」と言ってくれたので、参加することにしました。本番までの練習さて、参加が決まったので、10月から毎週の土日に3人で集まって練習しました。(海の見える宿で合宿などもしました)集まったものの、全員が初参加だったので、とりあえず過去問を環境構築しました。ここで、ISUCONの問題のクオリティに衝撃を受けました。(笑)こんなにもきちんとしたWebアプリのチューニングなのかと。フロントエンドも作り込まれていて、運営さんすごいなぁと思いました。いざ環境構築したものの、なにをすればよいかわからなかったので、ブログをたくさん読みました。すると、「推測するな、計測せよ」という言葉が多く出てきたので、まず計測の基盤を整えることを行いました。事前に、alpやslowqueryの計測結果をログに残していく仕組みを作りました。本番では、こちらの計測基盤を使用していくことにしました。ちなみに、NewRelicなどのリッチな計測ツールを導入することも考えたのですが、導入で沼りそうという判断で、今回はなしにしました。計測基盤が導入できたので、INDEXを貼ったりN+1を解消したりしました。インフラ構成を変更する練習は時間的にできませんでしたので、今回はINDEXとN+1を着実にやっていくという戦略になりました。~9時に借りていた会議室に集合し、準備をしました。Githubリポジトリを用意していないなど直前に色々焦ってしまいました。~問題解説がスタートしました。Youtubeライブの不調により、数分遅れており、「今回の問題はライブ配信のチューニングか!?」というコメントがあり、笑っていましたが、まさか本当だったので衝撃を受けました。運営さんの素晴らしい伏線回収に感動しました。~いよいよ、大会スタートです。以下の役割に分けて作業を行いました。計測基盤の導入アプリの理解これらは練習通りに行くことができましたが、1時間半ほどかかってしまいました。アプリの理解は私が担当しました。今回DNSがキーとなっているようでしたが、結局なにも手は打てませんでした。DNSのAレコードをDBで管理する設計があるんだな〜ということを知れました。~計測の基盤が整ったので、ベンチを回します。初期ベンチが成功したときは、非常にうれしかったですね。初期スコアは3,761点でした。午前はここまでにして、お昼にしました。~さて、午後からはチューニングをしていきました。logを見て、INDEXを一つずつ貼っていきました。いうステップで行いました。実務ではそうするべきだと思いますが、ISUCONでは時間との戦いでもあるので、「次回からはINDEXはサクッと貼ってしまう戦略でもいいかもね」という話をしました。7,394点までスコアが伸びました。~残り時間で一気にスコアを伸ばすために、DB構成を分けようという判断をしました。ここは練習で一回もやったことがなかったので賭けの状態でした。メンバーにインフラエンジニアはいませんでしたが、私はAWSをよく触っていたこともあり、私がリードしてインフラ構成の変更にチャレンジしました。AWSのセキュリティグループの変更、mysql設定ファイルの変更、DBサーバーの向き先などの設定を変更し、無事DBサーバーの分離に成功しました。10,415点になりました。このとき、嬉しすぎて全員で抱き合いました。~DB分離が終わった時点で、残り1時間だったので、下手に変更してFAILすることが怖かったので、安全にできるプチ改善を行うようにしました。具体的には、ログを止めて、スコアアップを図りましたが、あまり変わりませんでした。なったので、ベンチガチャを回しました。2回ほど回し、過去最高点がでたので、ストップしました。最終スコアは10,539点でした。感想ただただ楽しかったです。運営さんとメンバーには本当に感謝です。メンバーとは毎年出よう!という話になったので、来年が楽しみです。練習した成果はしっかりと出せて、それ以上の成果も出せたので非常に満足のいく結果でした。次回に向けて次回は100位以内を目指したいです。個人的には以下のアクションを取っていきたいです。Proよくある質問LinksX(Twitter)GitHubメディアキットLegal利用規約プライバシーポリシ。