Autonomous Databaseを使用した低レイテンシ接続のベストプラクティス

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

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

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

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

まず、データベースの可用性ドメインを確認します。Autonomous 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 Databaseインスタンスと同じ可用性ドメインに配置します。

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

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

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

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

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

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

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

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

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

    詳細は、TCP Fast Open (TFO)を使用したAutonomous Databaseへの接続を参照してください。

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 Databaseへの接続を参照してください。

リージョン間の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. クロスリージョン・スタンバイが1つある場合、問合せには単一の可用性ドメインが表示されます。スタンバイ・クライアントと中間層を同じリージョンに配置し、クロスリージョン・スタンバイ・データベースと同じ可用性ドメインを使用します。

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

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

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

  2. スタンバイ・データベースが存在するリージョンでネットワーク・ルーティングを構成します。複数のクロスリージョン・スタンバイ・データベースがある場合は、このステップを複数回実行します。
    1. スタンバイ・データベースがパブリック・エンドポイントにある場合は、クロスリージョン・スタンバイ・データベースが存在するリージョン内のクライアントからの接続がサービス・ゲートウェイを通過するようにネットワーク・ルーティングを構成します。
    2. スタンバイ・データベースがプライベート・エンドポイントにある場合、サービス・ゲートウェイを構成することなく、ネットワークに表示されるプライベート・エンドポイントを使用してデータベースに接続します。
  3. ウォレットなしで一方向TLS接続を使用します。

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

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

    詳細は、TCP Fast Open (TFO)を使用したAutonomous Databaseへの接続を参照してください。

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

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

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

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

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

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

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

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

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

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