例: 冗長性のための複数のOracle NoSQL Databaseプロキシの構成
ロード・バランサと連携するように複数のOracle NoSQL Databaseプロキシを構成する方法について説明します。
複数のOracle NoSQL Databaseプロキシを使用して構成を設定し、冗長性を実現できます。冗長性により、少なくとも1つのプロキシが、様々な需要負荷と障害タイプが発生しても機能し続けるようになります。
Oracle NoSQL Databaseプロキシは、1つ以上の専用ホストで実行できます。それをデータ・ストアのノード内でホストすることもできます。ロード・バランサをフロント・エンドとして使用し、様々なホストでの冗長性のために複数のOracle NoSQL Databaseプロキシのバック・エンド・セットを持つことができます。
HAProxyは、HTTPおよびTCPアプリケーション用のロード・バランサを提供するオープンソース・ソフトウェアです。HAProxyソフトウェアは、複数のOracle NoSQL Databaseプロキシの前にあるロード・バランサとして使用できます。
ノート:
使用可能なロード・バランサは他にもあります。このトピックでは、ロード・バランサとしてHAProxyを使用して概念を示します。たとえば、3つの専用プロキシ・ホストproxy1-nosql、proxy2-nosql、proxy3-nosqlがあるデータ・ストアを考えてみます。冗長性を持つ複数のプロキシを設定するには、バック・エンドでホストproxy1-nosql、proxy2-nosql、proxy3-nosqlをOracle NoSQL Databaseプロキシとして構成します。HAProxyソフトウェアをロード・バランサとしてインストールおよび構成します。ロード・バランサによってリクエストがそれらのプロキシにルーティングされます。
ホストでのOracle 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詳細は、「セキュアなデータ・ストアでのプロキシの使用」を参照してください。
ノート:
Oracle NoSQL Databaseプロキシごとに証明書を作成するかわりに、サブジェクト代替名(SAN)を持つ証明書を1つのみ作成できます。これにより、次のシナリオでの構成が簡略化されます:- 証明書をローテーションする必要がある場合。管理および共有する証明書は1つのみです。
- サーバーに複数の名前がある場合。
- IPを使用する場合。
SANの使用の詳細は、プロキシ用の証明書と秘密キーの生成を参照してください。
-
プロキシが機能しているかどうかを確認します。
非セキュア・データ・ストア:http://<proxy1-nosql>:8080/V2/healthセキュア・データ・ストア:https://<proxy1-nosql>:8443/V2/health
ロード・バランサの構成
-
HAProxyソフトウェアをロード・バランサとしてインストールおよび構成します。
ノート:
Oracle NoSQL Databaseドキュメントには、HAProxyをロード・バランサとして設定する手順は記載されていません。Oracle NoSQL Databaseプロキシを冗長性を持たせて設定する前に、前提条件として実装する必要があります。 -
HAProxyソフトウェアを構成します:
この例は、Oracle NoSQL Database 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 -
ロード・バランサが機能しているかどうかを確認します。
ここで、<LB-hostname>は、HAProxyソフトウェアがインストールされているホストです。
非セキュア・データ・ストア:http://<LB-hostname>:8080/V2/healthセキュア・データ・ストア:
https://<LB-hostname>:8443/V2/health