参考:https://docs.microsoft.com/ja-jp/learn/modules/design-for-availability-and-recoverability-in-azure/2-high-availability
「Azure で最適なソリューションを設計する - Azure での可用性と回復性のための設計 高可用性アーキテクチャの構築 - 高可用性アーキテクチャの構築」
アーキテクチャの高可用性の評価手順
1.ご利用のアプリケーションのサービス レベル アグリーメント(SLA)を特定する
2.アプリケーションの HA 機能を評価する
3.依存するアプリケーションの HA 機能を評価する
1.SLA を定義する場合の考慮事項
- 4 つの 9 (99.99%) を実現するには、手動操作による障害からの復旧には依存できません。 アプリケーションには自己診断機能と自己復旧機能が必要です。
- 4 つの 9 を超えると、SLA を満たすことができるほど迅速に障害を検出することは困難です。
- SLA を測定する時間枠について考慮します。 この時間枠を短くするほど、許容度は厳格になります。 時間単位または日単位のアップタイムという観点で SLA を定義することはおそらく意味がありません。
アプリケーションの可用性を高めるためのツールおよび機能
①可用性セット
②可用性ゾーン
③負荷分散
④サービスとしてのプラットフォーム (PaaS) HA 機能
①可用性セット
可用性セットは、同じアプリケーション ワークロードに属する VM を分散させることでハードウェア障害および予定メンテナンスから同時に影響を受けるのを防ぐ必要があることを Azure に通知する方法です。 可用性セットは、更新ドメインと障害ドメインで構成されています。
②可用性ゾーン
可用性ゾーンは、独自の電源、冷却装置、およびネットワークを備えた、リージョン内にある独立した物理的なデータ センター場所です。 リソースをデプロイする際に可用性ゾーンを考慮に入れることにより、特定のリージョンでのプレゼンスを維持しながら、データ センターの停止からワークロードを保護することができます。 仮想マシンのようなサービスは、ゾーン サービスです。これらは、リージョン内の特定のゾーンにデプロイすることができます。 他のサービスはゾーン冗長サービスであり、特定の Azure リージョン内の複数の可用性ゾーンにわたってレプリケートされます。 両方の種類により、Azure リージョン内では単一障害点が発生することはありません。
③負荷分散
ロード バランサーでは、ネットワーク トラフィックをアプリケーション全体に分散する方法が管理されます。 ロード バランサーは、個々のコンポーネントでの障害に対するご利用のアプリケーションの回復力を維持する上で、また要求の処理でご利用のアプリケーションを確実に使用できるようにする上で不可欠です。 サービス検出が組み込まれていないアプリケーションの場合は、可用性セットと可用性ゾーンの両方に対して負荷分散が必要です。
Azure には 3 つの負荷分散テクノロジ サービスがあり、ネットワーク トラフィックをルーティングする機能で区別されます。
1)Azure Traffic Manager
グローバルな DNS 負荷分散機能を備えています。 Traffic Manager を使用して Azure リージョン内または Azure リージョンとの間で DNS エンドポイントの負荷分散を行うことを検討します。 Traffic Manager は、使用可能なエンドポイントに要求を分散し、エンドポイントの監視を使用して障害を起こしているエンドポイントを検出し、負荷から削除します。
2)Azure Application Gateway
着信トラフィックのラウンド ロビン分散、Cookie ベースのセッション アフィニティ、URL パス ベースのルーティング、および単一のアプリケーション ゲートウェイの背後で複数の Web サイトをホストする機能など、レイヤー 7 の負荷分散機能が用意されています。 既定では、Application Gateway はバック エンド プールにあるすべてのリソースの状態を監視して、異常とみなしたリソースをプールから自動的に削除します。 Application Gateway は異常なインスタンスを継続的に監視し、このインスタンスが利用可能になり正常性プローブに応答するようになると、正常バック エンド プールに戻します。
3)Azure Load Balancer
レイヤー 4 のロード バランサーです。 負荷分散されるパブリックおよび内部のエンドポイントを構成したり、TCP を使用して受信接続をバックエンド プールの送信先にマッピングする規則や、サービスの可用性を管理するための HTTP の正常性プローブ オプションを定義したりできます。
④PaaS HA 機能
高可用性が組み込まれた PaaS サービス。 Azure SQL Database、Azure App Service、および Azure Service Bus などのサービスには、高可用性機能が含まれています。これにより、サービスの個々のコンポーネントの障害は、アプリケーションに対して確実にシームレスになります。 PaaS サービスを使用することは、ご利用のアーキテクチャが確実に高可用性になるようにするための最善の方法の 1 つです。