Claris FileMaker 2023 – NGINX ロードバランサ URL

NGINX ロードバランサで Claris FileMaker WebDirect を大規模化

Claris FileMaker Server Admin Console の、「コネクタ ー Web 公開 ー Claris FileMaker WebDirect」に、
NGINX ロードバランサ URL という設定項目が追加されました。

FileMaker WebDirect を1台のサーバーで構成すると同時接続 100 、
セカンダリ構成にすると同時接続 500 、
そして新バージョンからは NGINX ロードバランサを構成すると同時接続 1,000 にすることができます。

Claris FileMaker 2023 動作環境(Claris)

これまでの課題を解決する NGINX ロードバランサ

バージョン 16 からセカンダリ構成が可能になり、同時接続 500 までになっています。
しかしそれでももっと大規模化したい、
またセカンダリ構成でのデメリットや足りないところなどの課題を解決する方法の1つとして、
NGINX ロードバランサ を構成します。

セカンダリ構成については別投稿で紹介しています。
Claris FileMaker 2023 – Claris FileMaker WebDirect セカンダリマシン 追加

NGINX ロードバランサ でできること

一般的にロードバランサというと次の2つのことができます。

  • ロードバランス
  • リバースプロキシ

ロードバランス

ロードバランスは、複数のリクエストを複数のサーバーに分散する仕組みのことです。
割り振り方にもいろいろあり、とにかく順番にとか、空いてそうなサーバーに割り振ったりなどの機能があります。

NGINX には機能限定の無償版の「NGINX Open Source」と、有償版の「NGINX Plus」があります。
Claris Engineering Blog の「 Scaling up FileMaker Server with load balancing and Docker containers on Linux 」によれば、
「NGINX Open Source」のロードバランスでは NAT 変換 された IP を使用すると、同じセカンダリに案内されるようです。

Note for Nginx Open Source: If client sessions are accessed from a network with Network Address Translation (NAT), the session may all be mapped to the same public IP address, causing Nginx to direct those different sessions on the same NAT network to the same secondary machine. For example, if two open FileMaker WebDirect sessions are initiated from the same NAT network, because both sessions will use the same hash, Nginx will direct those different sessions to the same secondary machine.

会社などでは社内の Wi-Fi や LAN を使ってインターネットに出られているのは、
社内にあるインターネットルータ が NAT 変換 してグローバル IP アドレスに変換しているからです。
ということは、AWS や Google Cloud などインターネット上に「NGINX Open Source」のロードバランスを設置していると、
セカンダリを複数台用意してあっても会社内の端末からは1つのセカンダリにのみ案内される、
つまりロードバランスが働かないと言っています。
(NGINX Plus は1本年額数十万円と言われています。どうしますかね〜)

リバースプロキシ の動作検証

リバースプロキシは、Web サーバとインターネットとの間の位置のネットワーク構成に設置します。
ブラウザが通信するのはリバースプロキシ、そのリバースプロキシがブラウザの代理で Web サーバへの通信を行う、
という構成になります。
これによりインターネット上からアクセスできるサーバーはリバースプロキシだけにできるので、
セキュリティーリスクを下げ、メンテンス時の切り替えも楽になります。

接続先は NGINX ロードバランサ の URL になります。
リバースプロキシによって、最終的に接続しているセカンダリの URL はブラウザに一切表示されません。

さらには NGINX ロードバランサ だけにインターネットから接続できるグローバル IP アドレスを付与し、
セカンダリのグローバル IP アドレスを外して NGINX ロードバランサ と接続できるクラウド内のローカル IP アドレスだけにしても、
ちゃんと接続できます。
WebDirect しか使わないのであれば、プライマリのグローバル IP アドレスも不要になります。

検証:プライマリ1台 + セカンダリ10台

いきなり仕様の最大まで検証してみました。
NGINX ロードバランサ を使用する構成では、
プライマリの Web 公開エンジン は OFF にするような手順になっているので、
セカンダリが 10 台あれば 1,000 接続可能なはずです。

結果、1,000 接続できました。

ビックリなのはセカンダリのマシンスペックは検証だからということで、1CPU、4GBメモリということ。
セカンダリのマシンスペックは接続台数だけでなく、
カスタム App の内容によって必要とするスペックが大きく変わるということです。

*接続数の上限はハードウェアの構成、カスタム App のデザイン、ライセンス/サブスクリプションおよびその他の違いによって制限される可能性があります。

また、おまけで、もう一つ追加して 1,001 接続しようとしたらどうなるか検証したところ、
1 台のセカンダリが 101 接続、合計 1,001 接続になりました。

検証:プライマリ1台 + セカンダリ11台

先程の 1,001 とか 101 とか、
仕様を越えて接続できてしまうなら、セカンダリも増やせられるのか。

結果、各セカンダリに 100 接続、合計 1,100 接続できました。
また画像はプライマリの FileMaker Server Admin Console ですが、
4GBメモリのうちそれほど使っていないことが確認できます。

今後の検証

お伝えしたとおり、無償版の「NGINX Open Source」では、
会社内とかからクラウド上にある NGINX ロードバランサ を使ってもロードバランスしてくれないので、
別の方法を Goolge Cloud Balancing など検証したいと思います。

また、セカンダリの上限数とか、1 台のセカンダリに接続できる最大数はこの動作が正しいのか、
新バージョンで FileMaker Server Admin Console に追加された「NGINX ロードバランサ URL」という設定値は何を意味するのか、
なども新しい情報があれば検証してみたいと思います。

構築に際して参考にした URL

この辺にとても強い Soliant Consulting さんには感謝しかありません。

 

 

【 余談 】
最近下記リンク先への流入増大したいこともあり、
流入量が多いとブログの価値が高まりますます投稿を加速していきたいと思います。
リンク先を開いていただけると大変助かります。
Claris International Inc. (日本語)
ご協力いただけましたら幸いです。