6.2 可用性設計

High Availability Design

高可用性(High Availability)は、システムが継続的に稼働し、障害発生時も迅速に復旧できる能力である。クラウドでは、マルチAZ、マルチリージョン、オートスケーリングを組み合わせて実現する。

可用性の指標

可用性 年間ダウンタイム 月間ダウンタイム
99%(2ナイン) 3.65日 7.2時間
99.9%(3ナイン) 8.76時間 43.8分
99.99%(4ナイン) 52.6分 4.4分
99.999%(5ナイン) 5.26分 26秒

可用性を1桁上げるごとに、必要なコストと複雑性は指数関数的に増加する。ビジネス要件に基づいて適切な可用性レベルを選択することが重要 [1]。

マルチAZ / マルチリージョン

高可用性アーキテクチャ

図1: マルチAZ/マルチリージョン構成

構成 耐障害性 コスト 複雑性
シングルAZ サーバー障害
マルチAZ AZ障害
マルチリージョン リージョン障害

オートスケーリング

オートスケーリング

図2: オートスケーリングの概念

オートスケーリングの注意点
1. ステートレス設計が前提(セッションは外部ストアに)
2. スケールアウトには時間がかかる(ウォームアップ)
3. 最小台数を0にすると初回リクエストが遅延
出典
[1] AWS. Reliability Pillar. https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/
[2] Microsoft. Design for high availability. https://docs.microsoft.com/azure/architecture/framework/resiliency/