自律型AIデータベースによる低レイテンシの接続に関するベストプラクティス

アプリケーションとAutonomous AI Databaseの間の接続の待機時間を短縮するステップを取ることは、アプリケーションとデータベース間で多くのラウンドトリップを実行する場合に重要です。

たとえば、Autonomous AI Databaseに接続し、数千のSQL文をデータベースに個別に送信して販売オーダーを実行するというOLTPアプリケーションを考えてみます。この場合、アプリケーションでは何千ものラウンドトリップが必要であり、各ラウンドトリップの待機時間を短縮すると、販売オーダー・プロセスが大幅に高速化されます。このようなアプリケーションでは、データベース接続にかかる待機時間を短縮するために従うことができるベスト・プラクティスがあります。

データベース接続のレイテンシを削減するステップ

これらの推奨事項に従って、アプリケーションとデータベース間の接続の待機時間を短縮できます。

まず、データベースの可用性ドメインを確認します。Autonomous AI Databaseインスタンスの可用性ドメインを検索するには、ADMINとして接続し、次の問合せを実行します:

SELECT json_value(cloud_identity, '$.AVAILABILITY_DOMAIN') AVAILABILITY_DOMAIN FROM v$pdbs;

たとえば:

SELECT json_value(cloud_identity, '$.AVAILABILITY_DOMAIN') AVAILABILITY_DOMAIN
             FROM v$pdbs;
AVAILABILITY_DOMAIN
--------------------
SoSC:US-ASHBURN-AD-1

Oracle Cloud Infrastructure Consoleで可用性ドメイン情報を表示することもできます。詳細は、OCIコンソールでのネットワーク情報の表示を参照してください。

待機時間を短縮するには、次の手順を実行します。

  1. クライアントまたは中間層サーバーをAutonomous AI Databaseインスタンスと同じ可用性ドメインに配置します。

    たとえば、アプリケーションがOracle Cloud Infrastructure Compute VMで実行されている場合は、コンピュート・インスタンスの作成時にAutonomous AI Databaseインスタンスと同じ可用性ドメインを選択します。

    アプリケーションが別のクラウドまたはオンプレミス・データ・センターで実行される場合、OCI FastConnectを使用して、OCIリージョンへの接続のレイテンシを削減します。詳細は、FastConnectの概要を参照してください。

  2. ネットワーク・ルーティングを構成します。

    • パブリック・エンドポイントでAutonomous AI Databaseインスタンスを使用している場合は、クライアントからデータベースへの接続がサービス・ゲートウェイを通過するようにネットワーク・ルーティングを構成します。

      詳細は、次を参照してください

    • プライベート・エンドポイントでAutonomous AI Databaseインスタンスを使用している場合は、サービス・ゲートウェイを構成せずに、ネットワークに表示されるプライベート・エンドポイントを使用してデータベースに接続します。

  3. ウォレットなしで一方向TLS接続を使用します。

    待機時間を短縮するためのベスト・プラクティスとして、mTLS接続とTLS接続の両方を許可するようにAutonomous AI Databaseインスタンスを構成し、TLS接続を使用してアプリケーションをデータベースに接続します。

    詳細は、次を参照してください:

  4. TCP Fast Open (TFO)を使用してデータベースに接続します。

    詳細は、TCP Fast Open (TFO)を使用したAutonomous AIデータベースへのクライアントの接続を参照してください。

Autonomous Data Guardを使用したデータベースのデータベース接続の待機時間を短縮するステップ

Autonomous Data Guardスタンバイ環境、クライアントおよび中間層を構成して、フェイルオーバー後またはスイッチオーバー後(スタンバイがプライマリになった場合)に接続する際のデータベース接続の待機時間を短縮するためのステップを示します。

ローカルAutonomous Data Guardを使用したデータベース接続のレイテンシの削減

Autonomous Data Guardを使用し、ローカル・スタンバイ・データベースにフェイルオーバーまたはスイッチオーバーを行う場合のデータベース接続の待機時間を短縮するには、次のステップに従います。

Autonomous Data Guardローカル・スタンバイがあり、複数の可用性ドメインがあるリージョンにいる場合、Autonomous Data Guardは別の可用性ドメインにローカル・スタンバイ・データベースを作成します。スタンバイ・データベースにフェイルオーバーまたはスイッチオーバーすると、ローカル・スタンバイがプライマリ・データベースになります。フェイルオーバーまたはスイッチオーバーの準備をするには、スタンバイ・クライアントおよび中間層を有効にしておくことをお薦めします。これにより、障害後またはスイッチオーバー後に、可用性ドメインに障害が発生してもアプリケーションが引き続き機能できるようになります。

