TenkaCloud UG #1 · 2026年9月17日 · Online
AWSにデプロイして
イベントを開催してみよう
TenkaCloud Liteを立てて、参加者が問題を解けるところまで。
冨田 進 / susumutomita
合同会社BULL / TenkaCloud
今日やること
「自分でイベントを開ける」ところまで進めます。
- AWSにTenkaCloud Liteをデプロイする
- 競技に使うAWSアカウントを接続する
- イベント・チーム・問題を作る
- 参加者としてログインし、問題を開く
- 最後に環境を撤収する
本番運用の認定会ではなく、現在のOSSを実際に触るハンズオンです。
全体の流れ
開催者と参加者では、触る画面が違います。
今日は、この一連の流れを1回通します。
始める前に
AWSの課金が発生する操作です。
- 今回はLite modeを使います
- デプロイ用AWSアカウントと、管理者メールアドレスを用意します
- 問題を別AWSアカウントへ配る場合は、競技用アカウントも用意します
- 終わったら撤収まで行います
現行READMEではデプロイ経路を candidate / unverified としています。イベント前に使うcommitと検証結果を固定してください。
1. TenkaCloud Liteを作る
AWSコンソールから、Launcherを1つ作ります。
infrastructure/templates/cloud-pipeline.yamlを取得- CloudFormationでテンプレートをアップロード
- スタック名を
tenkacloud-lite-launcherにする TenantAdminEmailを設定して作成- Outputsの
StartBuildConsoleUrlを開く
2. デプロイを開始する
Launcherを作っただけでは、本体はまだ立ちません。
CodeBuildの画面で Start build を押します。
CloudFormation launcher
↓
CodeBuild: Start build
↓
TenkaCloud Lite stacks
↓
Application Admin Console / Participant Portal
課金が発生する処理を明示的な操作の先に置くため、Start buildは手動です。
3. 開催者画面へ入る
ビルドの最後に出るURLを開きます。
- Application Admin Console
- イベント、チーム、問題、競技アカウントを管理する
- Participant Portal
- 参加者が問題・得点・ヒントを見る
まず開催者としてAdmin Consoleへログインします。
同じURLはCloudFormation Outputsからも確認できます。
4. 競技アカウントを接続する
問題を置くAWSアカウントに、1度だけ受け口を作ります。
- Competitor Accounts → Add account
- 発行されたExternalIdとLaunch Stack URLを保存
- 競技用AWSアカウントでbootstrap stackを作成
- TenkaCloudへ戻り Verify
TenkaCloud側はExternalId付きAssumeRoleで接続します。
ExternalIdやチームキーは画面共有・録画・チャットへ貼らないでください。
問題をデプロイすると何が起きる?
チームのAWSへCloudFormation stackを作ります。
問題ごとの template.yaml を、チーム単位で配置します。
5. イベントを作る
名前・チーム・問題を決めます。
- Events → 新しいイベントを作成
- チームを追加し、使う競技アカウントを割り当てる
- 問題カタログから出題する問題を選ぶ
- イベントの開始・終了時刻を設定
- Deploy して各チームの環境を作る
イベント作成時にチームごとの参加用ログインキーが発行されます。
6. 参加者へ渡す
参加者に必要なのは、Portal URLとチームキーです。
- AWS問題ではPortalから一時的なAWS Consoleログインも発行できる
- 解答・得点・ヒントはPortalへ戻って確認する
開催中
開催者は、問題環境と得点の動きを見ます。
- Deploy progress
- チーム × 問題ごとの配置状態を確認
- Scoreboard / score events
- 順位と、いつ加点・減点したかを確認
- Progression gate
- 前提問題の通過後に次の問題を開放できる
- Disruptions
- 問題に定義された障害を対象チームへ発火できる
使える機能は問題の定義と有効なfeature flagによって変わります。
7. 終わったら撤収
Launcherだけ消しても、本体は残ります。
- CodeBuildで
ACTION=destroy-allを実行 - TenkaCloud Liteの本体スタックが消えたことを確認
tenkacloud-lite-launcherを削除- 不要なsource-bundle S3の保存物も確認
Tursoを使った場合、外部DB自体は別管理です。DynamoDB/Tursoのデータ保持設定も確認してください。
Hands-on checklist
ここから、実際にやります。
- □ Launcher stackを作った
- □ Start buildが成功した
- □ Admin Consoleへ入れた
- □ Competitor AccountのVerifyが通った
- □ Event / Team / Problemを作った
- □ Participant Portalへチームキーで入れた
- □ 問題を開けた
- □ 終了後の撤収手順を確認した