本文へ移動
cccskills
無料GitHub で公開

add-scenario

新しい GameDay シナリオを追加する。「シナリオを追加して」「新しい障害を考えて」「次の GameDay のネタが欲しい」「scenario-03 を作って」など、シナリオの新規作成・追補・改訂の全てで必ず使う。

立案 (gameday-scenario エージェント) → 観測可能性チェック → scenarios/NN-<slug>.md への保存 → fis-experiment スキルへの引き継ぎまでの手順を提供する。

特に「観測窓より速い障害は見えない」「読み取りプローブでは書き込み断が見えない」などリハーサル実測に基づく設計チェックを保存前の関門にする。

インストール方法を見る

含まれるファイル(1)

  • SKILL.md8.8 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

新規シナリオの追加

シナリオは「仮説を立てて壊し、観測して学ぶ」ための計画書。観測できない仮説は検証できないので、このスキルの本体は保存前のチェック関門にある(リハーサルで「フェイルオーバーが起きたのに何も観測されない」を実際に踏んだ)。

シナリオタイプ (frontmatter type)

この GameDay は中級者が AWS を学ぶハンズオン。シナリオは 2 タイプあり、チェック関門が異なる。

type内容主な学び例
observe (観測型)自己回復する仕組みに障害を注入し、挙動を観測・検証する観測と判断 (静観の正当性、影響範囲の説明)タスク停止、フェイルオーバー
rebuild (復旧構築型)FIS 等でリソースを使えなくし、参加者が代替構成を手で構築して復旧させる構築スキルそのもの + 応急処置を IaC に反映する運用EC2 終了 → ECS 化、リージョン障害 → DR 切替

rebuild は復旧に数十分かかるため観測窓の問題は起きにくい(canary がずっと赤いのがゲームの進行表示になる)。代わりに下の「復旧経路チェック」を通すこと。

手順

  1. 棚卸し — scenarios/ を読み、既存の id・学びの狙いを確認する。番号は既存最大 + 1 (NN はゼロ埋め 2 桁)。学びが重複するシナリオは追加しない(難易度違いの再実施は既存ファイルの改訂で扱う)。
  2. 立案は gameday-scenario エージェントに委任する — 出力フォーマットはエージェントが知っている。依頼時に渡すもの: 対象アーキテクチャの現状 (lib/ の要点)、避けたい重複(既存シナリオの狙い一覧)、難易度・所要時間の希望。
  3. 観測可能性チェック(下記)を通す — 通らない場合、観測手段の追加を「前提インフラ」に書くか、期待する振る舞い・成功条件を観測できる形に直す。
  4. scenarios/NN-<slug>.md に保存する(frontmatter status: draft)。
  5. ダッシュボードの参考資料 (システム構成) を連動更新する — dashboard/gameday.seed.json(定義の正。コミット対象)の systems[] に、このシナリオの「元のシステム構成図 + 軽い補足」を反映する(本物の GameDay で配られるアーキテクチャ図に相当。保存とセットで必ずやる)。実体 dashboard/public/data/gameday.json(git 管理外)にも同じ変更を入れると即時反映される(入れなくても次の周回リセットで seed から反映される):
    • 既存システムが対象 → その system の scenarioIds に新しい id を追加。「前提インフラ」で観測手段やノードが増えるなら tiers / notes にも反映
    • 新しい出発点スタックを使う → system を新規追加(未構築なら summary に明記)
    • ノードには AWS 公式アイコンのキー (icon) を付ける。キー一覧と追加方法は gameday-dashboard スキルの references/data-schema.md(未登録サービスは dashboard/src/awsIcons.ts に import + キー登録)
    • 構成は記憶で書かず lib/ の実装(または本シナリオの「前提インフラ」)から起こす。スキーマと書き方の指針は gameday-dashboard スキルの references/data-schema.md
  6. 次工程を案内する: 実装は fis-experiment スキル(実装完了で status: implemented)、実施後は status: executed(講評は gameday-retrospective スキルが KPT として gameday.json の feedback[] に書く)。

観測可能性チェック(保存前の関門)

リハーサル実測値: ECS タスク自己回復 ≈ 30 秒 / Aurora フェイルオーバー ≈ 43 秒。仮説の時間見積もりはこれを基準にする。

  • 障害の継続時間は観測窓より長いか? canary は 1 分間隔。1 分未満で収束する障害は canary には「起きなかったこと」になる。対処はどれか一つを明記する:
    • 継続時間を伸ばすパラメータを使う(aws:ecs:task-network-latency の duration、aws:fis:wait の挟み込み等)
    • より細かい分解能の観測(1 分粒度メトリクス、ECS/RDS イベント)を観測ポイントに含める
    • 「ユーザー影響が出ない」こと自体を成功条件に据え直す(それも立派な検証)
  • プローブの種類は障害の種類と合っているか? 読み取りプローブ (SELECT 1) では書き込み断は見えない。書き込み系の障害(フェイルオーバー、ストレージ)を「見せたい」なら、書き込みエンドポイント(例: app の /write)とそれを叩く canary を「前提インフラ」に明記する。逆にリクエスト毎の短命接続は再接続に強く、接続プールを持つ実アプリより回復が速く見えることに注意。
  • 検知経路を成功条件に含めたか? 「どの信号(canary / アラーム / イベント)で何分以内に気づくか」まで書く。気づけること自体が GameDay の試験項目。
  • 回復時間の仮説は実測ベースか? 「数分で回復」のような保守的な見積もりは検知・採点の基準を狂わせる(実測 30 秒に対して「2〜4 分」と見積もった実績あり)。
  • 振り返りの一次資料は揃うか? 観測ポイントに「FIS 実験レポート (PDF)」を書いておく — 実装時の experimentReportConfiguration 設定漏れを防ぐ(リハーサルで漏れた実績あり)。

