6 Oracle REST Data Servicesのデプロイおよびモニター

この章では、ORDSをデプロイおよびモニターする方法について説明します。

6.1 Oracle REST Data Servicesのデプロイ

Oracle REST Data Serviceをデプロイするには、次のいずれかのオプションを選択します。

6.1.1 スタンドアロン・モードで実行するためのserveコマンド

この項では、スタンドアロン・モードで実行するためのserveコマンド・オプションについて説明します。

Oracle REST Data ServicesではJava EEアプリケーション・サーバーがサポートされていますが、スタンドアロン・モードで実行するオプションもあります。この項では、Oracle REST Data Servicesをスタンドアロン・モードで実行する方法について説明します。

スタンドアロン・モードは、開発での使用に適しており、本番デプロイでサポートされています。ただし、スタンドアロン・モードの管理機能は、大部分のJava EEアプリケーション・サーバーと比べて最小限であり、環境によっては、本番使用に十分でない場合があります。

ノート:

Oracle API for MongoDBの使用を計画している場合は、Oracle REST Data Servicesをスタンドアロン・モードでインストールする必要があります。詳細は、「Oracle Database API for MongoDBの有効化と構成」を参照してください。
6.1.1.1 非対話型のserve CLI

非対話型のserve CLIは、ユーザー指定の構成フォルダまたはデフォルトの構成フォルダにあるグローバルsettings.xmlファイルからスタンドアロン設定を読み取ります。一部のスタンドアロン設定では、存在しない必須設定(httpポート、コンテキスト・パスなど)の場合、デフォルト値が含まれます。

$ ords --config <CONFIG_PATH> serve
$ ords --config <CONFIG_PATH> serve --port 8777 --apex-images /path/to/apex/images

例:

スタンドアロン設定の作成

ノート:

ORDSは、対話型のinstallコマンドを使用して構成および起動できます。
  • 次のconfig CLIコマンドを使用して、スタンドアロン設定を作成、更新または削除できます。

    ords --config <your configuration folder> config set standalone.context.path /ords

  • APEXを使用する場合は、APEXイメージのパスを次のように指定する必要があります。

    ords --config <your configuration folder> config set standalone.static.path /path/to/apex/images

  • HTTPプロトコルを使用する場合は、次のコマンドを指定します。

    ords --config /path/to/test/config config set standalone.http.port 8443

  • 証明書を使用する場合は、次のコマンドを指定します。
    ords --config <your configuration folder> config set standalone.https.port 8443
    ords --config <your configuration folder> config set standalone.https.cert /path/to/certificate/mycert.crt
    ords --config <your configuration folder> config set standalone.https.cert.key /path/to/certificate/mycert.key
6.1.1.2 serveコマンド・オプション
ロング・オプション 短縮形オプション 説明
--apex-images-context-path <STATIC_CONTEXT_PATH>   APEXの静的リソースを配置するコンテキスト・パスを指定します。デフォルトは/iです。
--certificate <SSL_CERTIFICATE_PATH>  

HTTPSの証明書ファイルを設定します。--secure/--sslを意味します

SSL証明書のパス。SSL証明書を提供する場合は、証明書の場所を指定する必要があります。

--config <CONFIG_PATH> c <CONFIG_PATH>- 構成ファイルを含むフォルダのパスを指定します。
--context-path <CONTEXT_PATH>  

ORDSが提供されるURLのパスの最初の部分を設定します。

デフォルトは/ordsです

--document-root <DOCUMENT_ROOT_PATH>   サーバーのルートで静的ファイルが提供されるパスを指定します。コンテキスト・パスは、同じ名前の静的ファイルよりも優先されます。
--ip-addresses <INTERFACE_IP>   ORDSでバインドするインタフェースを指定します。0.0.0.0 (デフォルト)を使用して、すべてのネットワーク・インタフェースにバインドします。
--key <SSL_KEY_PATH>  

HTTPSに使用する証明書キーを設定します。--secure/–ssl, requires --certificateを意味します。

SSL証明書のキーのパスを指定します。SSL証明書を提供する場合は、証明書のキーの場所を指定する必要があります。

--port <PORT>   HTTPリスニング・ポートを指定します。デフォルト値は8080です。サーバーを実行するポートを設定します。
--secure  

HTTPSリスニング・ポートを指定します。デフォルト値は8443です。HTTPSを使用するには、オプション--secure --port <PORT>を指定する必要があります。

HTTPS機能でサーバーを起動します

6.1.1.3 DERへの秘密キーの変換(LinuxおよびUNIX)

通常、秘密キーおよび証明書署名リクエストを作成してから、署名証明書を取得します。秘密キーは、Oracle REST Data Servicesで適切に読み取れるようにDERに変換する必要があります。

たとえば、OpenSSLツールを使用して次のいずれかのようなコマンドで、元の秘密キーを作成したとします。

