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

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

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

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

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

まず、データベースの可用性ドメインを確認します。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接続の両方を許可するようにAutonomous Databaseインスタンスを構成し、TLS接続を使用してアプリケーションをデータベースに接続します。

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

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

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を使用するようにクライアントおよび中間層を構成します。

リージョン間のAutonomous Data Guardでデータベース接続にかかる待機時間を短縮

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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