復旧経路チェック(rebuild 型のみの追加関門)

参加者に「作らせる」以上、作れることを運営が先に保証する。

  • 代替構成は制限時間内に構築可能か? 中級者 1 チームで 30〜60 分が目安。CDK を書かせるのは長すぎる — コンソール / CLI での構築を正とし、IaC 化は振り返りの宿題にする。
  • 素材は用意したか? 構築に必要な材料 (ECR のコンテナイメージ、AMI、スナップショット、DR 先の VPC 等) は事前に存在しないと時間内に終わらない。「前提インフラ」に列挙する。
  • 権限は足りるか? 参加者ロールで構築操作 (ECS サービス作成、Route 53 変更等) ができること。逆に対象スタック外を壊せる権限を渡しすぎない。
  • 終了条件は自動判定できるか? 「canary が緑に戻る」を復旧完了の判定にする (ダッシュボードがそのまま進行表示になる)。復旧先が別 URL になる場合は canary の向き先変更が必要 — これも前提・手順に書く。
  • ヒントの階段を用意したか? 学習ハンズオンなので、詰まったら 10 分刻み程度で開示する段階ヒント (方針 → 使うサービス → 具体手順) をシナリオに含める。
  • drift の読み方が変わる: 参加者の新規構築リソースはスタック外なので cdk drift に出ない。drift に出るのは既存リソースへの変更 (SG 編集、desiredCount 等) のみ。振り返りでは drift + 手動作成リソースの棚卸し (タグなしリソース、コンソール操作履歴) + IaC 反映ワークの 3 点セットにする。
  • 後片付けを設計したか? 手動構築リソースは cdk destroy で消えない。振り返り後に消す手順 (棚卸しリストの流用) をシナリオに含める。

採番・命名の規約

  • ファイル: scenarios/NN-<slug>.md(例: 03-task-network-latency.md)
  • frontmatter の id (scenario-NN) は、ダッシュボード (injects[].scenarioId / KPT 講評の scenarioId) との突き合わせキー。一度使った id は変更・再利用しない。

ライフサイクル

status: draft (立案) → implemented (fis-experiment で CDK 実装済み) → executed (実施済み)。実施の記録・講評はシナリオファイルではなく gameday.json (events[] / feedback[]) と data-archive に残る(シナリオ = 計画、講評 = 記録)。

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

fis-experiment

無料日本語概要

GameDay シナリオを AWS FIS 実験テンプレート (CDK) として実装する。「シナリオを FIS にして」「実験テンプレートを作って」「障害注入を実装して」「fault-injection を書いて/直して」など、FIS 実験の実装・修正・レビューの全てで必ず使う。FIS アクションの選定、停止条件 (CloudWatch アラーム)、実験ロールの最小権限 IAM、爆発半径の制御 (selectionMode)、実験レポート設定、ECS タスクアクションの SSM サイドカー前提条件など、検証済みの判断基準とコード例を提供する。lib/constructs/fault-injection.ts を編集するときは内容にかかわらず該当する。

yoshimi0227/minigameday42026年10月8日 更新

gameday-dashboard

無料日本語概要

GameDay ダッシュボードサイト (dashboard/) の運用と変更を行う。「スコアを記録して」「インジェクトを追加して」「フィードバックを載せて」「ダッシュボードを起動して/直して」「スコアボードを見せて」など、GameDay のスコア表・KPT フィードバック・ダッシュボード画面に関わる作業全てで必ず使う。データ更新 (gameday.json 編集 → 即時反映)、採点ルーブリック、起動/ビルド、デザイン変更時の規約を提供する。

yoshimi0227/minigameday42026年10月8日 更新

gameday-retrospective

無料日本語概要

GameDay / FIS 実験の振り返りを行う。「振り返りして」「実験の結果をまとめて」「障害の影響を見せて」「ドリフト検出して」「講評して」など、実験の前後比較・影響分析・講評作成の全てで必ず使う。実験の「前」から使うスキルであることに注意 — ベースライン取得 (実験前) → 観測 (実験中) → 3 視点分析と KPT 講評の gameday.json への書き込み (実験後) までを一連で扱う。cdk drift / CloudFormation ドリフト検出、Synthetics canary の結果確認、CloudWatch メトリクスの前後比較が絡む作業も該当する。

yoshimi0227/minigameday42026年10月8日 更新

yoshimi0227 のスキルをすべて見る

このスキルの問題を報告する