プロキシの構成
データ・ストアをデプロイした後は、Oracle NoSQL Databaseプロキシを構成します。
セキュア・データ・ストアのデプロイメントから次の情報を取得します:
- データ・ストア名。pingを参照してください。
- データ・ストア・ヘルパー・ホスト:ポート・リストJavaダイレクト・ドライバ開発者ガイドのKVStoreハンドルの取得。
java -jar lib/httpproxy.jar [-async <default: false>] [-config <>] [-helperHosts <>] [-hostname <>] [-httpPort <default: 80>] [-httpsPort <default: 443>] [-idleReadTimeout <default: 0>] [-kvConsistency <default: NONE_REQUIRED>] [-kvDurability <default: COMMIT_NO_SYNC>] [-kvRequestTimeout <default: -1>] [-monitorStatsEnabled <default: false>] [-numAcceptThreads <default: 3>] [-numRequestThreads <default: 32>] [-sslCertificate <>] [-sslCiphers <>] [-sslPrivateKey <>] [-sslPrivateKeyPass <>] [-sslProtocols <default: TLSv1.2,TLSv1.1,TLSv1>] [-sslSecurityDir <>] [-storeName <>] [-storeSecurityFile <>] [-verbose <default: false>]プロキシのパラメータ
次のパラメータをコマンドライン引数として指定してプロキシを起動できます。
| パラメータ | 必須かどうか | デフォルト値 | 説明 |
|---|---|---|---|
| -async | いいえ | false | プロキシでデータ・ストアの非同期インタフェースを使用するかどうかを定義します。このオプションにより、プロキシに、非同期リクエストを使用するよう指示します。これにより、必要な処理スレッドの数を減らすことができます。 |
| -config | いいえ | デフォルト値はありません |
プロキシ構成オプションを含むJavaプロパティ・ファイルを指定します。次の形式でオプションを指定します:
たとえば:
この構成ファイルを1つのパラメータとしてCLIから ノート: 必ず、この表で必須と示されいるオプションすべてを含めてください。 |
| -idleReadTimeout | いいえ | 30 | 使用されていない接続がサーバーによって終了されるまでの時間(秒)を指定します。 |
| -kvConsistency | いいえ | NONE_REQUIRED |
このセッションで使用される、デフォルトの読取り一貫性を構成します。Oracle NoSQL Databaseプロキシでは、リクエストで一貫性が指定されていない場合に、このパラメータが使用されます。一貫性の値は、Java APIのConsistencyクラスで定義します。 読取り操作は、構成されている値に応じて、マスターまたはレプリカ・ノードのとちらかで処理されます。次のポリシーがサポートされています:
一貫性の詳細は、一貫性保証を参照してください。 |
| -kvDurability | いいえ | COMMIT_NO_SYNC |
このセッションで使用される、デフォルトの書込み永続性設定を構成します。この
パラメータにより、トランザクションのコミット時にマスターによって使用される永続性ポリシーを定義します。Oracle NoSQL Databaseプロキシでは、リクエストで永続性が指定されていない場合に、このkvDurabilityパラメータが使用されます。
永続性の詳細は、永続性保証を参照してください。 |
| -kvRequestTimeout | いいえ | -1 |
このセッションで使用される、デフォルトのリクエスト・タイムアウト(ミリ秒)を構成します。 Oracle NoSQL Databaseプロキシにより、特定のリクエストでのこのパラメータが、そのリクエストで指定されているタイムアウトに応じて調整されます。 デフォルト値である-1の場合は、タイムアウト値として5000が構成されます。 |
| -monitorStatsEnabled | いいえ | false | プロキシでの統計情報の収集を有効にします。このパラメータをtrueに設定することに加えて、SkLogger構成プロパティも設定する必要があります。詳細は、「プロキシ監視」を参照してください。
|
| -sslCiphers | いいえ | デフォルト値はありません | SSLに関連する詳細構成。 |
| -sslProtocols | いいえ | TLSv1.2、TLSv1.1、TLSv1 | SSLに関連する詳細構成。 |
| -sslSecurityDir | いいえ | デフォルト値はありません | SSLに関連する詳細構成。 |
| -helperHosts | 必須 | デフォルト値はありません |
データ・ストア内のヘルパー・ノードへの接続方法を特定する、ホスト名とポートのペアを指定します。複数のヘルパー・ホストを識別するには、文字列の配列を使用します。通常、これらのホスト名とポートのペアは、データ・ストアのデプロイヤまたは管理者から入手します。 パターンの例:
ヘルパー・ホスト・リストのポートが、プロキシとデータ・ストア・サーバーの間の接続のファイアウォール・ルールによって開いたままであることを確認します。 |
| -storeName | 必須 | デフォルト値はありません | データ・ストアの名前を指定します。この名前は、データ・ストア・デプロイメント・プロセスから取得できます。 |
| -hostname | いいえ | localhost | プロキシ・インスタンスを起動するマシンのホスト名を指定します。
デフォルトでは、プロキシで、ホストにある使用可能なすべてのネットワーク・インタフェースがリスニングされます。ホスト名を指定すると、プロキシで、特定のインタフェースをリスニングできます。 |
| -httpPort | いいえ | 80 | HTTPリクエストからの非セキュアな接続を受け入れるためにプロキシで使用される、プロキシ・マシンのHTTPポートを指定します。このパラメータは、-httpsPortパラメータと相互排他的です。これらのパラメータのうち1つのみを指定できます。
ポートが、プロキシとドライバの間の接続のファイアウォール・ルールによって開いたままであることを確認します。 ノート: ポート80を使用するには、root権限が必要です。root権限がない場合は、ポート8080を使用できます。 |
| -httpsPort | いいえ | 443 | HTTPSリクエストからのセキュアな接続を受け入れるためにプロキシで使用される、プロキシ・マシンのHTTPSポートを指定します。このパラメータは、-httpPortパラメータと相互排他的です。これらのパラメータのうち1つのみを指定できます。
ポートが、プロキシとドライバの間の接続のファイアウォール・ルールによって開いたままであることを確認します。 ノート: ポート443を使用するには、root権限が必要です。root権限がない場合は、ポート8443を使用できます。 |
| -numAcceptThreads | いいえ | 3 | この値は、プロキシへの着信接続を処理するために使用されるスレッドのスレッド・プール・サイズを決定します。 |
| -numRequestThreads | いいえ | 32 | "AcceptThread"によって接続が登録され"RequestThread"に渡された後で、リクエストの入力/出力トラフィックを処理するために使用される、スレッドのスレッド・プール・サイズを決定します。 |
| -verbose | いいえ | false | プロキシ起動情報を表示します。値としてtrueまたはfalseを使用できます。 |
| -sslCertificate | セキュア・プロキシの場合のみ必須。 | デフォルト値はありません |
pemファイル形式のSSL証明書ファイルへのパスを指定します。OpenSSLを使用して自己署名証明書を生成するか、公開CAに証明書の生成リクエストを送信できます。セキュリティ・ガイドのOracle NoSQL Databaseプロキシの証明書と秘密キーの生成を参照してください。
ノート: このSSL証明書ファイルへのパスとして、絶対パス、または現在のディレクトリ(プロキシの起動元)からの相対パスを使用できます。 |
| -sslPrivateKey | セキュア・プロキシの場合のみ必須。 | デフォルト値はありません | SSL秘密キー・ファイルへのパスを指定します。OpenSSLを使用して秘密キーを生成するか、公開CAに秘密キーの生成リクエストを送信できます。セキュリティ・ガイドのOracle NoSQL Databaseプロキシの証明書と秘密キーの生成を参照してください。
ノート: このSSL秘密キー・ファイルへのパスとして、絶対パス、または現在のディレクトリ(プロキシの起動元)からの相対パスを使用できます。 |
| -sslPrivateKeyPass | セキュア・プロキシの場合のみ必須。 | デフォルト値はありません | 秘密キーが暗号化されている場合の、秘密キーのパスワードを指定します。秘密キーが暗号化されていない場合、このパラメータは必要ありません。 |
| -storeSecurityFile | セキュア・プロキシの場合のみ必須。 | デフォルト値はありません | データ・ストアのクライアント・ユーザーによって生成されるセキュリティ・ログイン・ファイルへのパスを指定します。データ・ストアのクライアント・ユーザーは、管理者以外のプロキシ・ユーザーである必要があります。
ノート: ノート: ストアのセキュリティ・ファイルへのパスとして、絶対パス、または現在のディレクトリ(プロキシの起動元)からの相対パスを使用できます。 |
SkLoggerプロパティ構成ファイルを作成する必要があります。これを行うには、次の詳細を含むlogging.propertiesファイルを作成します:/*Defines logger handler*/
oracle.nosql.skhandlers=SkFileHandler
/*Specifies the directory in which the log file should be created*/
SkFileHandler.dir=/oracle/nosql/product/proxy_logs
/*Specifies the logging level
-------Options: SEVERE, WARNING, INFO, FINE, ALL
ALL: Logs all the messages
FINE: Logs tracing messages for debugging
INFO: Logs informational messages showing the state and progress
WARNING: Indicates potential problem
SEVERE: Indicates serious failure */
SkFileHandler.level=ALL
/*Specifies how many output files to cycle through when using log file rotation. When a file reaches the limit (SkFileHandler.limit) specified, a new file is opened (for example: proxy_metrics.log.0, proxy_metrics.log.1 etc)*/
SkFileHandler.count=1
/*Defines the approximate maximum amount of data (in bytes) to write to any single log file in a rotating set. If set to zero, there is no size limit. This property is used in conjunction with count for log file rotation*/
SkFileHandler.limit=50000プロキシの実行時に、コマンドライン・オプション-D java.util.logging.config.file=logging.propertiesを使用してロギング構成ファイルを設定できます。たとえば:java -Djava.util.logging.config.file=logging.properties -jar lib/httpproxy.jar -storeName
kvstore -helperHosts localhost:5000 -hostname localhost -httpPort 8080 -monitorStatsEnabled trueメトリックは、指定したディレクトリ内のproxy_metrics.log.xに書き込まれます(ここで、「x」は先ほど設定したSkFileHandler.countによって決まります)。前述の例では、指定されたディレクトリは/oracle/nosql/product/proxy_logsです。
ノート:
Oracle NoSQL Databaseプロキシは、1つ以上の専用ホストで実行できます。データ・ストアのノード内でホストできます。ロード・バランサをフロント・エンドとして使用でき、これには、別々のホストにある複数のNoSQLプロキシのバックエンド・セットが1つあります。ロード・バランサの構成中に、HTTPヘルス・チェックを追加できます。Oracle NoSQL Databaseプロキシにより、HTTPヘルス・チェック用に次のURI /V2/healthが提供されます。このURIへのHTTPリクエストでは、成功レスポンス200 OKが返されます。HAプロキシの構成例は、GitHubで見つかります。