.
+- webapp # 各言語の参考実装
+- bench # ベンチマーカー
+- public # Webフロント用の静的ファイル
+- frontend # Webフロント
+- blackauth # 動作確認をするためのJWTを返すAPI
+- nginx # 初期状態のnginx設定ファイル
+- data # 初期データ生成
+- probisioning # セットアップ用
ベンチマーカーが負荷走行の一部で本来意図していない挙動をしていた点について、競技終了後に修正を行いました。 #226
修正点
GET /api/player/competition/:competition_id/ranking
が空の内容を返した際に、再度リクエストする前にsleepが入るようになりました。
修正により、コンテスト当日と比べてベンチマークスコアが低くなることがあります。
コンテスト当日のベンチマーカーの挙動を再現する場合は-reproduce
をつけてベンチマーカーを実行してください。
デフォルトは無効になっています。
ISUCON12 予選ではウェブアプリケーションのログインに JWT を利用しています。 JWT を生成・検証するための公開鍵・秘密鍵はそれぞれ以下に配置されています。
- 秘密鍵(すべて同じ内容です)
bench/isuports.pem
blackauth/isuports.pem
- 公開鍵
webapp/public.pem
- 競技者 VM 3台
- InstanceType: c5.large (2vCPU, 4GiB Mem)
- VolumeType: gp3 20GB
- ベンチマーカー VM 1台
- ECS Fargate (4vCPU, 8GB Mem)
リージョン ap-northeast-1 AMI-ID ami-05c5b59deed48f66b で起動してください。 このAMIは予告なく利用できなくなる可能性があります。
上記AMIが利用できなくなった場合は、provisioning/以下でmake build
を実行するとAMIをビルドできます。packer が必要です。(運営時に検証したバージョンはv1.8.0)
- 起動に必要なEBSのサイズは最低8GBですが、ベンチマーク中にデータが増えると溢れる可能性があるため、大きめに設定することをお勧めします(競技環境では20GiB)
- セキュリティグループはTCP 443, 22を必要に応じて開放してください
- 適切なインスタンスプロファイルを設定することで、セッションマネージャーによる接続が可能です
- 起動時に指定したキーペアで
ubuntu
ユーザーでSSH可能です- その後
sudo su - isucon
でisucon
ユーザーに切り替えてください
- その後
- ベンチマーカーは
/home/isucon/bench
以下にビルド済みのバイナリがあります- 自分でビルドする場合は適宜 Go 1.18.x をインストールして、
/home/isucon/bench
以下でmake
を実行してください
- 自分でビルドする場合は適宜 Go 1.18.x をインストールして、
$ cd /home/isucon/bench
$ ./bench # 127.0.0.1:443 に対して実行
% ./bench -target-addr 203.0.113.1:443 # IPアドレスを指定し別のホストに対して実行
cloudformation.yaml を利用して、CloudFormationによって環境を起動できます。使用するAMIは上記「用意されたAMIを利用する場合」と同じもののため、予告なく利用できなくなる可能性があります。その場合は上記「自分でAMIをビルドする場合」を参考にしてAMIを作成し、そのIDを使用するようにテンプレートを修正してください。
- 使用できるリージョンは ap-northeast-1 のみです
- EC2 (c5.large) が3台起動するため、課金額には注意して下さい
- EC2用のkeypairは自動作成され、Systems Manager パラメータストアの /ec2/keypair/ 以下に秘密鍵が保存されます
https://github.com/isucon/isucon12-qualify/releases 以下にビルド済みの初期データがあります。