B リバース・プロキシとの統合

リバース・プロキシ・サーバーを構成する方法を学習します。

リバース・プロキシを使用すると、デプロイメント内の異なるマイクロサービスに対して単一のポートを使用して接続できます。プロキシ・サーバーはご使用の環境設定やネットワーク要件に応じて構成できます。

ノート:

リバース・プロキシはオプションですが、マイクロサービスへの容易なアクセスが保証され、セキュリティも強化されるためにお薦めします。

リバース・プロキシのサポート

Oracle GoldenGate Microservicesは、リバース・プロキスを使用するように構成できます。Oracle GoldenGate Microservicesには、ReverseProxySettingsというスクリプトが含まれています。このスクリプトによって、NGINXリバース・プロキシ・サーバーのみの構成ファイルを作成します。

たとえば、管理サーバーがHTTPS://goldengate.example.com:9001にあり、配布サーバーがhttps://goldengate.example.com:9002にあるとします。リバース・プロキシを使用すると、すべてのマイクロサービスに1つのアドレスから簡単にアクセスできます。たとえば、配布サーバーの場合はhttps://goldengate.example.com/distsrvrになります。このURLは、サービスごとに異なります。また、ポートごとではなく名前ごとのものになります。

ReverseProxySettingsには、次のオプションを使用できます。

-oまたは--output

出力ファイル名。デフォルトのファイル名はogg.confです。

-Pまたは--password

Service Managerアカウントのパスワード。

-lまたは--log

ログ・ファイル名を指定し、ロギングを開始します。デフォルトではロギングしません。

--trailOnly

インバウンドの証跡データ専用に構成します。

-tまたは--type

プロキシ・サーバーのタイプ。デフォルトはNginxです。

-sまたは--no-ssl

SSLなしで構成します。

-hまたは--host

リバース・プロキシの仮想ホスト名。

-pまたは--port

リバース・プロキシのポート番号。デフォルトは80または443です。

-?または--help

使用方法の情報を表示します。

-uまたは--user

使用するService Managerアカウントの名前

-vまたは--version

バージョンを表示します。

これらの値は、Service Managerへの接続時に使用されます。認証が有効になっている場合は必須です。

前提条件

Microservicesでは、任意のリバース・プロキシ・サービスを使用できます。次の例では、その他のリバース・プロキシ・サービスを構成するための手順と、対象プロキシ・サーバーのドキュメントを示します。

次の前提条件では、NGINXリバース・プロキシを構成するための最小要件に関する詳細を示します。NGINXを使用しない場合でも、目的の環境とリバース・プロキシに対して同様の要件が必要になることがあります。対象のリバース・プロキシのドキュメントを参照してください。

  1. NGINXをインストールします(「NGINXリバース・プロキシのインストール」を参照)。Oracle Linuxの場合、NGINXをインストールするコマンドは次のとおりです。

    yum —y install NGINX

  2. JREのバージョンがJRE 8以降であることを確認します。

  3. Oracle GoldenGate Microservicesをインストールします。

  4. 1つ以上のアクティブなMicroservicesデプロイメントを作成します。

  5. Oracleユーザーにsudo権限があることを確認します。

NGINXリバース・プロキシの構成

Oracle GoldenGate Microservicesのインストールには、ReverseProxySettingsユーティリティが含まれています。ReverseProxySettingsユーティリティは、$OGG_HOME/lib/utl/reverseproxyディレクトリにあります。ReverseProxySettingsユーティリティで使用できる追加のコマンドを確認するには、--helpオプションを指定してユーティリティを実行します。

$OGG_HOME/lib/utl/reverseproxy/ReverseProxySettings --help

NGINX証明書を信頼できる証明書としてDistribution Serverのクライアント・ウォレットに追加するには、信頼できる証明書の設定を参照してください。

  1. NGINXリバース・プロキシ用の構成ファイルを生成するには、ReverseProxySettingsユーティリティを使用して同様のコマンドを実行します。安全な構成を使用するようにNGINXを構成する場合は、-sオプションを省略して、HTTPではなくHTTPSを確実に使用する必要があります。

    $OGG_HOME/lib/utl/reverseproxy/ReverseProxySettings -u adminuser -P adminpwd -o ogg.conf HTTPS://localhost:9100
  2. 既存のNGINX構成を、MicroservicesデプロイメントのReverseProxySettingユーティリティを使用して生成された構成に置き換えます。

    sudo mv ogg.conf /etc/nginx/conf.d/nginx.conf

    ただし、このNGINX構成は、eventsセクションがなくhttp内にmapおよびserverセクションが含まれていないと完成ではありません。

    オプションで、デフォルトのnginx.confファイルを使用することや、次のようなinclude文を追加して、生成されたogg.confを追加することができます。

    include /etc/nginx/conf.d/ogg.conf;

    この場合は、他のserversセクションをコメント・アウトする必要があります。

  3. NGINXの自己署名証明書を生成します。

    sudo sh /etc/ssl/certs/make-dummy-cert /etc/NGINX/ogg.pem

    リバース・プロキシを経由する配布パスの場合は、有効な証明書を使用する必要があります。デプロイメントでの受信リクエストの処理に使用されているのと同じ証明書を指定することをお薦めします。そうしないと、パスの起動は、配布サーバーにおいて次のエラーで失敗します。

    2019-03-26T11:26:00.324-0700 ERROR| ERROR   OGG-10351  Oracle GoldenGate Distribution
            Server for Oracle:  Generic error -1 noticed. Error description - Certificate validation
            error: Unacceptable certificate from test00abc: application verification failure.
          (A4)
  4. NGINX構成を検証します。

    sudo NGINX -t
      
    NGINX: the configuration file /etc/NGINX/NGINX.conf syntax is ok
    NGINX: configuration file /etc/NGINX/NGINX.conf test is successful
  5. 新しい構成でNGINXをリロードします。

    sudo NGINX -s reload

    構成ファイルに対する変更がロードされていない場合は、プロキシを停止して再起動します。

  6. cURLを使用して、リバース・プロキシが機能していることを確認します。

    curl -sv HTTPS://localhost/services/v2
    {"$schema":"api:version","catalog":{"links":[
    {"href":"HTTPS://localhost/service s/v2/metadata-catalog","rel":"canonical"}]},"isLatest":true,"lifecycle":"active","links":[
    {"href":"HTTPS://localhost/services/v2","mediaType":"application/js on","rel":"canonical"},
    {"href":"HTTPS://localhost/services/v2","mediaType":"app lication/json","rel":"self"}],"version":"v2"}

    ノート:

    ターゲットのService Managerに関連付けられたデプロイメントを変更した場合は、NGINX構成ファイルを再生成してリロードする必要があります。

SSL終了

TLSベースの接続を使用するリバース・プロキシとオリジン・サーバーの間に保護されていない接続がある場合、その接続はリバース・プロキシSSL終端と呼ばれます。

SSL終端では、リバース・プロキシとオリジン・サーバー間の接続は保護されていないことに注意してください。

ただし、SSLブリッジングもサポートされています。ここでは、クライアントとリバース・プロキシ間の接続が保護され、リバース・プロキシとオリジン・サーバー間の接続も保護されます。