まず、ローカル・ピアのディザスタ・リカバリ・タイプがAutonomous Data Guardであることを確認します。詳細は、Autonomous Data Guardの有効化を参照してください。

複数の可用性ドメインがあるリージョンのローカル・スタンバイでAutonomous Data Guardを使用している場合、スタンバイ・クライアントおよび中間層を低レイテンシ用に構成するには、次のタスクを実行します。

  1. スタンバイ・クライアントまたは中間層をローカル・スタンバイ・データベースと同じ可用性ドメインに配置します(すべてのコンポーネントは、同じ可用性ドメインを使用するように構成する必要があります)。

    たとえば、アプリケーションがOracle Cloud Infrastructure Compute VM上で実行されている場合、コンピュート・インスタンスの作成時に、コンピュートVMの同じ可用性ドメインをスタンバイ・データベースとして選択します。これにより、フェイルオーバーまたはスイッチオーバー後にスタンバイ・データベースとスタンバイ・コンピュートVMが同じ可用性ドメインを使用できるように、障害時リカバリ構成が準備されます。これにより、コンポーネントが別々の可用性ドメインを使用する構成と比較して、データベースへの接続のレイテンシが短縮されます。

    スタンバイ・データベースの可用性ドメインを確認するには、ADMINユーザーとしてプライマリ・データベースに接続し、次の問合せを実行します。

    SELECT availability_domain FROM v$pdbs,
        JSON_TABLE(
          cloud_identity,
          '$.AUTONOMOUS_DATA_GUARD[*]'
          COLUMNS (
            standby_type PATH '$.STANDBY_TYPE',
            availability_domain PATH '$.AVAILABILITY_DOMAIN'
          )
        ) jt
    WHERE jt.standby_type = 'local';

    たとえば、このコマンドは、ローカル・スタンバイ・データベースの可用性ドメインを表示します。

    AVAILABILITY_DOMAIN
    -------------------
     SoSC:US-ASHBURN-AD-3
  2. ローカル・スタンバイ・データベースに対して追加のネットワーク構成を実行したり、一方向TLS接続を許可する必要はありません。ローカル・スタンバイ・データベースの設定ネットワーク構成は、プライマリ・データベースと同じです。

  3. TCP Fast Openを使用するようにクライアントと中間層を構成します。

    詳細は、TCP Fast Open (TFO)を使用したAutonomous AIデータベースへのクライアントの接続を参照してください。

クロスリージョンAutonomous Data Guardによるデータベース接続レイテンシの削減

Autonomous Data Guardを使用し、フェイルオーバーまたはクロス・リージョン・スタンバイ・データベースにスイッチオーバーするときに行うデータベース接続待機時間を短縮するには、次のステップに従います。

1つ以上のクロス・リージョンAutonomous Data Guardスタンバイ・データベースを追加すると、クロス・リージョン・ピアを追加するときに選択するリージョンにクロス・リージョン・スタンバイ・データベースが追加されます。クロス・リージョンAutonomous Data Guardスタンバイ・データベースにフェイルオーバーまたはスイッチオーバーすると、クロス・リージョン・スタンバイがプライマリ・データベースになります。リージョナル・フェイルオーバーまたはスイッチオーバーの準備をするには、リモート・リージョンでスタンバイ・クライアントおよび中間層を使用できるようにすることをお薦めします。これにより、クライアントおよび中間層がリモート・リージョンに準備され、障害が発生した場合やスイッチオーバー後もアプリケーションが動作し続けることができるようになります。

まず、ディザスタ・リカバリに少なくとも1つのクロス・リージョンAutonomous Data Guardスタンバイが含まれていることを確認します。詳細は、クロス・リージョン・スタンバイ・データベースの追加を参照してください。

