Oracle Autonomous Transaction Processing Serverlessへの移行されたMongoDBワークロードのデプロイ

ドキュメント・データベース(この場合はMongoDB)を使用する既存のワークロードを、Oracle Cloud Infrastructure (OCI)上のOracle Autonomous Transaction Processing Serverless (ATPサーバーレス)データベースに移行して、他のマルチモデル・ワークロードとともにJSON中心アプリケーションの開発を最新化します。

ドキュメントやドキュメント・データベースを使用してデータ・スキーマやアプリケーションを進化させるワークロードやアプリケーションは、開発者に提供される柔軟性のために人気があります。スキーマの柔軟性、迅速な開発およびスケーラビリティにより、アプリケーション機能のプロトタイピングの高速化、アプリケーションの進化の容易化、および開発者が大規模なユーザー・ベースに対応するように拡張できる反復的に小さいアプリケーションや機能の構築が可能になります。ただし、このようなタイプのワークロードには、トランザクションの保証の低下、データ問合せの汎用性、分析や機械学習などのドキュメントで他のワークロードをサポートできないという課題があります。

これらのワークロードが従来のドキュメント・データベースのメリットを享受し、リレーショナル・データベースのメリットを活用できるとしたら?たとえば、データを別のデータベースやシステムにレプリケートする必要なく、トランザクション上の保証を強化し、分析や機械学習などの機能を追加することができます。

Autonomous Transaction Processing Serverlessは、トランザクション・ワークロード、分析ワークロードおよびバッチ・ワークロードを同時に実行するように最適化された、完全に自動化されたデータベース・サービスです。パフォーマンスを加速するために、拡張性、可用性、透過的なセキュリティ、リアルタイムの運用分析を提供しながら、行形式、索引、データ・キャッシュ用に事前構成されています。アプリケーション開発者とDBAは、機能性や原子性、一貫性、分離および耐久性(ACID)プロパティを犠牲にすることなく、迅速かつコスト効率よくアプリケーションを開発およびデプロイできます。

機能アーキテクチャ

このリファレンス・アーキテクチャでは、アプリケーションとMongoDBデータベース(オンプレミスまたはクラウド)を含むワークロードがあり、OCIに移行することを想定しています。将来の状態アーキテクチャ、その利点、デプロイ方法、および既存のワークロードを強化するために使用できる追加機能について説明します。

このリファレンス・アーキテクチャは、移行プロセス自体ではなく、移行されたワークロードのデプロイメントに重点を置いています。移行プロセスの詳細は、「詳細」の項を参照してください。

このアーキテクチャで使用される主要な製品の1つは、Oracle Database API for MongoDBです。これにより、アプリケーションは、MongoDBドライバ、ツールおよびSDKを使用して、Oracle Database内のJSONドキュメントのコレクションと対話できます。これにより、コードをリファクタリングする必要なく、既存のアプリケーション・コードでAutonomous Transaction Processingサーバーレス(ATPサーバーレス)に格納されたデータを操作できます。

次の図は、データベース層、バックエンド層およびフロントエンド層で構成される一般的なアプリケーションを示しています。



mongodb-atp-s-logical-arch-migration-oracle.zip

MEANスタックは、このパターンの実装に使用される一般的なスタックです。
  • MongoDB: ドキュメント・データベース
  • Express: バックエンド・フレームワーク
  • Angular: フロントエンドフレームワーク
  • Node.js: バックエンド・サーバー

この例では、MEANスタックを使用して、既存のデプロイメントをOCIおよびATPサーバーレスに移行します。