openssl req -new -newkey rsa:2048 -nodes -keyout yourdomain.key -out yourdomain.csr

または

openssl genrsa -out private.em 2048

この場合、次のようなコマンドを実行して秘密キーを変換し、暗号化を解除する必要があります。openssl pkcs8 -topk8 -inform PEM -outform DER -in yourdomain.key -out yourdomain.der -nocrypt

openssl pkcs8 -topk8 -inform PEM -outform DER -in yourdomain.key -out yourdomain.der -nocrypt

そのようにすると、対話型のinstallコマンドを使用してプロンプトが表示されたときにyourdomain.derへのパスを含めることも、conf/ords/standalone/standalone.propertiesの次のエントリを変更することもできます。

ssl.cert=<path to yourdomain.crt>
ssl.cert.key=<path to yourdomain.der>
ssl.host=yourdomain

また、jetty.secure.portが必ず設定されます。

6.1.1.4 APEX以外の静的リソースについてのドキュメント・ルートの構成

APEXの静的リソース用に予約されている/iフォルダの外部にある静的リソースをデプロイするために、スタンドアロン・モードのドキュメント・ルートを構成できます。

これを行うには、次のコマンドを実行します。

ords --config /path/to/conf config set standalone.doc.root /var/www/html

前述の例では、http://server:port/の下の/var/www/htmlにあるすべてのリソースを使用できるようにします。たとえば、ファイル/var/www/html/hello.txtが存在する場合、http://server:port/hello.txtでアクセス可能です。

standalone.doc.rootに指定された値は、standalone.doc.root property${config.dir}/global/settings.xmlに格納されます。カスタム・ドキュメント・ルートが指定されていない場合、デフォルトのドキュメント・ルート値${config.dir}/global/doc_rootが使用されます。このフォルダ内に配置されたファイルは、ルート・コンテキストで使用できます。

このアプローチには、次の機能および考慮事項があります。

  • HTMLリソースはファイル拡張子なしでアドレス可能です。たとえば、hello.htmlという名前のファイルがドキュメント・ルートに存在する場合、URI http://server:port/helloでアクセスできます。

  • ファイル拡張子ありでHTMLリソースにアドレスしようとすると、ファイル拡張子なしの場所にリダイレクトされます。たとえば、URI http://server:port/hello.htmlにアクセスしようとすると、クライアントはhttp://server:port/helloにリダイレクトされます。

    通常のプラクティスはHTMLリソースにファイル拡張子なしで使用することであるため、この機能はそのプラクティスを手助けし、さらにリダイレクトはファイル拡張子ありでアドレスされたリソースを扱います。

  • フォルダの索引ページがサポートされます。フォルダにindex.htmlまたはindex.htmという名前のファイルがある場合、そのファイルはフォルダの索引ページとして使用されます。たとえば、/var/www/html/abc/xyz/index.htmlがある場合、http://server:port/abc/xyz/にアクセスすると、index.htmlの内容が表示されます。

  • 末尾にスラッシュなしでフォルダをアドレス入力すると、末尾にスラッシュありのURIにリダイレクトされます。たとえば、クライアントがhttp://server:port/abc/xyzにアクセスした場合、サーバーはhttp://server:port/abc/xyz/へのリダイレクトを発行します。

  • リソースは、ファイルの修正スタンプに基づき弱いetagと、リソースを1時間キャッシュするキャッシュ制御ヘッダー付きで生成されます。

6.1.2 Oracle WebLogic Server

この項では、Oracle WebLogic ServerにOracle REST Data Servicesをデプロイする方法について説明します。Oracle WebLogic Serverのインストール・プロセスを完了し、Oracle WebLogic Serverに精通した読者を前提としています。ドメイン、管理対象サーバー、デプロイ、セキュリティ、ユーザーおよびロールに不慣れな場合は、Oracle WebLogic Serverのドキュメントを参照してください。

トピック:

6.1.2.1 Oracle WebLogic Serverについて

Oracle WebLogic ServerはOracle Technology Networkからダウンロードできます。

Oracle WebLogic Serverのインストールについてさらに学習するには、『Oracle Fusion Middleware Oracle WebLogic Serverインストレーション・スタート・ガイド』および『Oracle Fusion Middleware Oracle WebLogic Serverインストレーション・ガイド』を参照してください。

6.1.2.2 Oracle APEXイメージの構成

この項の内容は、Oracle APEXを使用している場合のみが対象となります。Oracle APEXを使用していない場合は、Oracle APEXイメージの構成に関する詳細を提供するこの項をスキップできます。

Oracle APEXを使用している場合は、そのOracle APEXバージョンのOracle APEXイメージ・ファイルもエンド・ユーザーがアクセスできる必要があります。可能なかぎり、Oracle Content Networkのリソースを使用するように、Oracle APEXインスタンスを構成することをお薦めします。インターネット・アクセスを制限するネットワークでOracle APEXを使用している場合、Oracle CDNを使用できない可能性があります。このようなシナリオでは、Oracle APEXイメージ・ファイルを提供するためにWebアプリケーションをデプロイする必要があります。