1つ以上のクロス・リージョン・スタンバイ・データベースでAutonomous Data Guardを使用する場合、低レイテンシになるようにクライアントおよび中間層を構成するには、次のステップに従います。

  1. スタンバイ・クライアントまたは中間層を、クロス・リージョン・スタンバイ・データベースと同じ可用性ドメインに配置します。

    クロス・リージョンAutonomous Data Guardスタンバイ・データベースの可用性ドメインを確認するには、ADMINユーザーとしてプライマリ・データベースに接続し、次の問合せを実行します:

    SELECT availability_domain FROM v$pdbs,
         JSON_TABLE(
           cloud_identity,
           '$.AUTONOMOUS_DATA_GUARD[*]'
           COLUMNS (
             standby_type PATH '$.STANDBY_TYPE',
             availability_domain PATH '$.AVAILABILITY_DOMAIN'
           )
         ) jt
    WHERE jt.standby_type = 'cross region';

    たとえば、2つのクロス・リージョン・スタンバイ・データベースがある場合、このコマンドを実行すると、各クロス・リージョン・スタンバイ・データベースの可用性ドメインが表示されます:

    AVAILABILITY_DOMAIN
    
    ----------------------
    SoSC:PHX-AD-3
    SoSC:US-SANJOSE-1-AD-1
    • クロス・リージョン・スタンバイが1つある場合、問合せには単一の可用性ドメインが表示されます。スタンバイ・クライアントと中間層を同じリージョンに配置し、クロス・リージョン・スタンバイ・データベースと同じ可用性ドメインを使用します。

      たとえば、アプリケーションがOracle Cloud Infrastructure Compute VMで実行されている場合、コンピュート・インスタンスを作成するときに、Autonomous Data Guardスタンバイ・データベースと同じ可用性ドメインをCompute VMに選択します。これにより、クロス・リージョン・スタンバイ・データベースとスタンバイ・コンピュートVMが同じリージョンにあり、フェイルオーバーまたはスイッチオーバー後に同じ可用性ドメインが使用されるようになります。

    • 複数のクロス・リージョン・スタンバイがある場合、各リージョンで、対応する各スタンバイ・データベースのリージョンおよび可用性ドメインに一致する適切な可用性ドメインを使用します。この設定を複数回実行する必要があります(個々のリージョン内のすべてのコンポーネントは、Autonomous Data Guardスタンバイと同じ可用性ドメインを使用する必要があります)。

    アプリケーションが別のクラウドまたはオンプレミス・データ・センターで実行される場合、OCI FastConnectを使用して、OCIリージョンへの接続のレイテンシを削減します。詳細は、FastConnectの概要を参照してください。

  2. スタンバイ・データベースが存在するリージョンでネットワーク・ルーティングを構成します。複数のクロス・リージョン・スタンバイ・データベースがある場合は、このステップを複数回実行します。

    • スタンバイ・データベースがパブリック・エンドポイント上にある場合は、クロス・リージョン・スタンバイ・データベースが存在するリージョン内のクライアントからの接続がサービス・ゲートウェイ経由で接続されるように、ネットワーク・ルーティングを構成します。

      詳細は、次を参照してください:

    • スタンバイ・データベースがプライベート・エンドポイントにある場合、サービス・ゲートウェイを構成することなく、ネットワークに表示されるプライベート・エンドポイントを使用してデータベースに接続します。

  3. ウォレットなしで一方向TLS接続を使用します。

    プライマリ・データベースに一方向TLSを構成した場合、スタンバイ・データベースにはすでに一方向TLSが構成されています。クロス・リージョン・スタンバイ・データベースで追加構成を行う必要はありません。

  4. TCP Fast Openを使用するようにクライアントと中間層を構成します。

    詳細は、TCP Fast Open (TFO)を使用したAutonomous AIデータベースへのクライアントの接続を参照してください。

低レイテンシのデータベース接続の概念ネットワーク図

データベースのパブリック・エンドポイントおよびプライベート・エンドポイントを使用した低レイテンシ接続の概念的なネットワーク図を示します。

OCIリージョン内でアプリケーションが実行されているプライベート・エンドポイントを使用した低レイテンシ接続

adb-private-low-latency.epsの説明が続きます

図adb-private-low-latency.pngの説明

OCIリージョン内でアプリケーションが実行されているパブリック・エンドポイントを使用した低レイテンシ接続

adb-public-low-latency.epsの説明が続きます

図adb-public-low-latency.pngの説明

オンプレミス・データ・センターで実行されているアプリケーションがFastConnectを使用してOCIに接続されたプライベート・エンドポイントを使用した低レイテンシ接続

adb-fastconnect-private-low-latency.epsの説明が続きます

図adb-fastconnect-private-low-latency.pngの説明

FastConnectを使用してOCIに接続されたオンプレミス・データ・センターでアプリケーションが実行されているパブリック・エンドポイントを使用した低レイテンシ接続

adb-fastconnect-public-low-latency.epsの説明が続きます

図adb-fastconnect-public-low-latency.pngの説明