このワークロードのOCIおよびATP Serverlessへの移行は簡単で、次のステップの概要で構成されます。

  1. ATPサーバーレス・インスタンスをデプロイし、作成時にOracle Database Mongo DB APIを有効にします。
  2. MongoDBからATPサーバーレスにメタデータおよびデータを移行します。
  3. アプリケーション・サーバーをデプロイして、Node.jsを実行し、VM、コンテナまたはKubernetesのいずれかを使用して、ATPサーバーレスと同じリージョンおよび可用性ドメインにExpressを実行します。
  4. バックエンド・アプリケーション・コードをアプリケーション・サーバーにデプロイします。
  5. 現在のアプリケーションで使用されているものと同じMongoDBツールおよびドライバを使用して、バックエンド・アプリケーションをATP Serverlessに接続します。
  6. ユーザーを新しいアプリケーションURIに接続します。

ワークロードをATPサーバーレスに移行した後、既存の機能を拡張するためにいくつかの機能を使用できます。つまり、1)スケーラビリティ、耐障害性、高可用性などの追加の非機能要件をサポートするか、2)運用レポート、分析、機械学習などの追加の機能機能を備えているかに関係なく、データベースからデータをコピーする必要はありません。

スケーラビリティと高可用性を向上させるには、Autonomous Transaction Processingサーバーレス自動スケーリング機能を使用します。1回のクリックまたはAPIコールで、ワークロードはダウンタイムなしでベースライン容量の3倍まで使用できます。Autonomous Transaction Processingサーバーレスは、高可用性のためにOracle Real Application Clusters (Oracle RAC)テクノロジを使用します。バックエンド層では、コンピュート・インスタンス・プールを自動スケーリング・ルールとともに使用して、アプリケーションの高可用性およびスケーラビリティを有効にします。

Autonomous Transaction Processing Serverlessは、マルチモデルのマルチワークロード・データベース・テクノロジの上に構築されているため、既存のアプリケーションと連携して動作するリレーショナル、空間、グラフまたはベクトル・データ型に依存する機能を追加できます。

物理アーキテクチャ

物理アーキテクチャには、高可用性をサポートするセカンダリ・バックアップ・リージョンを備えたOCIのパブリックおよびプライベート・サブネットが含まれます。

