1

一行で: プライベート IP を持ち、ファイアウォールの背後にある複数のオンプレミス クライアントのインストールを、パブリック クラウドでホストされているサーバーに接続し、サーバーからセットアップされたオンプレミス クライアントのいずれかで HTTP エンドポイントと SSH を呼び出す方法。

詳細:パブリック クラウド (AWS など) にデプロイされた 1 つのライブ パブリック (または複数のクラスター) Tomcat サーバーを持つマルチテナント アプリケーションがあります。また、クライアントの場所にデプロイされるクライアントTomcatサーバーもあり、オンプレミスでホストされているクライアントにはプライベートIPがあり、ファイアウォールで保護されます(ライブサーバーへの特定のポートでの通信を許可します)。

クライアントのオフライン時にアプリの一部の機能をサポートするために、オンプレミス クライアントのインストールをサポートする必要があります。ただし、エンド ユーザーは定期的にライブ サーバーからクライアント サーバーに同期します。

パブリック サーバーからプライベート ホスト クライアント マシン(SSH & Tomcat)にアクセスする効率的な方法が必要です。

設定:

  • 言語: Java 8
  • アプリケーション サーバー: Tomcat 8
  • OS: Ubuntu Linux 14.04 (パブリック クラウドでホストされるサーバーとクライアント サーバーの両方)

私の知る限り、これを達成するための方法とその長所と短所を以下に示します。

  1. SSH リバース トンネル
    • 長所: 追加のプログラミングは不要
    • 短所: クライアントの数が増えると、パブリック サーバーでこれらの多くのポートを開く必要があり、多くのセキュリティ上の問題が発生する可能性があります。
  2. ngrockや他の多くのサービスなどのローカル トンネル サービス
    • 長所: 手作業でプログラムをコーディングする必要はありません。おそらく、ほとんどの時間アイドル状態であっても、再接続や接続の維持など、多くのエッジ ケースを処理していたでしょう。
    • 短所: それらのほとんどは商用ソリューションであり、価格モデルはノードごとです。少なくとも 500 ~ 600 のクライアント インストールが必要です。
  3. Websockets - サーバーはプッシュを送信し、クライアントはサーバーにコールバックします。
    • 長所: サーバーで複数のポートを開く必要がない
    • 短所:HTTPのみ可能、SSHは不可
  4. 各クライアントが SSH トンネルを介してサーバー上の個別のポートに接続するハンド コーディングされたソケット プログラミング
    • 長所:完全にコントロールできます
    • 短所: 対処しなければならないエッジ ケースの数がわかりません。

リソースの効率とセキュリティを念頭に置いて、私たちの要件に合うより良い方法を提案してください。

4

0 に答える 0