コンテンツにスキップ

重要な処理において、フェイルオーバー設計が組み込まれているか?

Type: DeepDive
Category: 災害対策・可用性
Audience: 設計リーダー / SRE / インフラ設計者 / レビュー担当者


背景・概要

障害や過負荷時に、別系統へ自動切替することでシステムの可用性を確保する仕組みをフェイルオーバーと呼ぶ

SLAを満たすためには、設計時点での冗長性確保・切替戦略の検討が必須になる


  • マネージドDBのフェイルオーバー機能(例:Cloud SQL / RDS / Azure SQL)の高可用性設定を有効化し、リージョン障害やゾーン障害に備える
  • Pub/Sub / SNS / Service Bus のようなメッセージング基盤に Dead Letter Queue(DLQ) を設定し、障害時に別ルートへ退避
  • コンテナ実行環境(例:Cloud Run / ECS / Azure Container Apps)において、ヘルスチェック失敗時に自動再起動される設計にする

よくある失敗例

  • 本番障害時に待機系がなくて即サービス停止
  • フェイルオーバーは設定していたが、切替後のリソースが足りず復旧しなかった
  • 複数構成を作っただけで、切替検証やモニタリングが未実施

FAQ

Q. フェイルオーバー=クラウド任せで大丈夫?

A. 一部はクラウドで自動化されるが、アプリケーションが切替後に正常動作するかの検証は必要

Q. どの処理に必要?

A. 金銭・契約・通知・課金など、ユーザー影響が大きい処理に絞るのが現実的💸


関連観点