← 発表資料一覧JAWS-UG横浜 #103 × SRE支部構成図を開く ↗

JAWS-UG横浜 #103 × SRE支部 · 2026年9月18日

GameDayみたいなクラウド演習を
自分で作ってみた

GameDayが好きで、いつでも開催したかった。

冨田 進 · TenkaCloud1 / 13

きっかけ

GameDay、いつでも開催したくないですか?

僕はGameDayが大好きです。

冨田 進 · TenkaCloud2 / 13

きっかけ

探してみたけれど、欲しいものがなかった。

見つかったのは、主にCTFのプラットフォーム。

それなら自分で作ろう。→ TenkaCloud

冨田 進 · TenkaCloud3 / 13

作ってみる

最初は、マルチクラウドを目指した。

特定のクラウドに依存しないよう、OSSを中心に組んでいった。

Keycloak
認証を自分で持つ
Kubernetes
アプリを動かす共通基盤を持つ
Kumo
手元でAWS APIを動かす
AWS向けの開発過程で使ったエミュレータ
冨田 進 · TenkaCloud4 / 13

作っていて気づいた

作ったはいいけど、
これ、運用難しくない?

イベントを開きたいだけなのに、面倒を見るものが増えていた。

冨田 進 · TenkaCloud5 / 13

作り直した構成

SBTを土台に、AWSのサービスで組み直した。

部分表示は範囲内の接続のみ · 全体図を大きく開く ↗

SBTの2層に、問題デプロイエンジン・競技者コンソールを追加。

冨田 進 · TenkaCloud6 / 13

仕組みを見る

「デプロイ」を押すと、チームのAWSに環境ができる。

開催者のデプロイ操作をAPIが受け付け、EventBridgeからStep FunctionsとLambdaを起動する。チーム別のAWSアカウントへAssumeRoleしCloudFormationで問題環境を作る。参加者は競技者コンソールから問題を開く。図を拡大する ↗

クラウド環境を使う問題のデプロイ経路です。暗号バトルは、共有の競技APIで状態と得点を更新するタイプの問題です。

冨田 進 · TenkaCloud7 / 13

開催する問題

Challengeで解く。Battleで競う。

Challenge
問題を解き、回答やflagを提出する。
例:設定ミスの修正、脆弱性の調査
Battle
稼働状態や競技中の操作を判定し、得点を競う。
例:サービスの復旧、攻撃・防御、暗号バトル

同じ開催画面から、問題に合った採点方法を使う。

冨田 進 · TenkaCloud8 / 13

もう一つ困ったこと

開催していない間の、データベース代。

  1. DynamoDBをプロビジョンド容量にアクセス増による料金の急増を避けたかった。
  2. 使っていなくても、確保した容量の費用が残るイベントを開かない日もある。
  3. SQLite / Tursoも選べるようにしたローカルはSQLite。AWS上の処理からはTursoへ。

Turso対応は実装・テスト済み。実AWS+Tursoでの開催と請求確認は未実施。SaaSのSBT用DynamoDBまでなくなるわけではありません。

冨田 進 · TenkaCloud9 / 13

開催を楽にする工夫

問題を置いた後の、運営機能も作った。

ゲート・障害注入
前の問題を通過したら次を解放。問題に用意した障害を発火。
ダッシュボード
チームの得点と、問題のデプロイ状況を追う。
ログインキー
イベント作成時に、チームごとのキーを自動発行。
AWSフェデレーション
参加者画面 → 一時的な権限 → チームのAWSコンソール。
冨田 進 · TenkaCloud10 / 13

使ってみる · 開催者

準備ができたら、イベントを始める。

開催時刻を設定する管理画面
AWS上の実操作 · 20秒 · 音声:VOICEVOX:ずんだもん

開催時刻を決める開始と終了を設定。

参加者へ案内するお知らせをまとめて送信。

問題を開く参加者の画面で
競技を始める。

問題とチームを登録した後の操作です。キー配布と待ち時間を省略。時刻の入力は2倍速です。

冨田 進 · TenkaCloud11 / 13

作った問題 · 暗号バトル

中学生の知識から、暗号の仕組みを遊んで学ぶ。

ずらし暗号に正解し、30点を獲得した参加者の画面
AWS上の実操作 · 40秒 · 音声:VOICEVOX:ずんだもん

小さな数で計算暗号化・復号・証明を解き、
仕組みをつかむ。

シーザー暗号から先端まで完全準同型暗号・ゼロ知識証明
iO・アナモルフィック暗号

対戦しながら理解する正解で得点。
公開情報から相手の秘密を探す。

小さな数の学習モデルで体験します。録画は回答と得点反映の例。公開・HUNTはルール紹介です。

冨田 進 · TenkaCloud12 / 13

作っているメンバー

一緒に作って、遊びましょう。

チャーリー

JAWS 名古屋運営メンバー
GameDayの熱量を広げたい人

きせのん

JAWS DAYS 2024 GameDay 優勝
AWS 認定全冠 · CCoE はじめました

冨田 進 · TenkaCloud13 / 13