Oracle Cloud Infrastructureでの線形スケーラビリティ、フォルト・トレラント、シャードOracleデータベースのデプロイ

エンタープライズ規模のOLTPアプリケーションに対して完全なデータ分離を使用した極端なスケールアウトをサポートするデータベースが必要な場合は、Oracle Databaseのシャード・インスタンスOracle Cloud Infrastructureのフォルト・トレラント・トポロジにデプロイします。

シャーディングは、シャーと呼ばれる独立したデータベースでデータが水平にパーティション化され、それぞれが独自のCPU、メモリーおよびディスク・リソースを持つ個別のサーバーで実行されるデータ層アーキテクチャです。このシェアード・ナッシング・アプローチにより、インフラストラクチャ・レイヤーでのシングル・ポイント障害が排除されます。シャードのプールはアプリケーション層に対して、シャード・データベースと呼ばれる単一の論理データベースとして表示されます。適切に定義されたデータ分散方法があり、シャーディング・キーを使用して主にデータにアクセスするアプリケーションは、シャード・データ層を利用できます。

アーキテクチャ

次のアーキテクチャでは、Oracle Cloud Marketplaceで提供されるOracle Database Shardingスタックを使用してデプロイされた、Oracle Cloud Infrastructureのフォルト・トレラントなシャードOracle Database 19 cトポロジを示します。

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

複数の可用性ドメインにまたがるデプロイメント

このアーキテクチャは、Oracle Cloud Infrastructureリージョンの2つの可用性ドメインに分散されたシャード・データベースを示しています。shards-single-region.pngの説明が続きます図shards-single-region.pngの説明

単一の可用性ドメインへのデプロイメント

このアーキテクチャは、Oracle Cloud Infrastructureリージョンの単一の可用性ドメイン内のフォルト・ドメインに分散されたシャード・データベースを示しています。shards-single-ad.pngの説明が続きます図shards-single-ad.pngの説明

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

  • リージョン

    Oracle Cloud Infrastructureリージョンは、可用性ドメインと呼ばれる1つ以上のデータ・センターを含む、ローカライズされた地理的領域です。リージョンは他のリージョンから独立しており、広大な距離を(複数の国または複数の大陸にまたがる)分離できます。

    このアーキテクチャのすべてのリソースは、指定したコンパートメントおよび単一のOracle Cloud Infrastructureリージョン内にデプロイされます。

  • 可用性ドメイン

    可用性ドメインは、リージョン内のスタンドアロンの独立したデータ・センターです。各可用性ドメインの物理リソースは、フォルト・トレランスを提供する他の可用性ドメインのリソースから分離されます。可用性ドメインは、電源や冷却、内部の可用性ドメイン・ネットワークなどのインフラストラクチャを共有しません。したがって、あるアベイラビリティ・ドメインでの障害が、リージョン内の他のアベイラビリティ・ドメインに影響を及ぼすことはほとんどありません。

  • フォルト・ドメイン

    フォルト・ドメインは、アベイラビリティ・ドメイン内のハードウェアおよびインフラストラクチャのグループです。各可用性ドメインには、独立した電源とハードウェアを持つ3つのフォルト・ドメインがあります。複数のフォルト・ドメインにリソースを分散する場合、アプリケーションでは、フォルト・ドメイン内の物理サーバー障害、システム・メンテナンスおよび電源障害を許容できます。

    このアーキテクチャのリソースは、各可用性ドメインのフォルト・ドメイン間で均等に分散されます。

  • 仮想クラウド・ネットワーク(VCN)およびサブネット

    VCNは、Oracle Cloud Infrastructureリージョンで設定するカスタマイズ可能なソフトウェア定義のネットワークです。従来のデータ・センター・ネットワークと同様に、VCNではネットワーク環境を完全に制御できます。VCNには、VCNの作成後に変更できる複数の重複しないCIDRブロックを含めることができます。VCNは、リージョンまたは可用性ドメインにスコープ指定できるサブネットにセグメント化できます。各サブネットは、VCN内の他のサブネットと重複しない連続したアドレスの範囲で構成されます。サブネットのサイズは、作成後に変更できます。サブネットはパブリックまたはプライベートにできます。

    このアーキテクチャのコンピュート・リソースとデータベース・リソースは、単一のリージョナル・パブリック・サブネットにアタッチされます。使用するVCNおよびサブネットを指定できます。新しいVCNおよびサブネットを作成する場合は、VCNおよびサブネットのCIDRアドレス・ブロックを指定できます。

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

    インターネット・ゲートウェイでは、VCNのパブリック・サブネットとパブリック・インターネット間のトラフィックが許可されます。

  • セキュリティ・リスト

    サブネットごとに、サブネット内外で許可する必要があるトラフィックのソース、宛先およびタイプを指定するセキュリティ・ルールを作成できます。

    このアーキテクチャには、シャード・ディレクタとの間のトラフィックを制御するセキュリティ・リストが含まれています。

  • ルート表

    仮想ルート表には、通常はゲートウェイを介して、サブネットからVCN外部の宛先にトラフィックをルーティングするルールが含まれます。

    このアーキテクチャには、サブネットからインターネット・ゲートウェイにトラフィックを送信するためのルート表が含まれます。

  • シャード・ディレクタ

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

    必要なシャード・ディレクタの数を指定できます。シャード・ディレクタは、リージョン内のすべての可用性ドメインおよび各可用性ドメイン内のフォルト・ドメインに分散される個々のコンピュート・インスタンスにデプロイされます。シャード・ディレクタに使用するコンピュート・インスタンスのシェイプを選択できます。

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

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

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

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

    各データベース・シャードは、単一ノードのOracle Cloud Infrastructure VM DBシステムです。プライマリ・シャードの数、使用するデータベース・シェイプおよび使用可能な記憶域容量を指定できます。シャードは、リージョン内のすべての可用性ドメイン全体および各可用性ドメイン内のフォルト・ドメイン全体に均等に分散されます。

    アーキテクチャのデプロイ時に、プライマリ・シャードごとにスタンバイ・シャードのプロビジョニングを選択できます。
    • リージョンに複数の可用性ドメインが含まれている場合、プライマリ/スタンバイ・ペアの各シャードは別々の可用性ドメインに配置されます。
    • リージョンに可用性ドメインが1つしか含まれていない場合、プライマリ・シャードとスタンバイ・シャードは別々のフォルト・ドメインに分離されます。