開始する前に、Oracle APEXディストリビューションを抽出したディレクトリを識別する必要があります。次のステップでは、このディレクトリは<apex directory>と呼ばれます。この場所を参照するWebLogic Webアプリケーションを定義し、デフォルトのOracle APEXイメージ接頭辞であるcontext-root値(i)を使用してそのWebアプリケーションをデプロイします。Webアーカイブのソースであるディレクトリを作成します。そのディレクトリで、次のファイルを含むWEB-INFディレクトリを作成します。

web.xml

<?xml version="1.0" encoding="UTF-8"?>
 
<!DOCTYPE web-app PUBLIC
"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/j2ee/dtds/web-app_2_3.dtd">
 
<web-app>
 <!-- This Web-App leverages the alternate doc-root functionality in WebLogic to serve static content
      For WebLogic refer to the weblogic.xml file in this folder
  -->
</web-app>
weblogic.xml
<weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/weblogic-web-app">
 <!-- This element specifies the context path the static resources are served from -->
 <context-root>/i</context-root>
 <virtual-directory-mapping>
  <!-- This element specifies the location on disk where the static resources are located -->
  <local-path>/scratch/apex/apex_21.2_en/images</local-path>
  <url-pattern>/*</url-pattern>
 </virtual-directory-mapping>
</weblogic-web-app>

weblogic.xmlのlocal-path値が<apex directory>/imagesディレクトリに対応していることを確認します。

説明:

  • <APEX directory>は、Oracle APEXのディレクトリの場所です。

web.xmlファイルおよびweblogic.xmlファイルを使用したWebアプリケーションの作成

jar cMf i.war WEB-INF/web.xml WEB-INF/weblogic.xml

ノート:

ORDS製品ディレクトリでこのアクションを実行しないでください。ORDS製品ディレクトリには、ords.war以外のwarファイルは存在しません。

作成されるイメージのWARには静的リソースは含まれず、そのかわりに静的リソースが保存されている場所が参照されます。このため、WARがデプロイされるサーバー上の指定したパスで静的リソースが利用可能である必要があります。

WebLogic Server環境に適用可能なデプロイメント・ステップに従って、i.warファイルをWebLogic Serverにデプロイします。デプロイしたら、次のURLにアクセスしてコンテンツが使用可能であることを確認します。
http(s)://hostname:port/i/apex_version.txt
それに応じて、構成したOracle APEXバージョンが表示されます。

ヒント:

i.warには、値が/iのcontext-rootがあります。これはデフォルトのOracle APEXイメージ接頭辞です。イメージ接頭辞の値が異なるOracle APEXを構成した場合は、context-rootをその値に変更する必要があります。
6.1.2.3 管理サーバー・コンソールの起動

管理サーバー・コンソールを起動するには:

  1. 管理サーバーを起動します。
  2. Webブラウザに次のURLを入力して、WebLogic管理コンソールを起動します。
    http://<host>:<port>/console
    

    説明:

    • <host>は、管理サーバーのDNS名またはIPアドレスです。

    • <port>は、管理サーバーでリクエストをリスニング中のポートです(デフォルトでは7001ポート)。

  3. WebLogic管理者のユーザー名およびパスワードを入力します。
  4. ドメインが本番モードの場合、「チェンジ・センター」サブメニューの下の左ペインの「ロックして編集」ボタンをクリックします。ドメインが開発モードの場合は、このボタンは表示されません。
6.1.2.4 Oracle WebLogic ServerでのORDSのデプロイ

ヒント:

この作業を開始する前に、Oracle REST Data Servicesのファイルであるords.warおよびi.warが使用可能になっている必要があります。

ノート:

ORDS serveコマンドを使用してスタンドアロン・モードでORDSを実行する場合、構成ディレクトリの場所を指定できます。

WebLogicサーバーなど、サポートされているコンテナにords.warをデプロイするには、構成ディレクトリの場所を指定する必要があります。このためには、次の方式のいずれかを使用します。
  • お薦めする方法は、構成ディレクトリの場所をwarファイルに指定したWebアプリケーション・アーカイブ・ファイルを生成する方法です。
  • すべてのORDSデプロイメントに適用されるように、管理対象サーバーのconfig.urlシステム・プロパティを設定します。

    warファイルを生成するには、ords warコマンドを使用します。

    config.urlシステム・プロパティを設定するには、WebLogicサーバーを起動する前に、次のコマンドを実行します: export JAVA_OPTIONS="-Dconfig.url=/scratch/my_ords_config"

デプロイするには:

  1. WebLogic Serverのホームページに移動します。「ドメイン構成」の下で、「デプロイメント」を選択します。

    「デプロイメントの概要」が表示されます。

  2. 「インストール」をクリックします。

  3. ords.warファイルの場所を指定し、「次」をクリックします。

    ords.warファイルは、Oracle REST Data ServicesのZIPファイルを解凍したフォルダにあります。

    ヒント:

    WebLogic Serverは、WARアーカイブのファイル名からコンテキスト・ルートを決定します。下位互換を維持する必要がある場合は、URLがhttp://server/ords/...ではなくhttp://server/apex/...という形式になるように、デプロイ前にords.warという名前をapex.warに変更する必要があります。

    アプリケーション・インストール・アシスタントが表示されます。

  4. 「このデプロイメントをアプリケーションとしてインストールする」を選択して「次へ」をクリックします。

  5. アプリケーションまたはモジュールのデプロイ先とするサーバーまたはクラスタを選択して、「」をクリックします。

    ヒント:

    追加の管理対象サーバーまたはクラスタを作成していない場合、このアシスタント・ページは表示されません。

  6. 「オプション設定」では、次のように指定します。

    1. 名前 - 次を入力します。

      ords
      
    2. セキュリティ - 次を選択します。

      カスタム・ロール: 管理コンソール内に定義されたロールを使用します。デプロイメント記述子内に定義されたポリシーを使用します。

    3. ソースのアクセス可能性 - 次を選択します。

      デプロイメントのターゲットに定義されるデフォルトを使用

  7. 「次」をクリックします。

    概要ページが表示されます。

  8. 「追加構成」の下で、次のいずれかを選択します。

    • はい、デプロイメントの構成画面に移動します。 - 構成ページが表示されます。

    • いいえ、後で構成を確認します。 - 「デプロイメントのサマリー」ページに戻ります。

  9. 指定した構成設定の概要を確認します。

  10. 「終了」をクリックします。

  11. 前述のステップを繰り返してi.warファイルをデプロイします。

    オプション設定では、次のように指定します。

    1. 名前 - 次を入力します。

      i
      
    2. セキュリティ - 次を選択します。

      カスタム・ロール: 管理コンソール内に定義されたロールを使用します。デプロイメント記述子内に定義されたポリシーを使用します。

    3. ソースのアクセス可能性 - 次を選択します。

      デプロイメントのターゲットに定義されるデフォルトを使用

  12. ドメインが本番モードの場合、「チェンジ・センター」で「変更のアクティブ化」をクリックします。

6.1.2.5 HTTPのBasicチャレンジを正しく処理するためのWebLogicの構成

デフォルトでは、WebLogic Serverにより、すべてのHTTP Basic認証のチャレンジのインターセプトが試行されます。Oracle REST Data Servicesを正常に機能させるには、このデフォルトの動作を無効にする必要があります。そのためには、enforce-valid-basic-auth-credentialsフラグを更新します。WebLogic Server管理コンソールでは、enforce-valid-basic-auth-credentials設定は表示されません。WebLogic Scripting Tool (WLST)コマンド使用して、実行中のサーバーの値を確認および編集できます。 

次のWLSTコマンドによりドメイン設定が表示されます。

connect('weblogic','weblogic','t3://localhost:7001')
cd('SecurityConfiguration')
cd('mydomain') 
ls()

ドメイン設定が表示されたら、次のエントリを含めます。

-r--   EnforceValidBasicAuthCredentials             true

次に、このエントリをfalseに設定する必要があります。

エントリをfalseに設定するには、次のようにWLSTコマンドを使用します。

connect('weblogic', 'weblogic', 't3://localhost:7001')
edit()
startEdit()
cd('SecurityConfiguration')
cd('mydomain')  
set('EnforceValidBasicAuthCredentials','false')
save()
activate()
disconnect()
exit()

ノート:

新しい設定を有効にするには、WebLogic Serverを再起動する必要があります。
前述の例は、次のとおりです。
  • weblogicは管理権限を持つWebLogicユーザーです

  • weblogicはパスワードです

  • mydomainはドメインです

  • AdminServerはローカルホストおよびポート 7001上で実行されています

6.1.2.6 ordsおよびiの状態と健全性の検証

「デプロイメントのサマリー」で、「制御」タブを選択し、ordsおよびiの両方の「状態」が「アクティブ」および「ヘルス」状態でOKであることを確認します。

ordsまたはi、あるいはその両方が「アクティブ」でない場合は、有効にします。「デプロイメント」表で、ordsまたはi(あるいはその両方)の隣にあるチェック・ボックスを選択します。「開始」をクリックし、「すべてのリクエストを処理」を選択してそれらをアクティブにします。

6.1.3 Apache Tomcat

この項では、Apache TomcatにOracle REST Data Servicesをデプロイする方法について説明します。

トピック:

6.1.3.1 Apache Tomcatについて

ヒント:

この項は、Apache Tomcatのインストール・プロセスを完了し、Apache Tomcatに精通した読者を前提としています。ドメイン、サーバー、アプリケーション、セキュリティ、ユーザーおよびロールに不慣れな場合は、Apache Tomcatのドキュメントを参照してください。

Apache Tomcatは次のURLからダウンロードできます。

6.1.3.2 Oracle APEXイメージの構成

この項の内容は、Oracle APEXを使用している場合のみが対象となります。Oracle APEXを使用していない場合は、Oracle APEXイメージの構成に関する詳細を提供するこの項をスキップできます。

Oracle APEXを使用している場合は、そのOracle APEXバージョンのOracle APEXイメージ・ファイルもエンド・ユーザーがアクセスできる必要があります。可能なかぎり、Oracle Content Networkのリソースを使用するように、Oracle APEXインスタンスを構成することをお薦めします。

インターネット・アクセスを制限するネットワークでOracle APEXを使用している場合、Oracle CDNを使用できない可能性があります。このようなシナリオでは、Oracle APEXイメージ・ファイルを提供するためにWebアプリケーションをデプロイする必要があります。

Apache Tomcat上でOracle APEXイメージを構成するには:

  • <apex directory>/imagesフォルダのコンテンツを<Tomcat directory>/webapps/i/にコピーします。

    説明:

    • <apex directory>は、Oracle APEXディストリビューションのディレクトリの場所です。

    • <Tomcat directory>は、Apache Tomcatがインストールされているフォルダです。

6.1.3.3 Apache TomcatでのORDSのデプロイ

ヒント:

この作業を開始する前に、Oracle REST Data Servicesのファイルであるords.warが使用可能になっている必要があります。

ノート:

ORDS serveコマンドを使用してスタンドアロン・モードでORDSを実行する場合、構成ディレクトリの場所を指定できます。

Apache Tomcatなど、サポートされているコンテナにords.warをデプロイするには、構成ディレクトリの場所を指定する必要があります。このためには、次の方式のいずれかを使用します。
  • お薦めする方法は、構成ディレクトリの場所をwarファイルに指定したWebアプリケーション・アーカイブ・ファイルを生成する方法です。
  • すべてのORDSデプロイメントに適用されるように、管理対象サーバーのconfig.urlシステム・プロパティを設定します。

    warファイルを生成するには、ords warコマンドを使用します。

    config.urlシステム・プロパティを設定するには、Apache Tomcatを起動する前に、次のコマンドを実行します: export JAVA_OPTS="-Dconfig.url=/scratch/my_ords_config"

Apache TomcatにORDSをデプロイするには、次の手順を実行します。

  1. ords.warファイルをApache Tomcatがインストールされているwebappsフォルダに移動します。

    ヒント:

    Apache Tomcatは、WARアーカイブのファイル名からコンテキスト・ルートを決定します。下位互換を維持する必要がある場合は、URLがhttp://server/ords/...ではなくhttp://server/apex/...という形式になるように、webappsフォルダに移動する前に、ords.warという名前をapex.warに変更する必要があります。

  2. Webブラウザに次のURLを入力することで、Oracle APEXにアクセスします:
    http://<hostname>:<port>/ords/
    

    説明:

    • <hostname>は、Apache Tomcatが実行されているサーバーの名前です。

    • <port>は、Apache Tomcatアプリケーション・サーバー用に構成されたポート番号です。

6.1.4 Oracle Cloud Infrastructure

クラウド・ユーザーである場合は、高可用性を備えたOracle REST Data ServicesをOracle Cloud Infrastructureにデプロイできます。

6.1.4.1 Oracle Cloud Infrastructureについて

Oracle Cloud Infrastructure (OCI)は、可用性の高いホスト環境で幅広いアプリケーションおよびサービスを構築および実行できる、補完的なクラウド・サービスのセットです。Oracle Cloud Infrastructureは、オンプレミス・ネットワークから安全にアクセスできる柔軟なオーバーレイ仮想ネットワークで、高パフォーマンスなコンピュート機能(物理ハードウェア・インスタンスとして)とストレージ容量を提供します。

6.1.4.2 Oracle Cloud Infrastructureでの高可用性のためのORDSの構成

Oracle Cloud InfrastructureでのORDSの高可用性のために、次の構成を使用することを選択できます。お客様の要件は、この項で説明する構成とは異なる場合があります。

  • VCNを作成するときには、必要なCIDRブロックの数を決定し、VCN内のサブネットにアタッチする予定のリソースの数に基づいて各ブロックのサイズを決定します。サブネットを設計するときには、トラフィック・フローおよびセキュリティ要件を考慮してください。
  • Oracle Cloud Guardを使用して、Oracle Cloud Infrastructure内のリソースのセキュリティを事前対策的にモニターおよびメンテナンスします。
  • 本番アプリケーションの場合、Oracleデータベース・インスタンスは、OCI内のOracle Maximum Availability Architecture (MAA)デプロイメント・モデルに準拠している必要があります。
  • Oracle DatabaseとともにRACを使用する場合は、ORDSで使用されるデータベース接続情報が個々のノードではなくSCANリスナーを指していることを確認してください。
  • 上限と下限を指定してロード・バランサを作成すると、受信するリクエストの数に基づいたスケーリングに役立ちます。最小で10mbps、最大で8000mbpsにできます。
6.1.4.3 高可用性を備えたORDSをOracle Cloud Infrastructureにデプロイする利点

Oracle Cloud InfrastructureにORDSをデプロイする利点を次に示します。

  • コンピュート、ロード・バランサおよびデータベース・クラウド・インスタンスはすべて、負荷の増大に対応するようにスケーリングできます。コンピュート層またはORDS層を使用して、追加のインスタンスをすばやく作成しロード・バランサ構成に追加できます。Exadata Cloud Serviceの場合、X8Mプラットフォームでは、CPUをスケーリングするのみでなく、ノードをRACクラスタに追加してコンピューティング能力を高めることもできます。
  • サブネットおよびNSGのイングレス/エグレスで非常に詳細なルールが使用されるようになります。コンピュート層またはデータベース層にアクセスするには、Bastion as a Serviceを使用します。これにより、認可ユーザーのみがこれらのインスタンスにアクセスできます。これは、公衆インターネットにSSHポートを公開するよりはるかに安全な方法でもあります。
  • データベース・デプロイメントについては、Oracle Maximum Availability Architecture (MAA)ガイドに従ってください。
  • 各コンピュート層および各データベース層の自動スケーリングおよび一般的スケーリングは、コストの抑制に役立ちます。CPU、メモリーまたはインスタンスの余剰や無駄がなくなり、支払いが必要なのは使用分のみとなります。柔軟なロード・バランサの使用によっても、コストを抑制できます。

6.2 Oracle REST Data Servicesのモニター

標準のJavaランタイム環境診断およびモニタリング・ツールを使用して、Apache Tomcat、WebLogic Serverまたはスタンドアロン・モードで実行されている、モニタリングOracle REST Data Services (ORDS)インスタンスの状態に関するインサイトを取得します。これらのツールは、メモリー使用率、CPU使用率、スタック・スレッドおよびその他のリソースを追跡します。ORDSでは、ORDSインスタンスAPIを介して追加のインサイトが提供されます。インスタンスAPIを介して得られるメトリックを使用すると、データベース・プールのステータス(有効または無効)を確認し、プールの使用状況を測定できます。これは、システムの実際の負荷を判断し、将来の構成変更を知らせるために役立ちます。

トピック:

6.2.1 インスタンスAPIの使用

ORDSインスタンスAPIサービスでは、データベースへのアクセスを提供せず、クライアントによる認証用のデータベース・ユーザーの指定も必要ありません。ただし、ORDSインスタンスはデータベース・プールに関する情報を返します。インスタンスAPIは基本的なヘルス・チェック・サービスとして使用できます。有効なデータベース・プールと無効なデータベース・プールの数の概要を取得するには、/ords/_/instance-api/stable/statusにGETリクエストを送信します。たとえば: curl --user sysadmin:oracle http://<server>/ords/_/instance-api/stable/status。このサービスは、有効および無効なプールの数を返します。また、データベース・プール・キャッシュの詳細を含む追加情報へのリンクも返します。

ORDSは、単一インスタンスとして、またはクラスタにデプロイできます。クラスタでは、1つのインスタンスのデータベース・プール統計が他のインスタンスと異なる可能性があるため、各インスタンスを直接アドレス指定して、その特定のインスタンスに関する特定の情報を取得する必要があります。ただし、ロード・バランサがラウンドロビン・ベースで各インスタンスにルーティングする場合(推奨)、すべてのインスタンスが同様のプール統計を持つことになります。

6.2.1.1 ORDSインスタンスAPIの有効化

この項では、ORDSインスタンスAPIを有効化する方法について説明します。

ORDSインスタンスAPIを有効化するには、次を使用します。
  • ords –config /path/to/config config set –global instance.api.enabled true
  • ORDSを再起動します
6.2.1.2 ORDSインスタンスAPIを使用するための認可

ORDSインスタンスAPIを使用するには、システム管理者ロールが必要です。本番環境では、このロールを持つユーザーを中間層を介して構成することをお薦めします。

6.2.1.3 APIドキュメント

ORDSインスタンスAPIサービスのOpenAPI記述は、http://<server>/ords/_/instance-api/stable/metadata-catalog/openapi.jsonで入手できます。

6.2.2 Oracle REST Data ServicesでのOpenTelemetryの使用

この項では、OpenTelemetryを使用するようにORDSを構成する方法について説明します。

ORDSを、OpenTelemetryを介してテレメトリ・データ(メトリック、ログおよびトレース)を提供するように構成できます。OpenTelemetry (略称はOTEL)は、ソフトウェア・システムの分析およびチューニングに役立つようにテレメトリ・データを計測、生成、収集およびエクスポートするための、ベンダーに依存しないオープンソースの可観測性フレームワークです。業界標準であるため、多数のベンダーがネイティブでこれをサポートしています。

OpenTelemetry準拠のコレクタにテレメトリ・データをエクスポートするようにORDSを構成する

ORDSを実行してテレメトリ・データをOpenTelemetryコレクタにエクスポートするには、次の手順を実行します:

  1. 最新のOpenTelemetry Java Agentをダウンロードします。
  2. OpenTelemetry Java Agentを構成します
  3. ORDSスタンドアロンを使用する場合は--java-optionsパラメータを、Tomcatの場合はCATALINA_OPTS環境変数を使用して、-javaagentオプションを追加します。

次の例では、OpenTelemetryコレクタに対してテレメトリ・データをエクスポートするようにOpenTelemetryエージェントを構成しており、ホストotel-collector-hostで実行し、ORDSをスタンドアロン・モードで実行しています。

export OTEL_SERVICE_NAME=ords
export OTEL_METRICS_EXPORTER=none
export OTEL_TRACES_EXPORTER=otlp
export OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector-host:4317
export JDK_JAVA_OPTIONS=
ords --java-options "-javaagent:/path/to/opentelemetry-javaagent.jar" --config /path/to/config serve

ORDSをApache TomcatまたはOracle WebLogic Serverにデプロイする場合は、同じJavaエージェントおよび環境変数を指定できます。そのプラットフォームで使用する最適な手法については、Apache TomcatまたはOracle WebLogic Serverのドキュメントを参照してください。

テレメトリ・データをOracle APMにエクスポートするためのOpenTelemetryコレクタの構成

Oracle APMでは、アプリケーションをモニターするための、広範囲にわたる機能が用意されています。これでは、OpenTelemetryトレースがサポートされています。

テレメトリ・トレースをAPMにエクスポートするには、次の手順を実行します。

  1. OCIでAPMドメインを作成します。
  2. そのAPMドメインの<Data upload endpoint>を記録します。
  3. そのAPMドメインの<Private Data Key>を作成し記録します。
  4. otelcolをインストールします。

    インストール手順については、OpenTelemetryのドキュメントを参照してください。

  5. otelcol構成ファイル内でZipkinエクスポータを構成します。たとえば、Linux上では/etc/otelcol/config.yamlです。<Data Upload Endpoint><Private Data Key>を実際のエンドポイントおよびキーに置き換えます。

    コード・スニペットの例:

    言語: yml

    extensions:
      health_check:
      pprof:
        endpoint: 0.0.0.0:1777
      zpages:
        endpoint: 0.0.0.0:55679
    
    receivers:
      otlp:
        protocols:
          grpc:
          http:
    
    processors:
      batch:
    
    exporters:
      logging:
        verbosity: detailed
    
      zipkin:
        endpoint: "<Data Upload Endpoint>/20200101/observations/private-span?dataFormat=zipkin&dataFormatVersion=2&dataKey=<Private Data Key>"
    
    service:
      pipelines:
        traces:
          receivers: [otlp]
          processors: [batch]
          exporters: [logging, zipkin]
    
        metrics:
          receivers: [otlp]
          processors: [batch]
          exporters: [logging]
    
      extensions: [health_check, pprof, zpages]
  6. 更新した構成でotelcolサービスを実行します。

    この構成では、OpenTelemetryコレクタ(otelcol)により、テレメトリ・トレースが、指定した<Data Upload Endpoint><Private Data Key>Zipkinエクスポータを使用してOracle APMにエクスポートされます

ノート:

OTEL_xxxx環境変数の詳細は、OpenTelemetryのドキュメントを参照してください。

6.2.3 JMXを使用してプールを管理するためのORDS CLIコマンド

この項では、JMXベースのプール管理を使用して接続プールをリストまたは破棄するORDS CLIコマンドについて説明します。

ORDS poolコマンドは、Java Attach APIを使用してORDSを実行しているローカルJavaプロセスに接続し、JMXベースのプール管理を通じてユニバーサル接続プール(UCP)をリストまたは破棄します。

ords poolコマンドを使用するには:
  • ORDSでJMX UCPが有効になっている必要があります。これはデフォルトで有効になっています。
  • Oracle REST Data Servicesインスタンス・プロセスIDを指定する必要があります。

ords poolコマンドを使用すると、サービスを再起動しなくてもプールをリストしたりプールを破棄できます。

  • 実行中のORDSインスタンス内のプールのリスト:

    ノート:

    listコマンドを実行する前に、ORDSインスタンスのプロセスIDを識別します。ORDSインスタンスのプロセスIDを識別するには、コマンドjps -mlを使用して、ローカル・ホストで実行中のJavaプロセスをリストします。

    次のコマンドを実行して、使用可能なプールをリストし、識別されたプロセスIDを指定します。

    ords pool --pid 3459 list

    これに対し、使用可能なプールのリストがコンソールに表示されます。

  • 実行中のORDSインスタンス内のプールの破棄:

    指定されたプール名を破棄するには:

    プロセスIDおよび二重引用符で囲まれたプール名を指定して、次の破棄コマンドを実行します。

    ords pool --pid 3459 destroy "|pdb2|lo|-2023-05-24T21-28-03.076379Z"

    プールが破棄されたことを示すメッセージが表示されます

    プール|pdb2|lo|-2023-05-24T21-28-03.076379Zが破棄されました。

6.2.4 Oracle REST Data ServicesでのOCIモニタリング・サービスの使用

この項では、Oracle Cloud Infrastructure (OCI)モニタリング・サービスにメトリックを送信するようにORDSを構成する方法とアラームを構成する方法について説明します。

OCIモニタリング・サービスでは、メトリックやアラームなど、クラウド・リソースおよびアプリケーションをモニターするための包括的な機能が提供されます。これは、メトリックを使用してリソースをモニターし、指定されているトリガーにメトリックが一致するとアラームで管理者に通知します。ORDSでは、サーバーで生成されたアクセス・ログを処理するためとメトリックをOCIモニタリング・サービスに送信するためのユーティリティが用意されています。管理者は、OCIダッシュボードとメトリック・エクスプローラを使用して、ORDS関連の問題をモニターおよびトラブルシューティングできます。

6.2.4.1 ords-metricsユーティリティ

ords-metricsは、ORDSアクセス・ログの処理と、OCIモニタリング・サービスへのメトリックの送信に使用されるユーティリティです。

ords-metricsユーティリティのオプション

ords-metricsユーティリティでは、次のオプションがサポートされています:
オプション 説明 必須かどうか
-d logdir アクセス・ログのディレクトリを指定します。デフォルト値は/var/log/ords/accessです。 いいえ
-n namespace OCIモニタリングのネームスペースを指定します。
次のパターンと一致する必要があります:
^[a-z][a-z0-9_]*[a-z0-9]$
デフォルト値はdbtools_ordsです。
いいえ
-r resource OCIモニタリングのリソース・グループを指定します。デフォルト値はordsです。 いいえ
-c compartment メトリック・コンパートメントのOCIDを指定します。 はい
-p profile OCIプロファイル名を指定します。このオプションが指定されていない場合は、インスタンス・プリンシパルが使用されます。 いいえ
-a prefix メトリック名への接頭辞の追加を指定します。 いいえ
-b heartbeat ハートビート間隔を秒単位で指定します。デフォルト値は60です。無効にするには、値を0に設定します。 いいえ
-H host ホスト名を指定します。デフォルト値は、ローカル・ホストのFQDNです。 いいえ
-v 冗長モードを指定します。 いいえ

表6-1 ORDSメトリック名

名前 説明
HttpStatus<code> HTTPステータス・コード。

例: HttpStatus200

Heartbeat ords-metricsのハートビート。
6.2.4.2 メトリックをOCIモニタリング・サービスに送信するためのORDSの構成

メトリックをOCIモニタリング・サービスに送信するようにORDSを構成するには、次のステップを実行します:

  1. グローバルsettings.xmlファイルでアクセス・ログを有効にします。次の例では、ディレクトリ/var/log/ords/accessの下にアクセス・ログを作成しそれらのファイルを10日間保持するように、ORDSを構成します。

<entry key="standalone.access.log">/var/log/ords/access</entry> 
<entry key="standalone.access.log.retainDays">10</entry>

  1. メトリックをOCIパブリック・モニタリング・サービスに送信するようにords-metricsを構成します。
    • APIキーとOCIプロファイルを使用:
      1. APIキーを生成します
      2. key_fileをそのAPIキーに設定してOCIプロファイルを作成します。
      3. -d <logdir> -p <profile> -c <compartment> [ -n <namespace> ]を指定してbin/ords-metricsを実行します
    • インスタンス・プリンシパルを使用:
      1. ORDSコンピュート・インスタンスを含む一致ルールを使用して動的グループを作成します
      2. コンパートメント内のOCIモニタリング・サービスにアクセスするための権限をその動的グループに付与するポリシーを作成します
      3. ORDSインスタンスで、-d <logdir> -c <compartment> [ -n <namespace> ]を指定してbin/ords-metricsを実行します
6.2.4.3 OCIアラームの構成

OCIでアラームを構成するには、次のステップを実行します:

  1. OCI通知トピックを作成します
    アラーム作成スクリプトexamples/ords-metrics/create_alarms.shを別の場所にコピーし、次の変数を、必要な設定に置き換えます:
    export alarm_compartment_id=ocid1.compartment...
    export metric_compartment_id=ocid1.compartment...
    export topic_id=ocid1.onstopic...
    export namespace=dbtools_ords
  2. 要件に基づいてアラームしきい値を調整します
  3. カスタマイズしたcreate_alarm.shスクリプトを実行します