Oracle Autonomous JSON Databaseへの移行されたMongoDBワークロードのデプロイ

ドキュメント・データベース(この場合はMongoDB)を使用する既存のワークロードをOracle Cloud Infrastructure (OCI)上のOracle Autonomous JSON Databaseに移行して、JSON中心のアプリケーション開発を最新化します。

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

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

Autonomous JSON Databaseには、NoSQL形式のドキュメントAPI (Simple Oracle Document Access (SODA)およびOracle Database API for MongoDB)、サーバーレス・スケーリング、高パフォーマンスACIDトランザクション、包括的なセキュリティ、および低従量制の価格設定が備わっています。Autonomous JSON Databaseは、データベースのプロビジョニング、構成、チューニング、スケーリング、パッチ適用、暗号化および修復を自動化し、データベース管理を排除し、99.95%の可用性を実現します。

機能アーキテクチャ

このアーキテクチャは、開始点として、アプリケーションとMongoDBデータベースを含むワークロードが存在し、オンプレミスまたはクラウド・デプロイメントのいずれかが存在し、OCIに移行されることを前提としています。将来の状態アーキテクチャ、その利点、デプロイ方法、および既存のワークロードを拡張するために使用できる追加機能について説明します。

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

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



mongodb-json-logical-arch-migration-oracle.zip

このパターンの実装に使用される一般的なスタックは、MEANスタックで、ドキュメント・データベースとしてMongoDB、バックエンド・フレームワークとしてExpress、フロントエンド・フレームワークとしてAngular、バックエンド・サーバーとしてNode.jsを使用します。このドキュメントでは、OCIおよびAutonomous JSON Databaseに移行される既存のデプロイメントの例としてMEANスタックを使用します。

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

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

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

ワークロードをAutonomous JSON Databaseに移行した後、既存の機能を拡張するために複数の機能を使用できます(1)機能のない追加の要件(容易など)をサポートしているかどうかに関係なく)。スケーラビリティ、回復性、高可用性を向上させるか、または2)運用レポート、分析、機械学習などの追加の機能機能を備えているため、データベースからデータをコピーする必要はありません。

スケーラビリティと高可用性を向上させるには、Autonomous JSON Databaseの自動スケーリング機能を使用します。この機能では、ワンクリックまたはAPIコールで、ワークロードがダウンタイムなしでベースライン容量の3倍まで使用できます。Autonomous JSON Databaseでは、高可用性のためにOracle Real Application Clusters (Oracle RAC)テクノロジが使用されることに注意してください。バックエンド層では、自動スケーリング・ルールを使用してコンピュート・インスタンス・プールを使用し、アプリケーションの高可用性とスケーラビリティを実現します。

Autonomous JSON Databaseはマルチモデルのマルチワークロード・データベース・テクノロジ上に構築されているため、リレーショナル、空間、グラフまたはベクトル・データ型に依存する追加機能を、既存のアプリケーションと連携して追加できます。ユーザーがJSONデータ上で分析を実行し、Autonomous JSON DatabaseでSQLを使用して、同じエンジンとデータを使用して運用レポートと分析レポートの作成を簡素化することが一般的です。

Autonomous JSON Databaseには、JSON以外のデータの制限は20 Gbですが、データ・ボリュームの要件が変更された場合、同じ機能をサポートして、Autonomous Transaction Processingサーバーレスに簡単に変換できます。ViewsおよびMaterialized Viewsストレージは、Autonomous JSON Database 20 Gb以外のJSONデータ制限にはカウントされないため、たとえば、JSONドキュメント上でSQLを使用した運用分析をサポートするために、簡単に作成して使用できます。

