参加者の皆さんからいただいた質問への回答をまとめています (随時更新)
なお、本 FAQ はあくまで ISUCON4 予選向けのものです。本戦ではまた変わる可能性があることを御留意ください。
インスタンスについて
ルートボリューム以外の追加ストレージ利用に関して制約はありますか? (ログ利用等)
A. 作業用にEBSを追加するのは構いません。ただし、提出されたAMIを検証する際にはルートボリュームしかアタッチしないので、作業用EBSの有無によってスコアが乖離したり、ベンチが失敗したりしないようにお気をつけ下さい。
複数のインスタンスを利用することは許可されていますか?
A. 予選中、複数のインスタンスで同時に作業する事は許可されています。 ただし、最終的に提出する 1 つの AMI から起動する 1 台のインスタンスで、追加 EBSなどはない状態で最高スコアを再現できる必要がある事に注意してください。
ウェブサーバ・データベースサーバは同じサーバーで動くという認識でよいでしょうか?
A. この予選においては、そのような構成になっています。レギュレーションの通りであれば、ミドルウェアの入れ替え、実装の入れ替えなどは許可されています。 前述の通り、1 台のインスタンスでスコアを再現できる状態で AMI を提出する必要がある事に注意してください。
EBS 最適化がオフかどうか不安です
A. デフォルトでオフなので、わからなければそのまま進めていただいて問題ないと思います
起動後、AWS Management Console の EC2 インスタンスリストでインスタンスをクリックしてみて、詳細画面の EBS Optimized 欄から確認することもできます (参考スクリーンショット)
予選用 AMI について
AMI の作成と共有の仕方がわからない
→ https://gist.github.com/sorah/bbc1ef37f7f148713e2f
supervisord が isucon_ruby (foreman) を終了させてくれない
A. お手数ですが pkill -f foreman
などで対応してください。設定ミスと思われます。
GOPATH の uid が root ユーザーになっています
(2日目AMIでは修正済です)
A. すいません、こちら側のミスです。お手数ですが、isucon
, ec2-user
どちらのユーザーも nopassword で sudo 可能なので、chown してください。
/home/isucon/README.md が見つからない
A. 初期のマニュアルが間違っていました。存在しない状態が正常です。
JS/CSS が PHP 版で反映されず表示崩れが起きてしまいます
(2日目AMIでは修正済です)
A. php 用 nginx.conf の設定ミスです。レギュレーション上「表示崩れ」は失格にする事があります、と記述されていますが、PHPに限って不問にします。 (レギュレーションにはのちほど追記します
競技終了後にベンチマーカーを実行するとどうなりますか?
A. 実行は可能ですが、スコア送信に失敗します。提出する AMI は最終スコアを再現する必要があることには注意してください。
ログイン後の操作ができないけれど正常ですか
A. 正常です
AMI 提出、運営側の検証について
workload オプションの指定などはどうするのですか
A. マニュアル にもありますが、提出時に benchmarker へ指定するオプションを入力する欄があります。
競技時間の終了後、AMI提出期限までに、スコアに関係のない調整(自動起動設定など)は可能でしょうか。
A. 可能です。
AMI 起動直後の結果と、複数回実行後の結果は異なる (warmup, disk cache 等) とおもいますが、どのように検証されますか?
A. 1度で近いスコアが再現できなかった場合は複数回実行する場合があります。ただ、あくまで不正防止のためなので、極端にスコアが異なる場合以外は問題ありません。競技で提出された最終スコアを尊重します。
warmup などを万全にしたい場合は、ベンチマーカー側の機能で、タイムアウト1分の初期化スクリプトを提示できるのでそこで処理をするようにお願いします。
AMIを起動した後、何分以内にサービスが完全に動く状態になっていれば大丈夫でしょうか?daemonの起動時間が長いサービスもあると思いますが、そういうサービスが使えるかどうか知りたいです。
A. 規定はしませんが常識の範囲でお願いします。
いつまで保存しておけば良いでしょうか
A. 1〜2日目、両日の予選結果発表まで保存してください。
動作チェックではベンチマーク実行→サーバ再起動→書き込みデータ保持の確認 が確実に行われるという理解で良いでしょうか
レギュレーションに "各サーバの設定およびデータ構造は任意のタイミングでのサーバ再起動に耐えること。 サーバ再起動後にすべてのアプリケーションコードが正常動作する状態を維持すること。ベンチマーク実行時にアプリケーションに書き込まれたデータは、再起動後にも取得できること。" とありますが、AMI 提出後の動作チェックでこれが確実にチェックされるか知りたいです
A. レギュレーション通り、サーバーを再起動した後、再起動前のデータが維持されていないと失格にします
2度目の benchmark 実行も成功する必要がありますか?
A. レギュレーション上は、複数回実行の動作保証を規定する項目はありません。 1度目の benchmarker 実行で、近いスコアが再現できなかった場合に、複数回実行することがあります。その場合、2回目以降の benchmarker 実行が失敗してしまうと、救済することができません。 なお、サーバ再起動後の動作についてはレギュレーションに規定されているのでご確認ください。
その他
なんでソロでの参加は駄目なの?
A. チーム参加前提なのは、ソロ参加可能だった第1回での結果を見て1人でどうにかなるゲームじゃないと判明し、当時は予選が無く先着順だったため勝てそうにないチームに参加枠を渡す理由もあるまい、ということで第2回からは2人以上のチームに制限したという経緯です。
今回利用できるAWSクーポンは「チームでインスタンス1つ分まで」? それとも「一人でインスタンス1つ分まで」?
A. クーポンは 1 AWS アカウントのみに適用可能です。 また、上記FAQ の通り、複数インスタンスを立てて同時に作業する事は認められています。複数アカウントにまたがったり、25USD を超えてしまうと課金が発生します。その場合の費用は参加者側負担でお願いいたします。
ただし、作業時は複数インスタンスでもかまいませんが、提出する AMI は 1 つで、1 台で提出したスコアを再現できる必要があります。ご注意ください。