Oracle Cloud、Microsoft AzureおよびAmazon Web Servicesに分散された、線形にスケーラブルなシャードされたOracleデータベースのデプロイ

様々なクラウド・プロバイダに分散された完全なデータ分離を使用した極端なスケールアウトをサポートするデータベースが必要な場合は、Oracle Databaseのシャード・インスタンスをフォルト・トレラント・トポロジにデプロイします。トポロジは、Oracle Cloud、Microsoft AzureおよびAmazon Web Services全体にデプロイできます。

Oracle Shardingを使用すると、ハイパースケールでグローバルに分散されたコンバージド・データベースを使用できます。これは、線形スケーラビリティ、弾力性、障害分離、およびデータ主権のための地理的なデータ分散を必要とするアプリケーションをサポートします。これを行うには、独立したOracleデータベース(シャード)間でデータ・セットのチャンクを分散します。専用のハードウェアやソフトウェアを必要とせずに、シャードをクラウドまたはオンプレミスにデプロイできます。シャードは、このシェアード・ナッシング・アーキテクチャで実行時に相互に通信しないため、他のシャードが異なるクラウドまたはオンプレミスにある間に、あるクラウドにシャードをデプロイできます。

アーキテクチャ

次のアーキテクチャは、フォルト・トレラントなシャードOracle Database 19 cトポロジを示しています。プライマリ・シャードは、Oracle Cloud、Microsoft AzureおよびAmazon Web Servicesのリージョン全体に分散されます。プライマリ・シャードごとに、スタンバイ・シャードが同じリージョン内にプロビジョニングされます。

アーキテクチャには、シャード・データベースの最大可用性を確保するために、各クラウド・プロバイダのすべてのレイヤー(シャード・ディレクタ、カタログおよびシャード)に冗長なリソースがあります。

次の図は、この参照アーキテクチャを示しています。

sharded-db-oci-azure-aws.pngの説明が続きます
図sharded-db-oci-azure-aws.pngの説明

アーキテクチャには、次のコンポーネントがあります。

  • インターネット・ゲートウェイ

    インターネット・ゲートウェイでは、パブリック・サブネットとパブリック・インターネット間のトラフィックが許可されます。各クラウド・プロバイダはパブリック・インターネットに接続されます。

  • シャード・ディレクタ

    シャード・ディレクタ(グローバル・サービス・マネージャとも呼ばれる)は、シャーディング・キーに基づいて適切なデータベース・シャードへの高パフォーマンスの接続ルーティングを可能にするネットワーク・リスナーです。

    必要なシャード・ディレクタの数を指定できます。シャード・ディレクタは、各クラウド・プロバイダの個々のコンピュート・インスタンスにデプロイされます。シャード・ディレクタに使用するコンピュート・インスタンスのシェイプを選択できます。

  • プライマリ・シャード・カタログおよびスタンバイ・シャード・カタログ

    シャード・カタログは、自動的なシャードのデプロイメント、シャード・データベースの集中管理、およびマルチシャード問合せをサポートする特殊な目的のOracle Databaseインスタンスです。

    このアーキテクチャには、カタログ・データベースのプライマリ・スタンバイ・ペアが含まれており、それぞれが単一ノードのデータベース・システム内にあります。カタログ・データベースのデータベース・シェイプおよび使用可能なストレージ容量を選択できます。カタログ・データベースのプライマリ・スタンバイ・ペアは、各クラウド・プロバイダにデプロイされます。

  • データベース・シャード

    各データベース・シャードは、単一ノードのデータベース・システムです。プライマリ・シャードは、Oracle Cloud、Microsoft AzureおよびAmazon Web Servicesに分散されます。各プライマリ・シャードには、関連付けられたスタンバイ・シャードがあります。

お薦め

