地理的に分散されたネットワーク アーキテクチャを設計する
- 6 分
分散アプリでは、コンポーネントが確実に通信できるようにし、障害が発生した場合に要求を別のコンポーネントまたはリージョンにルーティングできるようにすることが不可欠です。
リージョンの障害に対する脆弱性を軽減するために、Azure で配送ポータルを再設計することにしました。 プライマリ リージョンが使用できないときに、アプリケーションがセカンダリ リージョンのコンポーネントにフェールオーバーされるようにする必要があります。 フェールオーバーにより、ユーザーへのサービス配信の中断が最小限に抑えられます。
ここでは、Azure DNS、Traffic Manager、Front Door、Azure CDN が配送会社のアプリ アーキテクチャをサポートする方法について説明します。
Azure DNS
以前に述べたように、Azure DNS の実装に変更は必要ありません。 Azure DNS を使用して、アプリを識別するドメイン名レコードをホストします。
Azure DNS は、Azure インフラストラクチャを介して完全に名前解決を提供します。 このサービスは本質的にマルチリージョンであるため、新しいアーキテクチャ設計の機能をサポートするために既存の Azure DNS 構成を変更する必要はありません。
Azure DNS SLA には、有効な DNS 要求が常に少なくとも 1 つの Azure DNS ネーム サーバーから応答を受信することを保証する 100% もあります。
トラフィック ルーターを選択する
分散 Web アプリケーションを使用して複数のリージョン間でトラフィックを負荷分散およびリダイレクトできるサービスが必要です。
Azure には、フロントエンド コンポーネント間でトラフィックをルーティングできるさまざまなサービスが用意されています。 Azure Application Gateway は単一リージョンにバインドされているため、置き換える必要があることを思い出してください。 そのリージョンで障害が発生した場合、ルーティングを実行する必要はありません。
Azure には、複数のリージョン間でグローバル ルーティングを実行できる 2 つのトラフィック ルーターがあり、1 つのリージョンの停止に対して脆弱ではありません。
- Azure Traffic Manager
- Azure Front Door(アジュール フロント ドア)
アプリケーションに適したルーターを選択できるように、これらのサービスをより詳しく調べてみましょう。
Azure Traffic Manager とは
Azure Traffic Manager は、DNS レコードを使用して複数の Azure リージョンの宛先にトラフィックをルーティングするグローバル ロード バランサーです。
すべての要求をプライマリ リージョンにルーティングし、そのリージョンの App Service の応答性を監視するように Traffic Manager を構成できます。 プライマリ リージョンの App Service が失敗した場合、Traffic Manager はユーザー要求をセカンダリ リージョンの App Service に自動的に再ルーティングします。 この再ルーティングでは、継続的なサービスを保証するフェールオーバーが実行されます。 この配置を 優先度ルーティング モードと呼びます。
Traffic Manager は DNS システムを使用してトラフィックをルーティングするため、HTTP トラフィックだけでなく、任意のプロトコルをルーティングします。 ただし、Traffic Manager では、クライアントの国コードやユーザー エージェント ヘッダーなどの HTTP プロパティに基づいてトラフィックをルーティングまたはフィルター処理することはできません。 また、トランスポート層セキュリティ (TLS) プロトコルの終了を実行することもできません。この場合、ルーターは要求を復号化し、応答を暗号化して App Service 仮想サーバーからその負荷を取り除きます。 これらの機能のいずれかが必要な場合は、Azure Front Door を使用する必要があります。
Traffic Manager では、高度に構成可能なエンドポイント監視が使用されます。 たとえば、プロトコル、ポート、パス、カスタム ヘッダー設定、予期される状態コード範囲、許容されるエラー数を定義できます。 エンドポイントの監視により、アプリケーションのすべての部分の全体的な正常性を継続的に把握できます。
Azure Front Doorとは何ですか?
Traffic Manager と同様に、Azure Front Door はグローバル ロード バランサーです。 Traffic Manager とは異なり、ネットワーク アプリケーション レイヤーであるレイヤー 7 で動作し、HTTP プロパティと HTTPS プロパティを使用してフィルター処理とルーティングを行います。
Front Door を使用すると、Traffic Manager でサポートされていないさまざまな種類のルーティングを実行できます。 たとえば、ブラウザーの国コードに基づいてトラフィックをルーティングできます。 Front Door では、TLS プロトコルの終了もサポートされています。
ただし、例外があります。 HTTP と HTTPS 以外のプロトコルにトラフィックをルーティングする場合は、Traffic Manager を使用する必要があります。
Front Door を使用すると、追跡ポータルを構成するさまざまなバックエンドに優先順位を割り当てることができます。 これらの優先順位により、Front Door は必要に応じて要求をルーティングできます。 プライマリ リージョン サービスを優先度が最も高く、セカンダリ リージョン サービスを優先順位の低い方に割り当てます。
Front Door は正常性プローブを実装してサービスの正常性状態を監視し、障害が発生した場合はトラフィックを正しくルーティングできます。 Front Door の優先順位ルーティング モードとエンドポイント監視は、正常性プローブが常に HTTP 経由で動作することを除き、Traffic Manager の機能と似ています。
出荷ポータルの Web UI とその API のすべてのトラフィックは HTTPS 経由で行われ、Front Door を使用して Azure Traffic Manager を切り替えることができます。 また、優先順位の高いバックエンド割り当てを使用して Front Door を構成することもできます。
Azure CDN
この単一リージョン アーキテクチャでは、Azure CDN を使用して Azure Blob Storage から静的コンテンツをキャッシュしました。 Azure CDN サービスは、静的コンテンツをユーザーの近くにキャッシュするサーバーのグローバル ネットワークです。 マルチリージョン アーキテクチャ用にこのサービスを変更する必要はありません。 ただし、次のユニットで取り上げる Azure Storage アカウントに関する考慮事項があります。