グローバル展開
大規模なGO-Globalの展開は、しばしばファームホストとファームマネージャーをはるかに超えて拡張されます。エンタープライズ環境では、通常、パフォーマンス、信頼性、およびセキュリティを強化するために設計された多数のサポートシステムと一緒に運用されます。ファイアウォール、ロードバランサー、ウェブアプリケーションファイアウォール(WAF)、リバースプロキシ、および監視ツールを含むこれらのシステムは、GO-Globalアプリケーションがアクセス可能で、回復力があり、組織の標準に準拠していることを保証します。
この記事は、そのようなコンポーネントを含む複雑なITインフラストラクチャ内で効果的に機能するようにGO-Globalを構成するための詳細なガイダンスを提供します。GO-Globalが各システムとどのように相互作用するかを説明し、構成のベストプラクティスを概説し、大規模またはクラウドベースの配備を管理する管理者にとっての重要な考慮事項を強調します。

境界ファイアウォール
GO-Globalの展開がインターネットからアクセス可能な場合、境界ファイアウォールは一般的に侵入に対する防御の第一線です。境界ファイアウォールは通常、セキュアな HTTPS/TLS トラフィックの標準ポートである TCP ポート 443 での着信接続を許可するように設定されています。
ポート443は安全なトラフィックのための標準ポートであり、ほとんどの企業(クライアント)のファイアウォールで開いているポートであるため、インターネット経由で接続するGO-Globalクライアントは通常、GO-Globalの標準ポート491の代わりにポート443に接続するように設定されます。これはURLにポートを追加するか(例えば、&port=443)、GO-Globalのlogon.htmlページでポートを指定することにより行われます。
ウェブアプリケーションファイアウォール(WAF)
ウェブ・アプリケーション・ファイアウォール(WAF)は、受信するHTTPリクエストを分析し、悪意のあるリクエストを特定してブロックする。WAFは、HTTPリクエストの情報に基づいてトラフィックを異なるバックエンドサーバーにルーティングすることもできるが、これはWAFの主な機能ではない。WAFの主な機能は、セキュリティを提供し、分散型サービス拒否(DDoS)攻撃などの攻撃から保護することです。
WAFの例としては、Cloudflare WAF、AWS WAF(Amazon Web Services)、Azure Web Application Firewall、F5 Advanced WAF、Imperva WAF、Akamai Kona Site Defender、Fortinet FortiWeb、Barracuda WAF、Radware WAFなどがある。
HTTPSトラフィックを分析するには、WAFはリクエストを解読できるようにTLSを終了する必要があります。TLSがWAFによって終了される場合、GO-GlobalのtlsパラメータをクライアントのURLに追加するか、GO-Globalのlogon.htmlページで指定する必要があります。
GO-Globalトラフィックに関するもう一つの考慮事項は、WAFはGO-Global独自のRXPプロトコルを分析できないということです。従って、GO-Globalクライアントとホスト間の通信がWAFを通過する場合、Websocketを使用するようにGO-Globalを設定することによってHTTPリクエストにラップするか、WAFのデータ分析機能をGO-Globalトラフィックに対して無効にする必要があります。
すべてのバージョン6.3.3以降のGO-GlobalクライアントはWebSocketをサポートしています。しかし、GO-Globalバージョン6.3.2およびそれ以前では、GO-Global Web AppのみがWebSocketsをサポートします。GO-GlobalのネイティブクライアントであるAppControllerは、バージョン6.3.2以前ではWebSocketをサポートしていません。
AppController バージョン 6.3.2 以前を WAF で使用する場合、WAF が AppController のトラフィックを検査しないように環境を設定する必要があります。たとえば、WAFを使用しないAppController接続用に別のエンドポイント(パブリックアドレス)を提供したり、AppControllerが別のポートで接続するように設定し、WAFがこのポートのトラフィックを検査せずに通過するように設定したりすることで実現できます。
リバースプロキシ
WAFと同様、リバースプロキシは受信HTTPリクエストを分析する。リバースプロキシにはセキュリティ機能もあるが、WAFとは異なり、リバースプロキシの主な機能はトラフィック管理であり、セキュリティではない。例えば、リバースプロキシは、複数のウェブアプリケーションやサービスが同じパブリックエンドポイントから提供されている場合によく使用される。リバースプロキシは、異なるアプリケーションへの着信リクエストを、それぞれのアプリケーションサーバーにルーティングします。また、GO-Globalファームホストのロードバランサーとしても使用できます。
リバースプロキシの例としては、Nginx、Apache HTTP Server、HAProxy、Traefik、Cloudflareなどがある。AWSアプリケーションロードバランサーとAzureアプリケーションゲートウェイには様々な機能があり、その1つにリバースプロキシとしての機能がある。
WAFと同様に、リバースプロキシは着信HTTPリクエストを分析できるようにTLSを終了する必要があります。WAFと同様に、TLSがリバースプロキシによって終了される場合、GO-GlobalのtlsパラメータをクライアントのURLに追加するか、GO-Globalのlogon.htmlページで指定する必要があります。
WAFのように、リバースプロキシはGO-Global独自のRapidXプロトコル(RXP)を分析することはできません。したがって、WAFと同様に、GO-Globalクライアントとホスト間の通信がリバースプロキシを通して通過する場合、WebSocketを使用するようにGO-Globalを設定することによってHTTPリクエストにラップするか、リバースプロキシのデータ分析機能をGO-Globalトラフィックに対して無効にする必要があります。
また、WAF と同様に、AppController のバージョン 6.3.2 以前をリバースプロキシで使用する場合は、WAF が AppController のトラフィックを検査しないように環境を設定する必要があります。例えば、リバースプロキシを使用しないAppControllerの接続用に別のエンドポイント(パブリックアドレス)を用意したり、AppControllerが別のポートで接続するように設定し、リバースプロキシがこのポートのトラフィックを検査せずに通過するように設定することで実現できます。
ウェブサーバー
GO-GlobalホストはGO-GlobalウェブアプリとそれをサポートするHTMLとJavaScriptファイルをホストできる統合ウェブサーバーを持っています。GO-Globalの統合ウェブサーバーが使用されている場合、GO-GlobalのウェブファイルへのHTTPリクエストは内部ネットワーク上のGO-Global Farm Hostsに転送されます。
しかし、インターネットの展開では、DMZにあるサードパーティのウェブサーバーでGO-Globalのウェブファイルをホスティングすることにセキュリティ上の利点があります。サードパーティのウェブサーバーの例としては、Apache HTTP Server、Nginx、Microsoft IIS (Internet Information Services)などがあります。
サードパーティのウェブサーバーを使用する場合、GO-Globalのウェブアプリと関連ファイルは、Hostインストーラーを介して、またはGO-Globalのウェブディレクトリの内容をウェブサーバーにコピーすることにより、ウェブサーバーにインストールする必要があります。
ほとんどのサードパーティのWebサーバーはWebSocket接続を処理する機能を持っていますが、WebSocket接続は一般的に専用のロードバランサーまたはリバースプロキシによって処理されます。管理者は、GO-GlobalのHTTPリクエストをウェブサーバーにルーティングし、WebSocket接続をGO-GlobalファームホストまたはロードバランサーにルーティングするようにWAFとリバースプロキシを設定できます。
あるいは、WAFまたはリバースプロキシが使用されない場合、管理者はGO-Globalのウェブソケット接続用に別のエンドポイント(アドレスまたはポート)を作成し、クライアントのURLまたはGO-Globalのlogon.htmlページのホストおよび/またはポートパラメータを介してこのエンドポイントを指定することができます。
ネットワーク・ロードバランサー
複数のファームホストが必要な場合、ホスト間でユーザー接続を分散するために ロードバランサが必要になります。ロードバランサはリバースプロキシでもネットワークロードバランサでもかまいません。
複数のアプリケーションが単一のインターネットエンドポイント経由でアクセスされる環境では、境界ファイアウォールは通常、接続をリバースプロキシに転送する(オプションでWAF経由)。リバースプロキシはその後、接続をファームホストに直接転送するか(負荷分散)、ネットワークロードバランサーを介して接続をホストに間接的に転送することができる。
あるいは、GO-Globalがインターネットエンドポイント経由でアクセスされる唯一のアプリケーションである環境では、境界ファイアウォールはポート443の接続をネットワークロードバランサーに直接転送できます。そこから、ロードバランサーはファームホストを選択し、管理コンソールで指定されたポート上のファームホストに接続を転送します。
リバースプロキシとは異なり、ネットワークロードバランサーはトラフィックを検査せず、データの内容に基づいてルーティングする。通常、宛先ポートや送信元IPアドレスなどの変数に基づいてトラフィックをルーティングする。レイヤー4で動作し、TCP接続(TLSはGO-Globalホストで終了する)をルーティングできるロードバランサーの例としては、HAProxy、Azureロードバランサー、AWSネットワークロードバランサーがある。
一部のネットワークロードバランサーはロードバランサーでTLSを終了できます。ロードバランサーがTLSを終了するように設定されている場合、GO-GlobalのtlsパラメータをクライアントのURLに追加するか、GO-Globalのlogon.htmlページで指定する必要があります。
ロードバランサがTLSを終了するとき、オプションでファームホストに送るデータを再暗号化できます。ファームホストがTLSプロトコルを使うように設定されている場合、ロードバランサーはファームホストに送るデータを再暗号化するように設定されていなければなりません。逆にロードバランサーがデータを再暗号化しない場合、GO-Globalのプロトコルは TCPに設定され、暗号化は なしに設定されなければなりません。
ネットワークロードバランサがTLSを終了しないときは、データを復号して再暗号化せずにファームホストに渡します。この設定では、ファームホスト上でTLSプロトコルが有効になっていなければならず、クライアントのURLやlogon.htmlページでtlsパラメータを 指定してはいけません。
バックエンド・ファイアウォール
バックエンドファイアウォールは、ファームホストへのアクセスを特定のフロントエンドシステムに制限するために使用することができる。例えば、リバースプロキシがファームホストへの接続をルーティングするために使用される場合、バックエンドのファイアウォールは、リバースプロキシがファームホストに接続することだけを許可するように構成されるかもしれない。この例では、バックエンドのファイアウォールは、管理コンソールの[ツール]|[ホストオプション]|[セキュリティ]|[ポート](デフォルトでは491)で指定されたポート上でリバースプロキシがファームホストに接続することを許可するように設定されなければならず、トラフィックは両方向で許可されなければならない。
ファームホスト上で実行されるアプリケーションがインターネットにアクセスする必要がある場合、バックエンドのファイアウォールがこのアクセスを許可するように設定されていなければなりません。
GO-Global ファームホストはインターネットへのアクセスを必要としません。ただし、GO-Globalがクラウドライセンスを使用してアクティブ化されている場合、ファームマネージャーのAPSはポート443でportal.graphon.comと cloud.graphon.comに接続できる必要があります。
ドメインコントローラ
ほとんどのデプロイメントでは、ファームホストはMicrosoft Active Directory (AD)ドメインのメンバーです。この環境では、ファームホストはドメインコントローラーとの通信を維持することが不可欠です。この接続性により、アカウントの認証、ユーザー情報と設定の取得、ローミングプロファイルのロード、グループポリシーの適用が可能になります。OpenID Connectの展開では、ファームホストのADコンピュータオブジェクトに制約付き委任を構成することがしばしば要求されます。
管理 ファイアウォール
管理ファイアウォールは、ファームホストからドメインコントローラやファームマネージャなどの管理システムにアクセスするユーザーの能力を制限するために使用できます。例えば、ファームホスト上でアプリケーションを実行しているユーザーが、リモートデスクトップを使用してドメインコントローラーやファームマネージャーに接続しようとするのを防ぐために、管理ファイアウォールを使用することができる。
ファームホストとファームマネージャの間に管理ファイアウォールが存在する場合、ファイアウォールは、ファームホストが管理コンソールの[ツール]|[ホストオプション]|[セキュリティ]|[ポート](デフォルトでは491)で指定されたポートでファームマネージャに接続することを許可する必要があり、トラフィックは両方向で許可される必要があります。
ファームホストとドメインコントローラーの間に管理ファイアウォールが存在する 場合、ファイアウォールは、Windowsがドメインコントローラーとドメインメンバーの 間で通信するために使用するポート上の全ての通信に対して設定されていなければ ならない。この情報についてはMicrosoftのドキュメントを参照のこと。
アイデンティティ・プロバイダー
OpenID Connect認証が使用されている場合、ファームホストは、管理コンソールの「ツール|ホストオプション|認証|OpenID Connect設定の構成|トークンURL」で指定されたトークンURL経由でIDプロバイダへの接続を開くことができなければなりません。
オートスケーリング・インフラストラクチャ
Amazon Web Services(AWS)、Microsoft Azure、Oracle Cloud、Google Cloud(GCP)のようなクラウドサービスプロバイダ(CSP)は、負荷の増減に応じてファームホストを自動的に起動・停止する機能を提供している。これらの機能を使用する場合、管理者は一般的にファームホストのベース("ゴールド")イメージを作成し、システムに接続するユーザーをサポートするために必要に応じて複製することができる。
ファームホストイメージには、ユーザーがファームホスト上で実行するすべてのアプリケーションと同様に、GO-Globalがインストールされ設定されています。管理者は通常、PowerShellスクリプトと、TerraformのようなInfrastructure as Code (IaC)ツールを使用して開発されたインフラストラクチャのコードを組み合わせて、これらのイメージの構築を自動化します。
GO-Globalをプログラムでインストールおよび構成する方法については、GO-Globalの構成の自動化を参照してください。
ファームホストイメージには通常、ファームマネージャとフェイルオーバーファームマネージャのアドレスが保存されています。これにより、スケールアウト(ファームへのホストの追加)が容易になります。新しいホスト・インスタンスが起動されると、自動的にファーム・マネージャに接続され、CSPの自動スケーリング機能により、新しいインスタンスがロード・バランサのターゲット・グループに追加されます。
ファームホストはファームマネージャからライセンスを取得するため、新しいファームホストインスタンスの開始時にライセンス設定は必要ありません。ファームホスト上でセッションが開始されると、ホストはファームマネージャからライセンスシートをチェックアウトします。通常、同時セッションごとに1つのシートが消費されます。
スケールイン(ファームからホストを削除すること)は一般的にスケールアウトより少し複雑です。これは通常、ファームホストインスタンス上で実行されているすべてのセッションが終了するまで、ファームホストインスタンスをシャットダウンするのを待つことが望ましいからです。ファームホストをオフラインにする」はこの方法を説明しています。
ファームホストが停止すると、ホストのファームマネージャへの接続が切断されます。これが発生すると、Farm Managerはホスト上で使用されていたすべてのシートを自動的に解放します。そのため、存在しなくなったホストによってシートが消費されるリスクはありません。シャットダウンされたホストを消去するために何もする必要はありません。
GO-Globalでは、自動スケーリングを制御するための最良のメトリックは一般的に実行中のセッション数です。ホストまたはファーム上で実行されているセッション数は、それぞれファームホストまたはファームマネージャーからGO-GlobalのパフォーマンスカウンターまたはGO-GlobalのGet-GGSessionsPowerShell関数で取得できます。
アベイラビリティ・ゾーンとリージョン
高可用性を提供するために、クラウド・サービス・プロバイダー(CSP)はアベイラビリティ・ゾーンとリージョンを介してマルチ・データセンターのデプロイメントをサポートしている。アベイラビリティ・ゾーンとは、同じ地理的地域内にある1つまたは複数のデータセンターのことです。CSP リージョンは、1 つまたは複数のアベイラビリティ・ゾーンを含む地理的領域です。CSP フォールト・ドメインは、アベイラビリティ・グループとも呼ばれ、1 つのデータセンターの物理的に分離された部分に位置するフォールト・トレラント・リソースです。
GO-Globalは複数のアベイラビリティ・ゾーンにわたる展開をサポートします。GO-Globalが展開されるアベイラビリティゾーンは同じCSPリージョン内にある場合も、異なるCSPリージョン内にある場合もある。
CSP リージョン内では、GO-Global は通常少なくとも 2 つのアベイラビリティ・ゾーンにわたって展開され、プライマリ・ファーム・マネージャは 1 つのアベイラビリティ・ゾーンで実行され、フェイルオーバー・ファーム・マネージャは別のアベイラビリティ・ゾーンで実行されます。ファームホストはリージョン内の任意の数のアベイラビリティゾーンで実行できますが、プライマリファームマネージャとフェイルオーバーファームマネージャの両方に接続できなければなりません。
CSPリージョン間の高可用性が必要な場合、またはユーザーが世界中にいる場合、GO-GlobalはAWSのRoute 53のようなDNSロードバランサーで複数のCSPリージョンに展開され、リージョン間のクライアント接続をルーティングすることができる。DNSロードバランサーは、必要に応じて、アクティブ-アクティブまたはアクティブ-パッシブのフェイルオーバーをサポートするように構成することができる。
監視・観測ツール
監視および観測可能なツールは、GO-Global配備の健全性を監視し、問題が発生した場合に警告を発するために使用されます。GO-Globalは、これらのツールがGO-Globalを監視するために使用できるいくつかの機能を提供します。
ほとんどの観測可能性ツールには、ログファイルを取り込む機能がある。GO-GlobalのログファイルはデフォルトではHTML形式ですが、ほとんどの観測可能性ツールはサポートしていません。従って、GO-Globalのログが観測可能性ツールによって取り込まれる場合、GO-Globalは一般的にテキスト形式でログファイルを記録するように設定されなければなりません。
ログファイルに加え、GO-GlobalはWindowsアプリケーションログにイベントを記録します。GO-GlobalがWindowsアプリケーションログに記録するイベントには、セッションの開始と停止、ユーザーサインイン、およびアプリケーションの開始と停止が含まれます。
ファームホストとファームマネージャーの監視をサポートするために、GO-GlobalはhealthCheckリクエストを提供します。healthCheckリクエストは、アプリケーションパブリッシングサービスがファームホストまたはファームマネージャー上で実行されているかどうか、およびオプションとしてシステムがセッションを作成できるかどうかを判断するために使用できます。ロードバランサーなどはhealthCheckリクエストを使用して、ターゲットグループ内のファームホストの健全性をチェックできます。
。
ヘルスチェック要求を送信するシステムは、各ターゲットファームホストまたはファームマネージャに登録されている必要があります。具体的には、要求を送信するシステムのIPアドレスを、ターゲット・システムのHostProperties.xmlファイルのAPIWhiteListプロパティにCIDR形式でリストする必要があります。
これらのツールに加えて、GO-GlobalのPowerShell APIはファームホストとファームマネージャーから詳細なランタイム情報を取得するために使用できます。例えば、Get-GGSessions関数はファームホストまたはファームマネージャー上で実行されているセッションに関する情報を返します。
結論
大規模またはクラウド統合環境でGO-Globalを展開するには、複数のインフラストラクチャ コンポーネント間の慎重な調整が必要です。ファイアウォール、ロードバランサー、リバースプロキシ、および監視システムなどの要素を正しく構成することにより、管理者はシームレスなユーザー体験を提供する安全でスケーラブルかつ高性能なGO-Global環境を実現することができます。
オンプレミス、クラウド、またはハイブリッドアーキテクチャのいずれで実装されるかにかかわらず、この記事で説明する原則は、GO-Globalが最新の企業ネットワーク内で効率的に動作し、展開の各レイヤーで信頼性、柔軟性、および制御を維持することを保証します。
クラウドベースのアプリケーション配信を検討中のISVですか?GO-Globalがお客様のエンドユーザーのソフトウェアアクセスを合理化するためにどのようなお手伝いができるかについては、当社までお問い合わせください。または、無料トライアルをダウンロードしてご自身でお試しください。