お薦め

実際の要件は、ここで説明するアーキテクチャとは異なる場合があります。開始点として次の推奨事項を使用します。

  • シャード数とサイズ
    スタックのデプロイ時に、使用するデータベース・シェイプとシャードの数を指定できます。
    • ワークロード要件に基づいて適切なシェイプを選択します。指定したシェイプは、すべてのシャードに使用されます。

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

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

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

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

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

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

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

  • 記憶域

    Oracle Cloud Marketplaceスタックの現在のバージョンでは、データベース・シャードおよびカタログ・データベースに論理ボリューム・マネージャ(LVM)ベースの記憶域がプロビジョニングされます。256 GBから40 TBまでの使用可能なストレージ容量を指定できます。ワークロードに適したストレージ容量を選択します。指定したサイズのブロック・ボリュームが各データベース・シャードにアタッチされます。

    データベースの可用性に影響を与えることなく、いつでもストレージをスケール・アップできます。使用されている合計記憶域が使用可能な記憶域より大きいことに注意してください。詳細は、Oracle Cloud Infrastructure Databaseのドキュメントを参照してください。

  • ネットワーク設計

    VCNを作成する場合、VCNのサブネットにアタッチする予定のリソースの数に基づいて、必要なCIDRブロックの数と各ブロックのサイズを決定します。標準のプライベートIPアドレス空間内にあるCIDRブロックを使用します。

    プライベート接続を設定する予定の他のネットワーク(Oracle Cloud Infrastructure、オンプレミス・データ・センターまたは別のクラウド・プロバイダ内)と重複しないCIDRブロックを選択します。

注意事項

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

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

  • スケーラビリティー

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

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

  • SECURITY

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

  • ネットワーク隔離

    ネットワーク分離を確保するには、シャード・データベースをプライベート・サブネットにデプロイします。データベース・サーバーへの管理アクセスの場合、パブリック・サブネットに要塞ホストをプロビジョニングできます。

デプロイ

この参照アーキテクチャをデプロイするためのTerraformベースのスタックは、Oracle Cloud Marketplaceで使用できます。

  1. Oracle Cloud Marketplaceに移動します。
  2. アプリケーションの入手」をクリックします。
  3. 画面に表示されるプロンプトに従います。

詳細の検討

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