Oracle Exadata Database Machineへの移行されたMongoDBワークロードのデプロイ
ドキュメントやドキュメント・データベースを使用してデータ・スキーマやアプリケーションを進化させるワークロードやアプリケーションは、開発者に提供される柔軟性のために人気があります。スキーマの柔軟性、迅速な開発およびスケーラビリティにより、アプリケーション機能のプロトタイピングの高速化、アプリケーションの進化の容易化、および開発者が大規模なユーザー・ベースに対応するように拡張できる反復的に小さいアプリケーションや機能の構築が可能になります。ただし、このようなタイプのワークロードには、トランザクションの保証の低下、データ問合せの汎用性、分析や機械学習などのドキュメントで他のワークロードをサポートできないという課題があります。
これらのワークロードが従来のドキュメント・データベースのメリットを享受し、リレーショナル・データベースのメリットを活用できるとしたら?たとえば、データを別のデータベースやシステムにレプリケートする必要なく、トランザクション上の保証を強化し、分析や機械学習などの機能を追加することができます。
Oracle Database 23aiは、AI、マイクロサービス、グラフ、ドキュメント、空間、およびリレーショナル・アプリケーションの開発を簡素化するように設計されており、1つの強力なソリューションで必要なすべてを提供するコンバージド・データベース・プラットフォームです。
Oracle Exadata Database Machineは、Oracle Databaseを実行するためのパフォーマンスと可用性が最も高いプラットフォームになるように設計されています。Exadataは、オンライン・トランザクション処理は(OLTP)、データ・ウェアハウスは(DW)および混合ワークロードの統合など、あらゆるタイプのデータベース・ワークロードを実行します。実装がシンプルで短期間で必要なExadataは、最も重要なデータベースの稼働および保護し、Database as a Serviceの理想的な基盤です。
機能アーキテクチャ
このリファレンス・アーキテクチャは、移行プロセスではなく、移行されたワークロードのデプロイに重点を置いています。移行プロセスについてさらに学習するには、「詳細」の項を参照してください。
このアーキテクチャで使用される主な機能の1つは、MongoDB用のOracle Database APIです。これにより、アプリケーションはMongoDBコマンドを使用してOracle Database内のJSONドキュメントのコレクションと対話できるようになります。これにより、コードをリファクタすることなく、既存のアプリケーション・コードでOracle Database 23aiに格納されているデータを操作できます。
次の図は、データベース層、バックエンド層およびフロントエンド層で構成される一般的なアプリケーションを示しています。
mongodb-logical-arch-migration.zip
このパターンの実装に使用される一般的なスタックは、MEANスタックです。
- MongoDB: ドキュメント・データベース
- Express: バックエンド・フレームワーク
- Angular: フロントエンドフレームワーク
- Node.js: バックエンド・サーバー
このアーキテクチャでは、既存のデプロイメントの例としてMEANスタックを使用して、Oracle Database 23aiに移行します。このワークロードのOracle Database 23aiへの移行は、次の大まかなステップで構成されています。
- Oracle Real Application Clusters (Oracle RAC)を使用して、複数のデータベース・ノードにわたって可用性の高いOracle Database 23aiインスタンスをExadataにデプロイします。
- MongoDBからOracle Database 23aiにメタデータおよびデータを移行します。
- バックエンド層のコンピュート(それがVM、コンテナまたはOracle REST Data Services)をインストールおよび構成します。
- MongoDB APIを有効にして、アプリケーションがMongoDBドライバを使用してデータベースと通信できるように、Oracle REST Data Servicesを構成します。
- 新しいデータベース接続文字列を使用するようにアプリケーションを構成します。
- 現在のアプリケーションで使用されているものと同じMongoDBツールおよびドライバを使用して、バックエンド・アプリケーションをOracle Database 23aiに接続します。
ワークロードをOracle Databaseに移行した後、データベースからデータをコピーすることなく、セキュリティの向上、運用レポート、分析、機械学習などの追加機能を有効にすることで、機能を強化できます。Oracle Database 23aiは、マルチモデルのマルチワークロード・プラットフォームです。これにより、リレーショナル、空間、グラフまたはベクトル・データ型を利用する機能を既存のアプリケーションとシームレスに統合できます。
ワークロードのスケーラビリティを向上させるには、より多くのコンピュートとメモリーをデータベースに割り当てます。Oracle Database 23aiはマルチモデルのマルチワークロード・データベース・テクノロジであるため、リレーショナル・データ型、空間データ型、グラフ・データ型またはベクトル・データ型に依存する追加機能を、既存のアプリケーションとともに追加できます。
物理アーキテクチャ
フロントエンド層
- 現在のデプロイメントが使用されます。
- ユーザーは、インターネットまたは企業ネットワークから接続できます。
- DNS機能は、フェイルオーバー時にリクエストをスタンバイ・データ・センターにルーティングするように構成されています。
バックエンド層
- 既存のアプリケーションは、同じコンピュート・インスタンスとともにデプロイおよび使用されます。
- 顧客管理のOracle REST Data Servicesは、アプリケーション・サーバーにコロケーションおよびデプロイされます。アプリケーション・コードは、Oracle REST Data Servicesを介してOracle Database 23aiに接続できます。
- バックエンド層のスケーラビリティは、現在のスケーラビリティ・メカニズムを使用して実現され、各アプリケーション・サーバーにインストールされているOracle REST Data Servicesを暗黙的にスケーリングします。
データベース階層
- Oracle Database 23aiはExadataにデプロイされ、バックエンド層へのJSONドキュメントの格納と提供に使用されます。
- Oracle Database API for MongoDBは、Oracle REST Data Servicesを使用して有効になっています。これにより、コードを変更せずに既存のアプリケーション・コードを使用できます。
ビジネス継続性
- Oracle Data Guardのディザスタ・リカバリ戦略を使用して達成されます。
- バックエンド層と関連リソースがすでにデプロイおよび実行されているウォーム・ディザスタ・リカバリ戦略が想定されます。
次の図は、このリファレンス・アーキテクチャを示しています。
mongodb-exadata-machine-physical-arch.zip
物理アーキテクチャの設計:
ビジネス継続性
- 同じデプロイメントを持つ2つのデータ・センターがあります。1つはアクティブで、もう1つはスタンバイです。
- DNSトラフィック・ステアリングは、ユーザー・リクエストをアクティブなデータ・センターに転送します。アプリケーション層で実行されたDNSヘルス・チェック・プローブが繰り返し失敗した場合、DNSは、スタンバイ・データ・センターのワークロードにトラフィックをルーティングするように再構成されます。
- ロード・バランサは、受信リクエストを複数のバックエンド層の仮想マシンに分散するため、単一障害点を防ぎます。
- バックエンド層には、ユーザー・リクエストを処理する複数の仮想マシンがあります。
- 顧客管理Oracle REST Data Servicesは、バックエンド層の仮想マシンにデプロイおよび構成されます。VMを追加すると、アプリケーション・サーバーとOracle REST Data Servicesの両方が自動的にスケーリングされます。
- リカバリ時間目標(RTO)は、データベースのフェイルオーバーだけでなく、スタンバイ・データ・センターの残りのワークロード・コンポーネントへの完全フェイルオーバーに依存します。
- データベースRTOおよびRPO (リカバリ・ポイント目標)は、構成されたOracle Data Guard保護モードによって異なります。
- データベース・フェイルオーバーでは、ビジネス継続性の詳細な要件に応じて、Oracle Data Guardの手動フェイルオーバーまたは自動フェイルオーバーが利用されます。
ネットワーキング
- インターネットからの受信ユーザー・リクエストを受信するパブリック・サブネットがあります。
- ロード・バランサ・リクエストは、ユーザー・リクエストを処理するバックエンド層サーバーにルーティングされます。
- Exadata VMは、クライアントおよび管理ネットワークに接続されます。
- Oracle REST Data Servicesを介したデータベースへのバックエンド層リクエストでは、クライアント・ネットワーク・アドレスが使用されます。
- 2つのデータ・センターは、Oracle Data Guard構成をサポートするために必要な帯域幅および低レイテンシと相互接続されています。
データベース
- Oracle Database 23aiは、Exadata VMクラスタにデプロイされます。
- VMクラスタは、高可用性のために複数のデータベース・ノードを使用します。
- Oracle RACは、データベースがワークロードのために複数のデータベース・ノードを使用することを確認します。
セキュリティ
- すべてのデータは、転送中および保存中に安全です。
簡潔さのために、このデプロイメントに示されていない潜在的な設計改善には、次のものがあります。
- Active Data Guardを使用して、スタンバイ・データベースで読取り専用アクセスを有効にし、運用分析問合せをオフロードします。
レコメンデーション
- アプリケーションのデプロイ
アプリケーションをコンテナで実行できる場合は、Kubernetesを使用したコンテナベースのデプロイメントの使用を検討してください。コンテナを使用する場合は、バックエンド・コードおよび顧客管理Oracle REST Data Servicesがすでにインストールされているコンテナ・イメージを使用することを検討してください。
- セキュリティ
Oracle Database Advanced Securityオプション機能を使用して、保存データを暗号化し、動的データ・リダクションを有効にすることを検討してください。Oracle Database Advanced Securityオプションを使用するには、Oracle Database Enterprise Editionライセンスが必要です。
- 可観測性
Oracle Data Safeを使用してワークロードのセキュリティ体制をさらに高め、データベース監査を実行できるようにすることを検討してください。
- アプリケーションの進化
- SQLとOracle APEXのようなフロントエンドを使用してOracle Database 23aiに運用分析とリアルタイム・レポートをデプロイし、信頼できるリアルタイム分析のためにデータをデータベース内に保持することを検討してください。
- Oracle Machine Learning for SQLを使用した機械学習にOracle Database 23aiを使用すること、データ移動を必要とせずにJSONデータを使用してモデルを構築およびトレーニングすること、および効率的な推論のために既存のワークロードとともにモデルをデプロイすることを検討してください。
- ワークロードの機能性と柔軟性を高めるために、データベースを使用して追加のデータ型(リレーショナル、ベクトル、空間またはグラフ)を格納することを検討してください。
- 運用分析を超えた分析にExadataとOracle Database 23aiを使用することを検討してください。これは、データ分析用に調整された効率的な列形式であるハイブリッド・コラム圧縮の恩恵を受け、データの格納に必要な領域を削減しながら分析パフォーマンスを向上させます。ハイブリッド・コラム圧縮はExadataでサポートされており、Oracle Database Enterprise Editionライセンスに含まれています。