Claris FileMaker 2023 – Claris FileMaker WebDirect セカンダリマシン 追加

FileMaker WebDirect セカンダリマシンとは

FileMaker Server は、データベースの共有はもちろん、
バックアップ、スケジュール実行、サーバー上のスクリプト実行、
Admin Console、FileMaker WebDirect、FileMaker Data API、FileMaker Admin API など、
かなり盛りだくさんに 1 台で機能を提供しています。

その中でも最もサーバー側で負荷が高いのが FileMaker WebDirect です。
FileMaker WebDirect クライアントが接続するとサーバー側に仮想クライアントが作成されるので、
接続するクライアント数や処理の重さは、サーバーの CPU やメモリー使用率にそのまま比例して負荷がかかります。

そこで、FileMaker WebDirect の仮想クライアント部分を別のサーバーに任せることができます。
そのようなサーバーを以前は「ワーカーマシン」といっていましたが、今は「セカンダリマシン」といい、
メインのサーバーを以前は「マスタマシン」といっていましたが、今は「プライマリマシン」というように変わっています。

同時接続 100 を超える構成が可能

FileMaker WebDirect はバージョン 15 までは同時接続 100 まで、
バージョン 16 からはセカンダリ構成が可能になり、同時接続 500 までになっています。
そして、Linux、Nginx、Nginx ロードバランサ のすべての条件がそろうと、
バージョン 19.6 は同時接続 600 まで、
新バージョンでは同時接続 1,000 まで可能とのことです。

Claris FileMaker 2023 動作環境

Nginx ロードバランサについては別投稿で紹介します。
Claris FileMaker 2023 – Nginx ロードバランサ URL

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

FileMaker Server 20.1.1.38 を使った FileMaker WebDirect の検証結果です。
接続は FileMaker Pro の URL から挿入 スクリプトステップを使い、
テストファイルへサインインしました。
Loop で連続して行い、1 秒あたり 5 ユーザぐらいのサインインをしています。

  • プライマリの URL へ向かっても セカンダリの URL へリダイレクトされ、
    セカンダリの接続が 100 に届くまでこの状況は続く
  • セカンダリの URL へ向かうと、セカンダリに接続し、
    セカンダリの接続が 100 に届くまでこの状況は続く

上記のことから、セカンダリがあるときは、なるべくセカンダリを使うようにリダイレクトされるようになっているようです。

  • セカンダリの接続が 100 になっている場合、
    プライマリの URL へ向かうと、プライマリに接続し、
    プライマリの接続が 100 に届くまでこの状況は続き、
    プライマリもセカンダリも 100 ずつの満杯になると 201目の接続はできない
  • セカンダリの接続が 100 になっている場合、
    セカンダリの URL へ向かっても プライマリの URL へリダイレクトされ、
    プライマリの接続が 100 に届くまでこの状況は続き、
    プライマリもセカンダリも 100 ずつの満杯になると 201 目の接続はできない
  • セカンダリの接続が 100 でプライマリの接続が数件増え始めてている状態から、セカンダリの接続が 99 に減った場合、次の接続はセカンダリにリダイレクトされる

上記のことから、セカンダリがいっぱいのときにだけプライマリを使うようです。

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

  • プライマリ、セカンダリのいずれかの URL へ向かっても セカンダリのどちらかの URL へリダイレクトされ、
    セカンダリの接続が 100 + 100 に届くまでこの状況は続く
  • セカンダリの URL へ向かっても セカンダリの接続数の少ない方の URL へリダイレクトされ、
    セカンダリの接続が 100 + 100 に届くまでこの状況は続く
  • リダイレクトされたくない場合、URL の後ろに ?redirected=true を付与するとリダイレクトされずに、希望の URL のサーバーへ接続できます。

上記のことから、やはりセカンダリがいっぱいのときにだけプライマリを使うようです。
また、セカンダリの URL を開こうとしてもその通りのセカンダリなのかリダイレクトされて別のセカンダリになるかもしれないという構成になります。

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

状況はプライマリ1台 + セカンダリ2台が4台に増えただけで、
リダイレクトの動きは同じで最大 500 接続までできました。

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

5台目のセカンダリを追加しようとすると、
Error: 1631 (Remote server connection failed)
とエラーになって追加できませんでした。
仕様通りですね。

FileMaker Server Admin Console は

  • プライマリの URL で開くことができ、セカンダリの URL では開かない
  • セカンダリの Admin Console は FileMaker Server Deployment Assistant といい、
    セカンダリのマシンから http://localhost:16003 で開けるとマニュアルに記載があります。
    ただし、FileMaker Server Deployment Assistant は GUI が必要なため、Linux Ubuntu はデスクトップ版が必要になります。
    そのため実際は FileMaker Server Deployment Assistant を使用せず fmsadmin などの CLI だけで必要な設定をします。
  • FileMaker Admin API もプライマリの URL で使え、セカンダリの URL では使えない
  • コマンドラインからの fmsadmin はプライマリは通常通り使用可能、セカンダリは一部だけ使用可能
  • セカンダリの SSL 証明書のインストールは FileMaker Server Deployment Assistant か、fmsadmin でインストール可能
  • セカンダリとして初めて登録するときは、セカンダリの FileMaker Server Deployment Assistant か fmsadmin で登録し、
    登録済みセカンダリの解除は、プライマリの Admin Console か fmsadmin で解除する

メリット・デメリット・足りないところ

メリット
  • 接続台数を大幅に引き上げられます。
  • プライマリサーバーへの負荷下げられますので、
    FileMaker WebDirect のトラブルが原因で OS レベルからの再起動が必要な場面も減らすことができるでしょう。
デメリット
  • ユーザが接続しにいった URL というか FQDN とは違う FQDN に接続することがほとんどなので、
    セキュリティーを気にすると気持ち悪い。
足りないところ
  • URL をリダイレクトするロードバランスはあくまでも接続するサーバーを分散化するだけのパススルーだけなので、
    プライマリもセカンダリもすべてのサーバーをインターネット上に公開しなければならない。
  • 秒間数百のサインインがあると、バランスよくセカンダリに割り振ることができず、一部のマシンに集中して接続させてしまう

上記のデメリット・足りないところを解決する方法が、
NGINX ロードバランサ を設置した構成です。
これについては別投稿で投稿しています。
Claris FileMaker 2023 – NGINX ロードバランサ URL

 

 

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