このアーキテクチャでは、次のものがサポートされています。

  • フロントエンド層
    • アプリケーション・ユーザーは、インターネットまたは企業ネットワークから接続できます。
    • ユーザー接続は、OCI Web Application Firewallを使用して保護されます。
    • アプリケーションへのユーザー接続は、耐障害性とスケーラビリティを向上させるためにロード・バランシングされます。
    • ロード・バランサは高可用性とともにデプロイされます。
  • バックエンド層
    • アプリケーション・サーバーは、インスタンス・プールを使用して高可用性方式でデプロイされます。
    • インスタンス・プールは、水平方向のスケーラビリティを実現するために自動スケーリングで使用されます。
    • インスタンス・プールは、ATPサーバーレスと同じアベイラビリティ・ドメインにインスタンスをデプロイするように構成されているため、アプリケーションおよびデータベースのコロケーションがあるため、接続レイテンシが最適化されます。
    • インスタンス・プールは、ATPサーバーレスが配置されているのと同じ可用性ドメイン内のフォルト・ドメイン間でインスタンスを分散するように構成され、ワークロードの自己回復性を高めます。
  • データベース階層
    • ATPサーバーレスは、Oracle Real Application Clusters (Oracle RAC)およびサービス・インスタンスを支える複数のデータベース・ノードとして高可用性を提供します。したがって、デフォルトでは、データベース層は高可用性で自己回復性があります。
    • ATPサーバーレスで有効になっているOracle Database API for MongoDBを使用すると、既存のアプリケーション・コードを変更できます。
    • Oracle Database API for MongoDBは非常に自己回復性があり、この自己回復性はATPサーバーレスによって内部的に保証されます。
    • ATP Serverlessでは、自動スケーリングを使用して、システム負荷の増減を調整できます。
    • ATPサーバーレスのビジネス継続性は、Oracle Autonomous Data Guardベースのクロスリージョン・ディザスタ・リカバリによって実現されます。
    • リージョン間Oracle Autonomous Data Guardスタンバイ・リカバリ時間目標(RTO)は15分、リカバリ・ポイント目標(RPO)は1分です。
  • ディザスタ・リカバリ
    • 2つのリージョンが、クラウド・デプロイメント全体のリージョン間ディザスタ・リカバリをサポートしています。
    • スタンバイ・リージョンでは、合計リカバリ時間目標(RTO)を短縮するためにクラウド・インスタンスが事前デプロイされているウォーム・スタンバイがサポートされています。
    • プライマリ・リージョンのATPサーバーレスには、スタンバイ・リージョンにOracle Autonomous Data Guardクロスリージョン・ピアがあります
    • バックエンド層インスタンス・プールにはプール内のインスタンスの最小量が事前構成されており、フェイルオーバーの各ステップを自動化するOCI Full Stack Disaster Recovery DR計画は、フェイルオーバー後に実行する必要があるコンピュート・インスタンスの数を変更できます。メトリック・ベースの自動スケーリング構成は、プール内のインスタンスの最小数と最大数、およびスケール・アウトとスケール・インに使用されるメトリックを決定するために定義されます。
    • スタンバイ・リージョンは同様のトポロジでデプロイされ、全体的なリカバリ時間の目標が短縮されます。
    • OCI Full Stack Disaster Recoveryは、スタック全体のスタンバイ・リージョンへのフェイルオーバーおよびプライマリ・リージョンへのフォールバックを自動化します。
  • ネットワーキング
    • 両方のリージョンにデプロイされた動的ルーティング・ゲートウェイはピアリングされます。
    • オンプレミス接続では、冗長性を確保するために、Oracle Cloud Infrastructure FastConnectとサイト間VPNの両方を利用します。
    • オンプレミスおよびインターネットからのすべての受信トラフィックは、最初にハブVCNにルーティングされ、次にワークロードVCNにルーティングされます。
    • ハブおよびスポーク・ネットワーク設計を使用して、セキュリティ体制を高め、他のワークロードVCNsに対応します。
    • セキュリティ・ポスチャを増やすために、サービスはプライベート・エンドポイントとともにデプロイされます。
    • JSONワークロードVCNは、セキュリティ体制を高めるために複数のプライベート・サブネットに分離されます。
  • セキュリティ
    • すべてのデータは、転送中および保存中に安全です。
    • 簡略化のためにこのデプロイメントに示されていない設計の潜在的な改善には、完全なCIS準拠ランディング・ゾーンを使用し、ハブVCNにデプロイされたネットワーク・ファイアウォールを活用することが含まれます。ネットワーク・ファイアウォールは、すべてのトラフィックを検査し、ポリシーを適用することで、全体的なセキュリティ状態を改善します。


