10 障害対応
10.1 ネットワーク監視
- 自宅鯖から外向きに ping
- ping 先:
8.8.8.8(Google)と1.1.1.1(Cloudflare)の両方 - 間隔:30 秒
- 復旧確定:3 回連続成功(90 秒後に確定)
10.2 ネットワーク状態判定と動作
| Cloudflare | 判定 | 動作 | |
|---|---|---|---|
| ✅ | ✅ | 正常 | 通常運用 |
| ✅ | ❌ | CF 障害 | 自宅鯖のみで運用・Turso / D1 同期スキップ |
| ❌ | ✅ | ネット切断 | 外部アクセス不可・自宅鯖 LAN のみ |
| ❌ | ❌ | ネット切断 | 外部アクセス不可・自宅鯖 LAN のみ |
10.3 フェイルオーバー
Cloudflare Tunnel のフォールバック機能を使用。CF Workers は不要。
app.example.com
├── Tunnel 接続中 → 自宅鯖 WebUI へ
└── Tunnel 切断時 → CF Pages WebUI へリダイレクト
10.4 障害シナリオ別対応
シナリオ A:CF 障害(自宅鯖正常)
- Google ping ✅ / Cloudflare ping ❌ を検知
- Turso / D1 への同期を停止
- 自宅鯖 PostgreSQL のみで運用継続
- CF 復旧後 → PostgreSQL 全量を Turso + D1 へ再同期(全量方式)
シナリオ B:自宅鯖ダウン
- Tunnel 切断を Cloudflare が検知
app.example.com→ CF Pages WebUI へリダイレクト- ユーザーは CF Workers API 経由で Turso / D1 へ書き込み
- 自宅鯖復旧後 → マージロジックで PostgreSQL を最新化(詳細は
09_db-sync.md参照)
シナリオ C:ネット切断(Google / Cloudflare 両方 NG)
- 外部アクセス不可
- 自宅鯖は LAN 内のみ稼働
- BOT はオフライン(Discord に接続できない)
- 復旧後は自動で通常運用へ戻る(特別な操作不要)
10.5 ロールバック
DBマイグレーションの失敗など、ロールバックが必要な場合は手動コマンドで実施する。
詳細手順は 13_operation.md を参照。