ロード バランサーとリバース プロキシーは、どちらも最新の Web ベースのアプリケーションやアーキテクチャーで一般的なテクノロジーであり、単独でデプロイすることも、組み合わせて構成することもできます。 このセクションでは、これらのテクノロジーの概要と、ArcGIS システムに関連するユース ケースに加え、これらのテクノロジーが提供する関連機能について説明します。
多くの ArcGIS システムでは、リバース プロキシーの使用と併せて負荷分散が実装されています。 一般的な実装パターンには、次のものがあります。
Esri は、ArcGIS Enterprise のデプロイメントで負荷分散とリバース プロキシー機能を提供するために、インストール可能な ArcGIS ソフトウェア コンポーネントである ArcGIS Web Adaptor を提供しています。 Web Adaptor は、ロード バランサーとリバース プロキシーを使用する ArcGIS Enterprise システムを構築するための唯一の方法ではないものの、一般的なパターンとして使われており、Esri テクニカル サポートがサポートするソリューションを提供します。 外部ハードウェアまたはソフトウェアのロード バランサーも、好みや技術的な要件に応じて使用できます。 ワークロードのタイプと要求の頻度によって、ニーズに適したロード バランサーの種類がわかります。 特定の ArcGIS バージョンとオペレーティング システムに関連するガイダンスについては、「サードパーティ製ロード バランサーを使用した複数コンピューターの配置」をご参照ください。
高可用性構成を実現するには、Web Adaptor を高可用性サイト内の 1 台のコンピューターで構成して、サイト内の他のコンピューターを検出し、そのステータスを監視して、それらのコンピューターが正常な場合にリクエストを転送するロジックが含まれています。 このロジックは、ArcGIS Web Adaptor をシステム設計に組み込む際の実装上の大きな利点です。それは、手動で構成したヘルス チェックやロード バランサーの設定よりも、ArcGIS Enterprise デプロイメントに対する変更の方がより簡単に処理できるからです。
Web Adaptor は、多くのシナリオで負荷分散とリバース プロキシー機能を提供できますが、ArcGIS で構築された多くのエンタープライズ システムでは、これら 2 つのテクノロジーの機能目標を達成するために、追加の外部ソフトウェアまたはハードウェア コンポーネントも実装しています。 例を以下に示します。
従来のオンプレミス アーキテクチャーでは、DMZ (非武装地帯) を利用してインターネットベースのクライアントにサービスやエンドポイントへのアクセスを提供していましたが、今はクラウド アーキテクチャーに移行しつつあります。クラウド アーキテクチャーでは、クラウドネイティブのサービスがこの機能を提供することがほとんどで、リバース プロキシーや負荷分散に伴う考慮事項やアーキテクチャーの実践も変化しています。
これらのテクノロジーには、スケーラビリティー、高可用性、セキュリティーなどの利点があります。
ArcGIS システムは、大小のデプロイメントの両方をサポートするように拡張できます。 デプロイメントの規模の拡大に対応するために、ArcGIS では多くの負荷分散手法とテクノロジーを活用できます。 クライアント リクエストのディスパッチに使用される負荷分散アルゴリズムは、単純なラウンドロビン方式から、現在の接続数、ホスト使用率、実際の応答時間などの要素を考慮したより複雑なアルゴリズムまで、さまざまなものがあります。
ロード バランサーは、複数のコンピューターと適切なリソースに負荷を分散することで、パフォーマンスの向上に貢献します。 高可用性の例では、ArcGIS Web Adaptor のロード バランサーが 2 つの ArcGIS Enterprise ホスティング サーバー間で GIS サーバーのリクエストを分散します。 システムに多数のユーザーがいて、大量の処理を必要とする類似のワークフローを実行している場合 (プロセッサーに負荷がかかる、長時間にわたる処理を必要とする編集ワークフローなど)、ロード バランサーを使うことで、利用可能なハードウェア全体にこれらのリクエストをバランスよく分散させることができます。一方で、処理要件が大きく変動するワークフローでは、負荷分散ではなくワークロードの分離の方がメリットがある場合があります。
負荷分散は、同じロールを共有するサイトまたはコンピューターのクラスター全体にリクエストを分散させることで、ArcGIS の高可用性構成も可能にします。 たとえば、複数のコンピューターの ArcGIS Enterprise デプロイメントで高可用性が構成されている場合、ロード バランサー (ArcGIS Web Adaptor) は、以下の図に示すように、プライマリー ArcGIS ホスティング サーバーとセカンダリー ArcGIS ホスティング サーバーにリクエストを交互に送信します。
この場合のリバース プロキシーは、単一のエントリー ポイント、つまりエンド ユーザーからシステムをわかりにくくする単一の IP アドレスを提供します リバース プロキシーは、アルゴリズムに従ってトラフィックを ArcGIS Web Adaptor に転送します。アルゴリズムは通常はラウンド ロビンですが、より堅牢な方式も使用できます。 ArcGIS Web Adaptor と同様に、多くのロード バランサーはサーバーの状態や可用性を監視し、問題のあるコンピューターや利用できないコンピューターを配布リストから削除して、システムに耐障害性を与えます。
この機能の方法と効率は、ロード バランサーによって異なります。 一部のハードウェア ロード バランサーは、負荷や応答時間に応じてその場で調整できる豊富なアルゴリズムを備えています。 また、単純なラウンド ロビン リストで動作するものもあります。ラウンド ロビン方式では、正常なコンピューターのみを反映するよう、定期的にリストが更新できます。
リバース プロキシーは通常、特定のシステムのインターネットまたはイントラネットに単一の IP アドレスを公開し、リクエストを適切なリソースに分散します。 これにより、ネットワークとシステムの内部トポロジーが隠され、攻撃が発生した場合に侵入ポイントの数が減少するため、セキュリティー リスクが大幅に軽減されます。 また、この方法では、システムへの単一のアクセス ポイントを提供することで、サービスの提供と利用も簡素化されます。 ほとんどの組織が、サイトが直接クライアントに公開されないようにするためにプロキシー サーバーを設定します。
リバース プロキシー サーバーは、ArcGIS Server と直接通信するように構成することも、プロキシー ディレクティブに対応する URL を追加することで ArcGIS Web Adaptor を介して通信するように構成することもできます。
詳細については、「ArcGIS Server でのリバース プロキシー サーバーの構成」をご参照ください。
負荷分散とリバース プロキシーの実装に関する一般的な推奨事項は次のとおりです。
他の多くのアプリケーションやシステムにおける一般的なアプリケーション アーキテクチャーでは、ロード バランサーで TLS を終了します。 しかし、ArcGIS システムでは TLS の終了は一般的に推奨されておらず、Portal for ArcGIS の場合はサポートされていません。 エンドツーエンドの TLS 接続を維持する方がより強力なセキュリティー ポスチャーであり、ネットワーク内の攻撃者にユーザー リクエストとデータが見られないようにします。
ArcGIS システムで負荷分散テクノロジーを実装する場合は、次の戦略を検討してください。
healthCheck
リクエストは、システムが適切に実行され、リクエストを受信できる場合にのみ、肯定的に応答する必要があります。ほとんどのリバース プロキシーはロード バランサーの一部として実装されます。これは、多くのロード バランサーが、フロントエンド リクエストの発信元とは異なるバックエンド ポートまたはサービスにリクエストを送信するためです。 リバース プロキシーを実装する場合 (ロード バランサーと併用する場合、またはロード バランサーとは別に実装する場合) は、次の設計上の推奨事項を考慮してください。
一部のリバース プロキシーでは、複数の URL パーツを使用して ArcGIS システムを参照することがデフォルトとなっている場合があります。例:
https://centralhost.domain.com/systems/gis/rest/services
このようなマルチパート URL の使用は、ArcGIS Enterprise コンポーネントではサポートされていないことに注意してください。「Web コンテキスト」または Web Adaptor 名は、URL のホスト名に続く最初の URL コンポーネントでなくてはなりません。