Oracle Cloud、Microsoft AzureおよびAmazon Web ServicesにOracle Databaseシャードをデプロイするための開始点として、次の推奨事項を使用します。 実際の要件は、ここで説明するアーキテクチャとは異なる場合があります。
  • シャード数とサイズ
    スタックのデプロイ時に、使用するデータベース・シェイプとシャードの数を指定できます。
    • ワークロード要件に基づいて適切なシェイプを選択します。指定したシェイプは、すべてのシャードに使用されます。

      デプロイ後、ワークロードの変更に適応するように個々のシャードのシェイプを変更できます。シェイプを変更するシャードが停止され、新しいシェイプを使用して再起動されます。

    • 一般に、少数の小さいシャードは、少数の大きいシャードよりも全体的なフォルト・トレランスを向上させます。トポロジをスケール・アウトしたり、フォルト・トレランスを改善するために、既存のシャードの可用性に影響を与えることなく、いつでもシャードを追加できます。必要に応じて、シャード・データベースをスケール・インできます。最後に作成されたシャードは、データを他のシャードに移動した後に最初に削除されます。
  • シャードの可用性

    シャードの高可用性を確保するには、スタンバイ・シャードをプロビジョニングし、プライマリとスタンバイの同期およびフェイルオーバーにOracle Data Guardを使用します。

  • シャード・カタログの可用性

    シャード・カタログの高可用性のために、スタンバイ・カタログをプロビジョニングし、同期およびフェイルオーバーにOracle Data Guardを使用します。シャード・カタログの可用性はシャード・データベースの可用性に影響しません。シャード・カタログの停止は、スタンバイ・カタログへのフェイルオーバー中にメンテナンス操作またはマルチシャード問合せを実行する機能にのみ影響します。OLTPトランザクションは引き続きシャードにルーティングされます。

  • シャード・ディレクタの可用性

    シャード・ディレクタ・レイヤーの高可用性のために、複数のシャード・ディレクタをデプロイします。領域に最大5つのシャード・ディレクタをデプロイできます。Oracleでは、少なくとも2つのシャード・ディレクタをデプロイすることをお薦めします。Oracle Cloudでは、Oracleはシャード・ディレクタを個別の可用性ドメインまたはフォルト・ドメインに分離することをお薦めします。

  • 記憶域

    ワークロードに適したストレージ容量を選択します。たとえば、ローカル・ストレージまたは指定したサイズのブロック・ボリュームのいずれかが各データベース・シャードにアタッチされます。

    クラウド・ストレージ・プロバイダの機能に基づいて、データベースの可用性に影響を与えることなく、いつでもストレージをスケール・アップできます。Oracle Cloudにあるシャードの場合、Oracle Cloudの記憶域の詳細は、Oracle Cloud Infrastructure Databaseのドキュメントを参照してください。

注意事項

  • アプリケーションの設計

    適切に定義されたデータ分散戦略を持ち、主にシャーディング・キー(顧客ID、アカウント番号など)を使用してデータにアクセスするアプリケーションは、シャード・データベースに適しています。

  • スケーラビリティー

    シャード・データベースをデプロイした後、スタックを編集して変更を適用することで、シャードの数を増減できます。スタックのデプロイ時に指定したレプリケーション係数に応じて、スタンバイ・シャードもスケーリングされます。

    シャード・ディレクタの数もスケーリングできます。

  • セキュリティ

    シャード・データベースのデプロイ時に、SSH公開キーを指定して、データベース・サーバーへのセキュアなSSH接続を有効にします。

    特定のユースケースおよびセキュリティ要件に基づいて、必要に応じてファイアウォールおよびプロキシを使用します。

  • ネットワーク隔離

    ネットワーク分離を保証するためのベスト・プラクティスは、シャード・データベースをプライベート・サブネットにデプロイすることです。ルーティングおよびファイアウォール・ソリューションは、アプリケーションの設計と要件に基づいて決定する必要があります。

詳細の検討

次の追加のリファレンス・アーキテクチャとソリューション・プレイブックを確認してください。

Oracle Shardingの使用(Oracle Database 19 cのドキュメント)