【こうかようせい】

高可用性(HA) とは?

💡 壊れても止まらない「24時間営業のコンビニ」のような仕組み
📌 このページのポイント
高可用性(HA)構成 クライアント ロードバランサー サーバー1 稼働中 サーバー2 稼働中 サーバー3 故障 1台が故障しても残りのサーバーがリクエストを処理し、サービスを継続
冗長構成により障害時もサービスを継続する高可用性アーキテクチャ
ひよこ ひよこ

可用性ってつまり「壊れないように作る」ってこと?

ペンギン先生 ペンギン先生

「壊れないように」ではなく「壊れても大丈夫なように」作るのがポイントなんだ。どんなハードウェアもいつかは壊れる。だから前提として「壊れる」ことを受け入れて、壊れたときに自動で切り替わる仕組みを用意するのが高可用性の考え方だよ。

ひよこ ひよこ

99.9%と99.99%ってそんなに違うの?

ペンギン先生 ペンギン先生

全然違うよ。99.9%(スリーナイン)は年間約8.8時間のダウンタイムが許される。99.99%(フォーナイン)は年間約53分。99.999%(ファイブナイン)になると年間約5分しか止まれない。桁が1つ増えるたびに設計・運用のコストが跳ね上がるんだ。

ひよこ ひよこ

具体的にどうやって高可用性を実現するの?

ペンギン先生 ペンギン先生

まず複数のアベイラビリティゾーンサーバーを分散配置する。ロードバランサーで振り分けて、1台落ちても他で受ける。データベースはマルチAZ構成でスタンバイを用意する。これだけで多くのサービスは99.9%以上の可用性を達成できるよ。

ひよこ ひよこ

99.999%を目指すのって何がそんなに大変なの?

ペンギン先生 ペンギン先生

ファイブナインの世界になると、普通の障害対策だけでは足りなくなるんだ。デプロイ時のダウンタイムもカウントされるからローリングアップデートやBlue/Greenデプロイが必須になるし、DNSの切り替え時間、SSL証明書の更新、ライブラリメモリリークによる定期再起動まで考慮しないといけない。さらにリージョン障害に備えてマルチリージョン構成が必要になると、データの整合性をどう保つかという分散システムの根幹的な難問にぶつかる。コストが10倍になるのに稼働率は0.009%しか上がらない、というトレードオフを本気で検討するのがこの領域なんだよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「高可用性」って出てきたら「システムがなるべく止まらないように設計・運用することだな」と思えればだいたいOK!
📖 おまけ:英語の意味
「High Availability」 = 高い利用可能性
💬 High(高い)+ Availability(利用できること)。略してHAと呼ばれるよ
← 用語集にもどる