← 発表資料一覧TenkaCloud UG #1 · 2026年9月17日connpass ↗

TenkaCloud UG #1 · 2026年9月17日 · Online

AWSにデプロイして
イベントを開催してみよう

TenkaCloud Liteを立てて、参加者が問題を解けるところまで。

TenkaCloud UG #11 / 14

今日やること

「自分でイベントを開ける」ところまで進めます。

  1. AWSにTenkaCloud Liteをデプロイする
  2. 競技に使うAWSアカウントを接続する
  3. イベント・チーム・問題を作る
  4. 参加者としてログインし、問題を開く
  5. 最後に環境を撤収する

本番運用の認定会ではなく、現在のOSSを実際に触るハンズオンです。

ゴール2 / 14

全体の流れ

開催者と参加者では、触る画面が違います。

開催基盤を作るCloudFormation / CodeBuild
→
開催者が準備するApplication Admin Console
→
問題環境を配る各チームのAWS
→
参加者が解くParticipant Portal

今日は、この一連の流れを1回通します。

全体像3 / 14

始める前に

AWSの課金が発生する操作です。

現行READMEではデプロイ経路を candidate / unverified としています。イベント前に使うcommitと検証結果を固定してください。

前提4 / 14

1. TenkaCloud Liteを作る

AWSコンソールから、Launcherを1つ作ります。

  1. infrastructure/templates/cloud-pipeline.yaml を取得
  2. CloudFormationでテンプレートをアップロード
  3. スタック名を tenkacloud-lite-launcher にする
  4. TenantAdminEmail を設定して作成
  5. Outputsの StartBuildConsoleUrl を開く
Platform deploy5 / 14

2. デプロイを開始する

Launcherを作っただけでは、本体はまだ立ちません。

CodeBuildの画面で Start build を押します。

CloudFormation launcher
        ↓
CodeBuild: Start build
        ↓
TenkaCloud Lite stacks
        ↓
Application Admin Console / Participant Portal

課金が発生する処理を明示的な操作の先に置くため、Start buildは手動です。

Platform deploy6 / 14

3. 開催者画面へ入る

ビルドの最後に出るURLを開きます。

Application Admin Console
イベント、チーム、問題、競技アカウントを管理する
Participant Portal
参加者が問題・得点・ヒントを見る

まず開催者としてAdmin Consoleへログインします。

同じURLはCloudFormation Outputsからも確認できます。

Organizer7 / 14

4. 競技アカウントを接続する

問題を置くAWSアカウントに、1度だけ受け口を作ります。

  1. Competitor Accounts → Add account
  2. 発行されたExternalIdとLaunch Stack URLを保存
  3. 競技用AWSアカウントでbootstrap stackを作成
  4. TenkaCloudへ戻り Verify

TenkaCloud側はExternalId付きAssumeRoleで接続します。

ExternalIdやチームキーは画面共有・録画・チャットへ貼らないでください。

Competitor account8 / 14

問題をデプロイすると何が起きる?

チームのAWSへCloudFormation stackを作ります。

開催者のデプロイ操作をAPIが受け、EventBridge、Step Functions、Lambdaを経由して競技用AWSアカウントへAssumeRoleし、CloudFormationで問題環境を作る図構成図を大きく開く ↗

問題ごとの template.yaml を、チーム単位で配置します。

Problem deploy9 / 14

5. イベントを作る

名前・チーム・問題を決めます。

  1. Events → 新しいイベントを作成
  2. チームを追加し、使う競技アカウントを割り当てる
  3. 問題カタログから出題する問題を選ぶ
  4. イベントの開始・終了時刻を設定
  5. Deploy して各チームの環境を作る

イベント作成時にチームごとの参加用ログインキーが発行されます。

Event setup10 / 14

6. 参加者へ渡す

参加者に必要なのは、Portal URLとチームキーです。

Participant Portal開催者がURLを案内
+
Team login keyチーム単位のBearer credential
→
自チームの問題他チームの状態は見えない
Participant11 / 14

開催中

開催者は、問題環境と得点の動きを見ます。

Deploy progress
チーム × 問題ごとの配置状態を確認
Scoreboard / score events
順位と、いつ加点・減点したかを確認
Progression gate
前提問題の通過後に次の問題を開放できる
Disruptions
問題に定義された障害を対象チームへ発火できる

使える機能は問題の定義と有効なfeature flagによって変わります。

Operate12 / 14

7. 終わったら撤収

Launcherだけ消しても、本体は残ります。

  1. CodeBuildで ACTION=destroy-all を実行
  2. TenkaCloud Liteの本体スタックが消えたことを確認
  3. tenkacloud-lite-launcher を削除
  4. 不要なsource-bundle S3の保存物も確認

Tursoを使った場合、外部DB自体は別管理です。DynamoDB/Tursoのデータ保持設定も確認してください。

Teardown13 / 14

Hands-on checklist

ここから、実際にやります。

TenkaCloud UG #114 / 14