物理アーキテクチャ

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

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

  • フロントエンド層
    • アプリケーション・ユーザーは、インターネットまたは企業ネットワークから接続できます。
    • ユーザー接続はWeb Application Firewallを使用して保護されます。
    • アプリケーションへのユーザー接続は、回復性とスケーラビリティを向上させるためにロード・バランシングされます。
    • ロード・バランサは高可用性とともにデプロイされます
  • バックエンド層
    • アプリケーション・サーバーは、インスタンス・プールを使用して高可用性方式でデプロイされます。
    • インスタンス・プールは、水平方向のスケーラビリティを実現するために自動スケーリングで使用されます。
    • インスタンス・プールは、Autonomous JSON Databaseと同じアベイラビリティ・ドメインにインスタンスをデプロイするように構成され、アプリケーションとデータベースのコロケーションが設定されるため、接続レイテンシが最適化されます
    • インスタンス・プールは、ワークロードの回復力を高めるために、Autonomous JSON Databaseが配置されているのと同じ可用性ドメイン内のフォルト・ドメイン間でインスタンスを分散するように構成されています
  • データベース階層
    • Autonomous JSON Databaseは、Oracle Real Application Clusters (Oracle RAC)として高可用性を提供し、サービス・インスタンスを支える複数のデータベース・ノードを提供します。したがって、デフォルトでは、データベース層は高可用性で自己回復性があります。
    • Autonomous JSON Databaseで有効になっているMongoDB用のOracle Database APIを使用すると、変更せずに既存のアプリケーション・コードを使用できます。
    • Oracle Database API for MongoDBは非常に自己回復性があり、その自己回復性はAutonomous JSON Databaseによって内部的に保証されます。
    • Autonomous JSON Databaseでは、自動スケーリングを使用して、システム負荷の増加と減少に合わせて調整できます。
    • Autonomous JSON Databaseのビジネス継続性は、バックアップベースのクロス・リージョン・ディザスタ・リカバリによって実現されます。または、リフレッシュ可能クローンを使用できます。
  • ディザスタ・リカバリ
    • 2つのリージョンが、クラウド・デプロイメント全体のリージョン間ディザスタ・リカバリをサポートしています。
    • プライマリ・リージョンのAutonomous JSON Databaseには、セカンダリ・リージョンにバックアップ・ベースのクロス・リージョン・ピアがあります。
    • 2つ目のリージョンは、同様のトポロジでデプロイされ、全体的なリカバリ時間の目標が短縮されます。
    • RTO全体を削減するために、Autonomous JSON Databaseスタンバイ・データベースとともにバックエンド層クラウド・リソースがすでにプロビジョニングされているウォームDR戦略を使用できます。
    • あるいは、障害が発生した場合にバックエンド層リソースをプロビジョニングして、DRリソースの実行コストを削減し、RTO全体を増やすこともできます。
    • 簡略化のためにこのデプロイメントに示されていない設計上の潜在的な改善には、OCI Full Stack Disaster Recoveryを使用してロード・バランサおよびバックエンド層のディザスタ・リカバリを自動化することが含まれます。
  • ネットワーキング
    • 両方のリージョンにデプロイされたDynamic Routing Gatewaysはピアリングされます。
    • オンプレミス接続では、冗長性のためにOCI FastConnectとサイト間VPNの両方を利用します。
    • オンプレミスおよびインターネットからのすべての受信トラフィックは、最初にハブVCNにルーティングされ、次にワークロードVCNにルーティングされます。
    • ハブおよびスポーク・ネットワーク設計を使用して、セキュリティ体制を高め、他のワークロードVCNsに対応します。
    • セキュリティ・ポスチャを増やすために、サービスはプライベート・エンドポイントとともにデプロイされます。
    • JSONワークロードVCNは、セキュリティ体制を高めるために複数のプライベート・サブネットに分離されます。
  • セキュリティ

    すべてのデータは、転送中および保存中に安全です。

  • 簡略化のためにこのデプロイメントに示されていない設計の潜在的な改善には、完全なCIS準拠ランディング・ゾーンを使用し、ハブVCNにデプロイされたネットワーク・ファイアウォールを活用することが含まれます。ネットワーク・ファイアウォールは、すべてのトラフィックを検査し、ポリシーを適用することで、全体的なセキュリティ状態を改善します。

次の図に、このアーキテクチャを示します。



mongodb-json-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 Database API for MongoDB

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

  • Autonomous JSON Database

    Oracle Autonomous JSON Databaseは、JSON中心のアプリケーション開発を簡素化するクラウド・ドキュメント・データベース・サービスである。シンプルなドキュメントAPI、サーバーレス・スケーリング、高パフォーマンスのACIDトランザクション、包括的なセキュリティ、低従量制の価格設定を備えています。Autonomous JSON Databaseでは、データベースのプロビジョニング、構成、チューニング、スケーリング、パッチ適用、暗号化および修復を自動化します

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

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

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

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

Autonomous JSON Databaseで提供されるフルマネージドMongoDB APIは、管理が容易であるため、ほとんどのワークロードに最適なソリューションです。

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

ノート:

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

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

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



mongodb-json-arch-variant-oracle.zip

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

レコメンデーション

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

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

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

    VCNを作成した後、そのCIDRブロックを変更、追加および削除できます。

    サブネットを設計するときには、トラフィック・フローおよびセキュリティ要件を考慮してください。特定の層またはロール内のすべてのリソースを同じサブネットにアタッチします。このサブネットはセキュリティ境界として機能します。

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

    アプリケーションをコンテナで実行できる場合は、Oracle Kubernetes Engine (OKE)を使用してコンテナ・ベースのデプロイメントを使用することを検討してください。

  • セキュリティ

    データ・セーフを使用してワークロードのセキュリティ体制をさらに高め、データベース監査を実行できるようにすることを検討してください。

  • 可観測性
    • OCI Auditを使用して、Autonomous JSON Database以外のすべてのOCIサービスに対してフォレンジック監査を実行することを検討してください。
    • モニタリング、ロギングおよびログ・アナリティクスを使用して、環境の動作ステータスを完全に可視化することを検討してください。
  • ディザスタ・リカバリ

    OCI Full Stack Disaster Recoveryを使用して、スタックのすべてのレイヤーのディザスタとリカバリを自動化および調整することを検討してください。

  • 業務効率
    • Autonomous JSONワークロードがより広範なデータベース・フリートの一部である場合は、エラスティック・プールの使用を検討して、コスト効率を向上させます。
    • データベース・パフォーマンスの監視および管理機能の包括的なセットを提供するOCIサービスであるデータベース管理を有効にして、AJDインスタンス管理を合理化することを検討してください。
  • アプリケーションの進化
    • 信頼できるリアルタイムのデータ分析のために、データベースからデータを移動することなく、SQLやAPEXやOracle Analytics Cloudなどのフロントエンドを使用して、Autonomous JSON Databaseに運用分析とリアルタイム・レポートをデプロイすることを検討してください。
    • Oracle Machine Learning(OML)を使用した機械学習にAutonomous JSON Databaseを使用することを検討し、データ移動を必要とせずにJSONデータを使用してモデルを構築およびトレーニングし、効率的な推論のために既存のワークロードとともにモデルをデプロイすることを検討します
    • アプリケーション・コア以外のその他のユースケースについては、Autonomous JSON Databaseの使用を検討してください。JSONを問い合せてメタデータを保持するAIおよびデータベース・ビューを選択し、ユーザーが自然言語を使用してJSONデータを問い合せることができます
    • ワークロード機能と柔軟性を高めるために、Autonomous JSON Databaseを使用して、最大20 Gbのデータタイプ(リレーショナル、ベクトル、空間またはグラフ)を追加で格納することを検討してください。

確認

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