mongodb-atp-s-physical-arch oracle.zip

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

  • リージョン

    OCIリージョンとは、可用性ドメインをホストする1つ以上のデータ・センターを含む、ローカライズされた地理的領域のことです。リージョンは他のリージョンから独立しており、長距離の場合は複数の国または大陸にまたがる領域を分離できます。

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

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

  • FastConnect

    Oracle Cloud Infrastructure FastConnectは、データセンターとOCI間に専用のプライベート接続を作成します。FastConnectは、インターネット・ベースの接続と比較して、高帯域幅のオプションとより信頼性の高いネットワーキング・エクスペリエンスを提供します。

  • 動的ルーティング・ゲートウェイ(DRG)

    The DRG is a virtual router that provides a path for private network traffic between VCNs in the same region, between a VCN and a network outside the region, such as a VCN in another OCI region, an on-premises network, or a network in another cloud provider.

  • ネットワーク・アドレス翻訳(NAT)・ゲートウェイ

    NATゲートウェイを使用すると、VCN内のプライベート・リソースは、受信インターネット接続にそれらのリソースを公開することなく、インターネット上のホストにアクセスできます。

  • サービス・ゲートウェイ

    サービス・ゲートウェイは、VCNからOracle Cloud Infrastructure Object Storageなどの他のサービスへのアクセスを提供します。The traffic from the VCN to the Oracle service travels over the Oracle network fabric and does not traverse the internet.

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

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

  • ロード・バランサー

    Oracle Cloud Infrastructure Load Balancingは、単一のエントリ・ポイントから複数のサーバーへの自動トラフィック分散を提供します。

  • Webアプリケーション・ファイアウォール

    Oracle Cloud Infrastructure Web Application Firewall (WAF)は、ロード・バランサやWebアプリケーション・ドメイン名などの強制ポイントにアタッチされている、支払カード業界(PCI)に準拠したリージョンベースおよびエッジ施行サービスです。WAFは、悪意のある不要なインターネット・トラフィックからアプリケーションを保護します。WAFは、インターネットに接続するエンドポイントを保護することにより、アプリケーション全体に対する一貫性のあるルールの適用を実現できます。

  • Oracle Autonomous Transaction Processing Serverless

    Oracle Autonomous Transaction Processing Serverlessは、トランザクション・ワークロード、分析ワークロードおよびバッチ・ワークロードを同時に実行するように最適化された、完全に自動化されたデータベース・サービスです。パフォーマンスを加速するために、拡張性、可用性、透過的なセキュリティ、リアルタイムの運用分析を提供しながら、行形式、索引、データ・キャッシュ用に事前構成されています。アプリケーション開発者およびDBAは、機能性や原子性、一貫性、分離および耐久性(ACID)プロパティを犠牲にすることなく、迅速かつ簡単かつコスト効率よくアプリケーションを開発およびデプロイできます。

  • フル・スタック・ディザスタ・リカバリ

    Oracle Cloud Infrastructure Full Stack Disaster Recoveryは、Oracle Cloud Infrastructure (OCI)のディザスタ・リカバリおよび管理サービスであり、インフラストラクチャ、ミドルウェア、データベース、アプリケーションおよびアプリケーションなど、アプリケーション・スタックのすべてのレイヤーで包括的なディザスタ・リカバリ機能を提供します。

  • オブジェクト・ストレージ

    OCIオブジェクト・ストレージでは、データベースのバックアップ、分析データ、イメージおよびビデオなどのリッチ・コンテンツなど、あらゆるコンテンツ・タイプの構造化データおよび非構造化データの大量へのアクセスを提供します。インターネットから直接またはクラウド・プラットフォーム内から、安全かつセキュアにデータを格納できます。パフォーマンスやサービスの信頼性を低下させることなく、ストレージを拡張することができます。

    迅速、即時、頻繁にアクセスする必要のあるホット・ストレージに標準ストレージを使用します。長期間保存し、ほとんどまたはめったにアクセスしないコールド・ストレージにアーカイブ・ストレージを使用します。

  • Oracle Database API for MongoDB

    Oracle Database API for MongoDBを使用すると、アプリケーションはMongoDBドライバ、ツールおよびSDKを使用して、Oracle Database内のJSONドキュメントのコレクションと対話することができます。

物理アーキテクチャ・バリアント

ATP Serverlessが提供するフルマネージドMongoDB APIは、管理が容易なため、ほとんどのワークロードに最適なソリューションです。この物理アーキテクチャ・バリアントは、各アプリケーション・サーバーで実行されている顧客管理Oracle REST Data Servicesデプロイメントを使用します。

Oracle REST Data Servicesの構成および管理を手動で制御する要件がある場合は、顧客管理Oracle REST Data Servicesを使用することがオプションです。たとえば、アプリケーションがより大きな接続プールを使用できるようにします。

ノート:

特定のワークロード要件がある場合は、このアーキテクチャ・バリアントを使用します。上級ユーザーのみがこのアーキテクチャ・バリアントをデプロイする必要があります。

