AzureのApplication Gateway を利用してArcGIS Server を活用する

はじめに

Azure の Application Gateway を利用すると、ArcGIS Web Adapter を用意しなくても、ArcGIS Server を公開できます。

ここでは以下の構成を想定して、Application Gateway を構成してみたいと思います。

ArcGIS Server 用の仮想マシンを Private Subnet 上に作成し、Application Gateway を通じて、ArcGIS Server をインターネットに公開してみることを想定しています。ArcGIS Server の配置されている環境は直接インターネットに公開されていません。また、ArcGIS Server は NAT Gateway 経由でインターネットにアクセスできます。

また、外部のFQDN名を ejsvr.esrij.com とし、内部のFQDN名は egihs-vm.xxxx.internal.cloudapp.net と異なる想定をしています。

Application Gateway にて ArcGIS Server を公開する流れは以下の通りです。

  • 事前準備
  • Application Gateway の基本設定
  • Application Gateway とパブリック IP の紐づけ
  • バックエンドプールの設定
  • ルーティング規則の追加(ルールの設定)
  • バックエンドの設定
  • 正常性プローブのカスタム追加
  • バックエンドの正常性確認
  • 書き換え設定
  • 確認

事前準備

事前準備としてバックエンドの仮想マシンに ArcGIS Server をインストールして、新規サイトを作成しておきます。

また、OS のファイアウォールにて 6443 ポートを開放しておきます。

ArcGIS Server のインストールはヘルプページを参照ください。

Application Gateway の基本設定

Application Gateway の作成をクリックし、基本設定から行います。

Application Gateway は何もリソースの存在しない専用のサブネットが必要になります。(リソースの存在するサブネットを選択すると赤字でエラー表示されます。)

Application Gateway とパブリックIPの紐づけ

あらかじめパブリック IP を作成しておき、Application Gateway にフロントエンドのパブリック IP アドレスとして紐づけします。

バックエンドプールの追加

バックエンドの仮想マシンの内部のFQDN名を設定します。

内部の FQDN名は、ArcGIS Server Administrator Directory (※ローカル環境からhttps://localhost:6443/arcgis/adminへアクセス)より、

Home > machines > マシン名 にて確認ができます。

ルーティング規則の追加

ルールの設定を追加します。

プロトコルは HTTPS を選択し、ポートは 443 を入力します。

ここでは手持ちの証明書(pfxファイル)をアップロードしています。また、pfxファイルのパスワードを入力します。

ホスト名によってルーティング規則を分けたい場合は、ホスト名を設定します。

リスナの種類は、1つのサイトをホストしている場合は Basic でも大丈夫です。ArcGIS Server と Portal for ArcGIS でルーティング規則を分けたい場合などはマルチサイトを選択します。

バックエンドの設定

ポートは ArcGIS Server の待ち受けポートである 6443 を指定します。

証明書は、ここでは ArcGIS Server をインストールした際に生成されている自己証明書をエクスポートしてインポートしています。

証明書をエクスポートするには、ArcGIS Server Administrator Directory(※ローカル環境からhttps://localhost:6443/arcgis/adminへアクセス)より、

Home > machines > [マシン名] > sslcertificates > selfsignedcertificate へアクセスし、下部にある export  をクリックします。

また、「新しいホスト名でオーバーライドする」にて、「はい」を選択し、

ホスト名のオーバーライド方法は、「バックエンド ターゲットからホスト名を選択する」にします。

(※ ArcGIS Server のマシン名を Home > machines > [マシン名] にて確認してください。)

注意点としましては、外部のFQDN名(ejsvr.esrij.com)と内部のFQDN名(egihs-vm.xxxxx.lx.internal.cloudapp.net)が今回の設定ケースでは異なっており、書き換え設定をしておかないと疎通確認時に 502 ゲートウェイエラーが出る、という点です。

要求のタイムアウトは Portal for ArcGIS とのフェデレーションなどを考慮すると少し長めの設定にしておいた方がよいです。

Application Gateway 作成後に正常性プローブをカスタムで追加

バックエンドとの通信が正常かの確認をする設定をします。

ポートは 6443、パスは /arcgis/rest/info/healthCheck を入力します。

バックエンドの正常性確認

バックエンド正常性にて設定が正常にてきているか確認をします。

書き換え設定

「ejsvr.esrij.com」 に接続すると、応答ヘッダー内の Location ヘッダーに仮想マシン の既定の FQDN が入り、リダイレクトの指示がされてうまく通信できません。

Application Gateway V2 SKU の場合、ここで書き換え設定をすることで、Location ヘッダーの書き換えを行い、通信させることができます。

書き換えルールの構成にて、規則シーケンス50 として実行のルール設定を行います。

ここでは共通ヘッダー名として、X-Forwarded-Host を設定し、ヘッダー値として {http_req_host} を設定しています。

また、規則シーケンス100 として条件の追加を行います。

If の一致させるパターンとして、(https?):\/\/.*internal\.cloudapp\.net:6443(.*)$ を設定します。

仮想マシンの内部のFQDN名にマッチするパターンを設定します。

また、結果(Then)のヘッダー値として、{http_resp_Location_1}://{http_req_host}{http_resp_Location_2} を入力します。

確認

Application Gateway で設定したパブリックの IP アドレスを名前解決できるようにしておきます。

(今回のケースでは、hostsファイルにパブリック IP ejsvr.esrij.comの記載をしました。)

正常な設定をしていますと ArcGIS ServerのREST Services Directory を参照できます。

Azure での Application Gateway の設定はハードルが高いですが、

使いこなせるようになれば Azure にて ArcGIS Web Adapter を利用しなくても、ArcGIS Server の公開が可能となります。

GIS 活用の中での DX 推進のヒントにしてみてください。

※参考 ArcGIS Enterprise on Microsoft Azure

フォローする