プロキシの高可用性構成の設定
プロキシの高可用性構成の構成方法について学習します。
プロキシの高可用性構成を設定できます。高可用性アーキテクチャにより、少なくとも1つのプロキシが、様々な需要負荷と障害タイプが発生しても機能し続けるようになります。
Oracle NoSQL Databaseプロキシは、1つ以上の専用ホストで実行できます。それをデータ・ストアのノード内でホストすることもできます。ロード・バランサをフロント・エンドとして使用でき、これには、別々のホストにある複数のNoSQLプロキシのバックエンド・セットが1つあります。
HAProxyは、HTTPおよびTCPアプリケーション用の高可用性ロード・バランサとプロキシを提供するオープン・ソース・ソフトウェアです。HAProxyソフトウェアは、複数のNoSQLプロキシの前にあるロード・バランサとして使用できます。
ノート:
他のロード・バランサも使用できます。このトピックでは、ロード・バランサとしてのHAProxyの使用について概念を示します。たとえば、3つの専用プロキシ・ホストproxy1-nosql、proxy2-nosql、proxy3-nosqlがあるデータ・ストアを考えてみます。プロキシの高可用性構成を設定するには、ホストproxy1-nosql、proxy2-nosql、proxy3-nosqlを、バック・エンドにあるOracle NoSQL Databaseプロキシとして構成します。ロード・バランサ(外部ノード)をインストールしたノードにHAProxyソフトウェアをインストールし構成します。ロード・バランサによってリクエストがそれらのプロキシにルーティングされます。
ホストでのNoSQL Databaseプロキシの構成
データ・ストアをデプロイしてあることを確認します。
-
次のように、各ホスト(
proxy1-nosql、proxy2-nosql、proxy3-nosql)でHTTPプロキシを起動します:非セキュア・データ・ストア:java -jar $KVHOME/lib/httpproxy.jar -helperHosts <kvstore_helper_host:5000> -storeName <kvstore_name> -httpPort 8080 -verbose true詳細は、「非セキュア・データ・ストアでのプロキシの使用」を参照してください。
セキュア・データ・ストア:java -jar $KVHOME/lib/httpproxy.jar -helperHosts <kvstore_helper_host:5000> -storeName <kvstore_name> -httpsPort 8443 -storeSecurityFile $KVROOT/security/proxy.login -sslCertificate certificate.pem -sslPrivateKey key-pkcs8.pem -sslPrivateKeyPass <privatekey_password> -verbose true詳細は、「セキュアなデータ・ストアでのプロキシの使用」を参照してください。
ノート:
NoSQLプロキシごとに証明書を作成するかわりに、サブジェクト代替名(SAN)を持つ証明書を1つのみ作成できます。これにより、次のシナリオでの構成が簡略化されます:- 証明書をローテーションする必要がある場合。管理および共有する証明書は1つのみです。
- サーバーに複数の名前がある場合。
- IPを使用する場合。
SANの使用の詳細は、プロキシ用の証明書と秘密キーの生成を参照してください。
-
プロキシが機能しているかどうかを確認します。
非セキュア・データ・ストア:http://<proxy1-nosql>:8080/V2/healthセキュア・データ・ストア:https://<proxy1-nosql>:8443/V2/health
ロード・バランサの構成
-
HAProxyソフトウェアを、ロード・バランサを実行する外部ノード(
<LB-hostname>など)にインストールします。ノート:
Oracle NoSQL Databaseドキュメントには、ロード・バランサを設定する手順は記載されていません。高可用性プロキシ設定を構成する前に、それを前提条件として実装する必要があります。 -
HAProxyソフトウェアを構成します:
この例は、Oracle NoSQL HTTPプロキシのコンテキストでオープンソースのロード・バランサを構成するためのガイドラインとして機能します。
/etc/haproxy/haproxy.cfgファイルの末尾に次の行を追加します。これにより、リクエストをプロキシ(
proxy1-nosql、proxy2-nosql、proxy3-nosql)にルーティングするようにHAProxyが構成されます。例: 非セキュア・データ・ストア:# Configure HAProxy to listen on port 8080 frontend http_front bind *:8080 stats uri /haproxy?stats default_backend http_back # Configure HAProxy to route requests to Oracle NoSQL Database proxy hosts on port 8080 backend http_back balance roundrobin server proxy1-nosql <IP_node1>:8080 check server proxy2-nosql <IP_node2>:8080 check server proxy3-nosql <IP_node3>:8080 check例: セキュア・データ・ストア:
ご使用のロード・バランサに応じて、次のいずれかのサンプル構成を使用できます:-
SSLパススルー構成:
ロード・バランサによって、ロード・バランサ上でトラフィックを復号化せずに、暗号化されたHTTPSトラフィックがバック・エンド・サーバーに直接渡されます。ここでは、ロード・バランサとプロキシで同じSSL証明書が使用されます。# Configure HAProxy to listen on port 8443 frontend http_front bind *:8443 ssl crt /etc/haproxy/certs/full.pem timeout http-keep-alive 20s stats uri /haproxy?stats default_backend http_back # Configure HAProxy to route requests to Oracle NoSQL Database Proxy hosts on port 8443 backend http_back balance roundrobin timeout http-keep-alive 20s server proxy1-nosql <IP_node1>:8443 check maxconn 20 ssl verify none server proxy2-nosql <IP_node2>:8443 check maxconn 20 ssl verify none server proxy3-nosql <IP_node3>:8443 check maxconn 20 ssl verify none -
SSLブリッジング構成:
ロード・バランサによって、すべてのHTTPSトラフィックが、ロード・バランサに到着すると復号化され、宛先サーバーへのトラフィックが暗号化されます。この構成では、ロード・バランサとプロキシで別々のSSL証明書を使用できます。# Configure HAProxy to listen on port 8443 frontend http_front bind *:8443 ssl crt /etc/haproxy/certs/full.pem timeout http-keep-alive 20s stats uri /haproxy?stats default_backend http_back # Configure HAProxy to route requests to Oracle NoSQL Database Proxy hosts on port 8443 backend http_back balance roundrobin timeout http-keep-alive 20s server proxy1-nosql <IP_node1>:8443 check maxconn 20 ssl ca-file /root/proxy1-nosql.pem server proxy2-nosql <IP_node2>:8443 check maxconn 20 ssl ca-file /root/proxy2-nosql.pem server proxy3-nosql <IP_node3>:8443 check maxconn 20 ssl ca-file /root/proxy3-nosql.pem
-
-
haproxyを再起動し、ステータスを確認します:
sudo systemctl stop haproxy.service sudo systemctl start haproxy.service sudo systemctl status haproxy.service -
ロード・バランサが機能しているかどうかを確認します。
非セキュア・データ・ストア:http://<LB-hostname>:8080/V2/healthセキュア・データ・ストア:
https://<LB-hostname>:8443/V2/health