このセクションでは、前述した物理アーキテクチャーとの違いについてのみ説明するため、特に明記しないかぎり、すべての物理アーキテクチャー設計原則が有効です。

次のアーキテクチャ図は、バリアントのデプロイ方法を示しています。JSONワークロードVCNにデプロイされたクラウド・リソースのみがわかりやすくなります。デプロイメントの残りの部分は前述と同じであるためです。



mongodb-atp-s-arch-variant-oracle.zip

バリアントのフロントエンド層を次に示します。
  • バックエンド・アプリケーション・コードは、インスタンス・プールの一部であるアプリケーション・サーバーにデプロイされます。
  • 受信ユーザー・リクエストはロード・バランサによって分散されるため、フロントエンド層は水平方向にスケーラブルで、単一障害点がありません。
  • 顧客管理のOracle REST Data Servicesは、各アプリケーション・サーバーにインストールされ、MongoDB APIを有効にするように構成されているため、アプリケーションはMongoDBツールおよびドライバを使用してデータベースに接続できます。
  • 顧客管理のOracle REST Data Servicesは、たとえば、より大きな接続プールを構成したり、別のデータベース・サービスを使用して、ワークロード非機能要件に合せて構成されます。
  • バックエンド・コードと顧客管理Oracle REST Data Servicesの両方が、プールで使用されるインスタンス構成にプリインストールおよび構成されるため、インスタンスがプールに追加されるたびに、インスタンスのプロビジョニング後にバックエンドを実行し、データベースに接続できます。

レコメンデーション

ワークロードをさらに改善および進化させるための出発点として、次の推奨事項を使用してください。 実際の要件は、ここで説明するアーキテクチャとは異なる場合があります。

次を考慮してください:

  • アプリケーションのデプロイ

    アプリケーションをコンテナで実行できる場合は、Oracle Cloud Infrastructure Kubernetes Engine (OKE)でコンテナベースのデプロイメントを使用します。

  • セキュリティ
    • Oracle Data Safeを使用して、ワークロードのセキュリティ体制をさらに強化し、データベース監査を実行できます。
  • 可観測性
    • OCI Auditを使用して、Oracle Autonomous Database Serverless以外のすべてのOCIサービスに対してフォレンジック監査を実行します。
    • OCIモニタリングOCIロギングおよびOCIロギング・アナリティクスを使用して、環境の動作ステータスを完全に可視化します。
  • 業務効率
    • ATPサーバーレスJSONワークロードがより広範なデータベース・フリートの一部であり、コスト効率を向上させる場合は、エラスティック・プールを使用します。
    • Oracle Cloud Infrastructure Database Managementを有効にします。このサービスは、ATPサーバーレス・インスタンスを合理化するための、データベース・パフォーマンスのモニタリングおよび管理機能の包括的なセットを提供します。
  • アプリケーションの進化
    • 信頼できるリアルタイムのデータ分析のために、データベースからデータを移動することなく、SQLやAPEXやOracle Analytics Cloudなどのフロントエンドを使用して、ATP Serverlessに運用分析とリアルタイム・レポートをデプロイします。
    • ATP ServerlessとOracle Machine Learningを使用して、データを移動せずにJSONデータを使用してモデルを構築およびトレーニングし、既存のワークロードとともにモデルをデプロイして効率的な推論を実現します。
    • アプリケーション・コア以外のユースケースについては、JSONを問い合せてメタデータを保持するOracle Autonomous Database Select AIおよびデータベース・ビューの使用を検討してください。これにより、ユーザーは自然言語を使用してJSONデータを問い合せることができます
    • ATP Serverlessを使用して、ワークロード機能と柔軟性を高めるために、追加のデータ型(リレーショナル、ベクトル、空間またはグラフ)を格納します。

確認

  • 作成者: José Cruz
  • コントリビュータ: Massimo Castelli, Simon Griffith, Hermann Baer, Matt DeMarco, Julian Dontcheff