大会を最後まで運営する Preview
準備とリハーサル
開催者マニュアルと make local を使います。実際の問題とチーム数を選び、ソース・カタログの revision、必要な機器、確認結果、運営担当、時間、連絡経路、撤収担当を記録します。カタログ対応は進行中です。Docker や terminal の全問確認済みとは扱わないでください。
任意の競技者アカウントを接続する
AWS 問題にはアカウント、region、リソース、削除の合意が必要です。infrastructure/templates/competitor-bootstrap.yaml と、表示された運営アカウント、正確な role 名、保存された ExternalId を使います。各アカウントを検証してからチームへ割り当てます。参加者へ配置 role の認証情報を配布しないでください。
配置・開始・採点
- 大会、チーム、問題を作成します。
- 停止状態の Docker jobs の準備結果をチームごとに確認し、失敗した操作だけを所有情報に基づいて再試行します。AWS 問題は別途配置します。
- Schedule から開始し、正しいチームの参加者 URL とチームキーを配ります。
- 参加者の Start / resume、Stop (keep data)、容量超過時の拒否、正答、誤答、ヒント、順位、チーム分離、環境障害を確認します。
- AWS Battle は両方の URL、採点、対象チームへの障害、revert と実際の復旧まで確認します。
安全に終了する
End Event で採点を止め、コンソールの teardown で所有する環境を削除し、完了を確認します。結果を保持し、ディレクトリ全体をバックアップします。通常のローカル停止は make down、再開は同じディレクトリで make local です。停止は AWS の削除ではありません。クラウドの make deploy は権限設定の確認が必要です。make destroy は対象を確認して基盤とデフォルトの所有データを削除します。外部 Turso の行は残し、make destroy-all で明示的にリセットします。問題環境は基盤を削除する前に大会の Teardown で撤収します。クラウド開催は Lambda・Cognito と選択した Turso / DynamoDB で、汎用 CloudFormation 配置、flag / multi-flag・定期採点、参加者の Console / CLI アクセス、Cryptography Battle などの組み込み coordination を実行します。Docker / Compose 問題はローカル開催専用で、クラウドのカタログには表示しません。実 AWS・hosted Turso での大会性能は未検証です。
運用チェックリストはリポジトリの docs/operations/event-runbook.md を参照してください。
新しい Docker 大会は、停止状態のチーム・問題 jobs を大会ごとに最大 512 件準備します。参加者が Start / resume と Stop (keep data) を使います。停止は既存の書き込みレイヤーと volume を保持しますが、RAM は保持しません。自動退避や初期化は行いません。既存大会は従来の lifecycle を維持します。
デフォルトの同時起動上限はチームごとに 3 環境、host 全体で 12 環境です。さらに、コンテナに設定されたメモリー上限の合計を 4096 MiB までに制限します。これは起動の受付制限であり、実測使用量や必要な機器の保証ではありません。新しい Compose 計画は作問者の上限を保持し、未指定の項目に 512 MiB、1 CPU、256 PIDs を補います。必要な負荷を確認したうえで make local LOCAL_ARGS="--max-active-per-team 3 --max-active-environments 12 --container-memory-mib 4096" から受付制限を指定できます。
40 個の gateway 枠は起動中の環境だけに使います。必要な数だけ割り当てた runtime port は停止後も保持します。20 問 × 5 チームの synthetic テストでは 100 jobs と 105 runtime ports を割り当てました。これは割り当てと lifecycle の確認であり、実 Docker の同時実行性能を示しません。測定項目は docs/local-play-requirements.md を参照してください。