Azure での Oracle アプリケーションおよびソリューションの概要

適用対象: ✔️ Linux VM

この記事では、Azure インフラストラクチャを使用した Oracle ソリューションの実行について説明します。

重要

Oracle RAC と Oracle RAC OneNode は、Azure ベアメタル インフラストラクチャではサポートされていません。

Azure インフラストラクチャ上の Oracle データベース

Oracle では、Oracle Linux ベースの VM イメージ上の、Azure での Database 12.1 以降の Standard および Enterprise エディションの実行がサポートされています。 Azure Marketplace で入手可能な Oracle Linux イメージ上の Oracle Database を使用して、Azure インフラストラクチャ上で Oracle データベースを実行できます。

  • Oracle Database 12.2、および 18.3 Enterprise Edition
  • Oracle Database 12.2、および 18.3 Standard Edition
  • Oracle データベース 19.3
    次の方法のいずれかを使用することもできます。
  • Azure で使用できる Oracle Linux 以外のイメージに Oracle Database を設定します。
  • Azure で一から作成したカスタム イメージ上のソリューションを構築します。
  • オンプレミス環境からカスタム イメージをアップロードします。

複数の接続ディスクを使用したソリューションの構成を選択することもできます。 Oracle Automated Storage Management (ASM) をインストールしてデータベースのパフォーマンスを向上させます。 Azure 上の Oracle Database の運用ワークロードで最高のパフォーマンスを得るには、VM イメージのサイズを適切に設定し、スループット、IOPS、待機時間に基づいて適切なストレージ オプションを選択してください。 Oracle が公開している VM イメージを使用して Azure で Oracle Database を迅速に立ち上げて実行する方法の手順については、「Azure VM での Oracle Database の作成」を参照してください。

Microsoft Azure 上に Oracle VM イメージをデプロイする

このセクションでは、Azure Marketplace で Oracle によって公開されている仮想マシン (VM) イメージに基づく Oracle ソリューションについての情報をカバーします。 現在使用可能な Oracle イメージの一覧を取得するには、Azure CLI または Azure Cloud Shell を使用して次のコマンドを実行します

az vm image list --publisher oracle --output table –all

これらのイメージはライセンス持ち込み型です。 VM の実行によって発生するコンピューティング、ストレージ、ネットワークのコストに対してのみ課金されます。 Azure で一から作成したカスタム イメージに基づくソリューションを構築する、またはオンプレミス環境からカスタム イメージをアップロードすることを選択することもできます。

重要

Oracle ソフトウェアと Oracle との最新のサポート契約を利用するには適切なライセンスが必要です。 Oracle では、オンプレミスから Azure へのライセンス モビリティを保証しています。 ライセンス モビリティの詳細については、「Oracle と Microsoft の戦略的パートナーシップに関する FAQ」を参照してください。

Oracle Linux および WebLogic サーバー上のアプリケーション

サポートされている Oracle Linux イメージ上で、Azure の WebLogic サーバー上のエンタープライズ アプリケーションを実行します。 詳細については、WebLogic のドキュメントである「Azure ソリューションでの Oracle WebLogic サーバーの概要」を参照してください。

WebLogic Server と Azure サービス統合

Oracle と Microsoft は、WebLogic サーバーを Azure Marketplace に Azure アプリケーション オファリングの形式で提供するために共同作業を行っています。 これらのプランの詳細については、「Oracle WebLogic Server を実行するためのソリューションとは」を参照してください。

Oracle WebLogic Server VM イメージ

クラスタリングは Enterprise Edition でのみサポートされています。 Oracle WebLogic Server の Enterprise Edition を使用する場合にのみ、WebLogic クラスタリングを使用するライセンスが付与されます。 Oracle WebLogic Server Standard Edition の場合、クラスタリングを使用しないでください。 UDP マルチキャストはサポートされていません。 Azure は UDP ユニキャストをサポートしていますが、マルチキャストとブロードキャストはサポートしていません。 Oracle WebLogic サーバーは、Azure UDP ユニキャスト機能を利用することができます。 UDP ユニキャストへの依存で最適な結果を得るには、WebLogic クラスターのサイズを静的に保つか、管理サーバーを 10 台以下に保つことをお勧めします。 Oracle WebLogic サーバーでは、T3 アクセスのためのパブリック ポートとプライベート ポートが同じであることが想定されています。 たとえば、Enterprise JavaBeans (EJB) を使用する場合などです。 SLWLS という名前の仮想ネットワーク内で、サービス レイヤー アプリケーションが、2 つ以上の VM で構成される Oracle WebLogic サーバー クラスター上で実行されている多層シナリオを考えてみましょう。 クライアント層は同じ仮想ネットワークの別のサブネットにあり、サービス層にある EJB を呼び出すためにシンプルな Java プログラムを実行します。 サービス層の負荷を分散する必要があるため、負荷分散されたパブリック エンド ポイントを Oracle WebLogic Server クラスター内の VM に作成する必要があります。 指定されたプライベート ポートがパブリック ポートと異なる場合は、エラーが発生します。 たとえば、7006:7008 を使用すると、次のエラーが発生します。どのリモート T3 アクセスの場合でも、Oracle WebLogic サーバーでは、ロード バランサー ポートと WebLogic マネージド サーバーのポートが同じであると想定されているためです。

[java] javax.naming.CommunicationException [Root exception is java.net.ConnectException: t3://example.cloudapp.net:7006:

Bootstrap to: example.cloudapp.net/138.91.142.178:7006' over: 't3' got an error or timed out]

上記の場合、クライアントはポート 7006 (ロード バランサー ポート) へ接続し、管理対象サーバーは 7008 (プライベート ポート) で待機します。 この制限は、HTTP ではなく T3 アクセスにのみ適用されます。

この問題を避けるには、次の回避策のいずれかを実施してください。

  • T3 アクセス専用の負荷分散エンドポイントに対して、同じプライベートおよびパブリック ポート番号を使用します。

  • Oracle WebLogic サーバーの起動時に、次の JVM パラメータを含めてください: configCopy Dweblogic.rjvm.enableprotocolswitch=true

  • 動的なクラスタリングと負荷分散の制限事項。 Oracle WebLogic Server で動的クラスターを使用し、Azure 上の単一のパブリック負荷分散エンドポイントを介して、それを公開すると仮定します。 このアプローチは、範囲から動的に割り当てられるのではなく、固定のポート番号をそれぞれの管理対象サーバーに使用し、管理者が追跡記録しているマシンより多く管理対象サーバーを起動しない限り、実現できます。 1 つの VM に対するマネージド サーバーが複数にならないようにする必要があります。 設定の結果、起動する Oracle WebLogic Server の数が VM より多くなる場合、指定したポート番号に複数の Oracle WebLogic Server インスタンス サーバーをバインドすることはできません。 つまり、複数の Oracle WebLogic Server インスタンスが同じ仮想マシンを共有している場合、その VM 上の他のインスタンスは失敗します。 管理対象サーバーに個別のポート番号を自動的に割り当てるように管理サーバーを設定した場合、負荷分散はできません。そのような設定では、単一のパブリック ポートから複数のプライベート ポートにマッピングする必要がありますが、Azure ではサポートされていないためです。

  • VM 上の Oracle WebLogic Server の複数のインスタンス。 デプロイ要件によりますが、VM が十分に大きい場合、同じ VM 上で複数の Oracle WebLogic Server のインスタンスを実行することを検討できます。 たとえば、2 つのコアを持つ中規模のサイズの VM では、Oracle WebLogic Server で 2 つのインスタンスを実行できます。 ただし、アーキテクチャに単一障害点を導入しないことをお勧めします。 1 つの VM 上で複数の Oracle WebLogic Server のインスタンスを実行することは、そのような単一点になります。

より良いアプローチは、少なくとも 2 つの VM を使用することです。 それぞれの VM で、複数の Oracle WebLogic Server のインスタンスを実行できます。 それでもなお、Oracle WebLogic Server の各インスタンスは同じクラスターの一部にすることができます。 ただし、今のところ、同じ VM 内の Oracle WebLogic Server のデプロイによって公開されるエンドポイントの負荷を Azure で分散することはできません。 Azure Load Balancer では、負荷分散されたサーバーを一意の VM 間で分散する必要があります。

高可用性とディザスター リカバリーのオプション

Azure で Oracle ソリューションを使用する場合、お客様にはいかなるダウンタイムも回避するために高可用性とディザスター リカバリー ソリューションを実装する責任があります。 Data Guard、Active Data Guard、または Oracle GoldenGate を使用することで、Oracle Database Enterprise Edition のための高可用性とディザスター リカバリーを実装することもできます。 このアプローチでは、2 つの個別の VM 上に 2 つのデータベースが必要です。これらは、プライベートの固定 IP アドレスを介して相互にアクセスできるようにするために、同じ仮想ネットワーク内に存在する必要があります。

VM を同じ可用性セットに配置して、Azure がそれらを個別の障害ドメインやアップグレード ドメインに配置できるようにすることをお勧めします。 地理的冗長性を実現する必要がある場合は、2 つの異なるリージョン間でレプリケートするように 2 つのデータベースをセットアップし、2 つのインスタンスを VPN Gateway で接続することができます。 Azure での基本的なセットアップ手順については、「Azure Linux 仮想マシンに Oracle Data Guard を実装する」を参照してください。

Oracle Active Data Guard を利用すると、1 つの VM にプライマリ データベースを置き、もう 1 つの VM にセカンダリ (待機) データベースを置き、その間に一方向のレプリケーションを設定することで高可用性を達成できます。 データベースのコピーへのアクセスを結果として読み込みます。 Oracle GoldenGate では、2 つのデータベース間に双方向レプリケーションを構成することができます。 これらのツールを使用してデータベースに高可用性ソリューションを設定する方法については、「Active Data Guard および GoldenGate」をご覧ください。 データベースのコピーの読み書きアクセスが必要な場合、Oracle Active Data Guard を利用できます。

Azure での基本的なセットアップ手順については、「Azure Linux 仮想マシンに Oracle Data Guard を実装する」を参照してください。

Azure NetApp Files の可用性ゾーン ボリューム配置を、ゾーンをまたがる HA アーキテクチャ用の Oracle Data Guard と組み合わせて使うと、Oracle データベースの高可用性を効果的に実現できます。 または、Data Guard ライセンスのコストを削減し、セカンダリ ゾーンで VM を実行するには、Azure NetApp Files のストレージ ベースのレプリケーション機能を使用できます。 Azure NetApp Files のボリュームは、同じ方法で任意の可用性ゾーンに配置してから、ゾーン間レプリケーションを使ってリージョン内のゾーン間で (または、リージョン間レプリケーションを使って別のリージョンに) レプリケートできます。

Azure で高可用性とディザスター リカバリー ソリューションを設計することに加えて、データベースを復元するためのバックアップ戦略を立てる必要があります。

Oracle ワークロードをバックアップする

Azure VM 上の Oracle ではさまざまなバックアップ戦略を使用できます。その他のバックアップ オプションを次に示します。

Oracle アプリケーションを Azure 上に展開する

Terraform テンプレート、AZ CLI、または Azure Portal を使用して、Azure インフラストラクチャを設定し、Oracle アプリケーションをインストールします。 また、Ansible を使用して VM 内で DB を構成します。 詳細については、Azure での Terraform に関するページを参照してください。

Oracle は、Oracle Cloud 相互接続ソリューションで Azure を使用して Oracle データベースに接続するときに、次のアプリケーションを Azure で実行することを認定しています。

  • E-Business Suite
  • JD Edwards EnterpriseOne
  • PeopleSoft
  • Oracle Retail アプリケーション
  • Oracle Hyperion Financial Management

OCI や他の Azure サービスと接続するカスタム アプリケーションを Azure にデプロイできます。

JD Edwards のサポート

Oracle のサポートによると、JD Edwards EnterpriseOne バージョン 9.2 以降は、それぞれに固有の、最小限の技術面の要件 (MTR) を満たす "すべてのパブリック クラウド オファリング" でサポートされています。 オペレーティング システムおよびソフトウェア アプリケーションの互換性の MTR 仕様に準拠したカスタム イメージを作成する必要があります。 詳細については、ドキュメント ID 2178595.1 に関するページを参照してください。

ライセンス

Azure での Oracle アプリケーションのデプロイは、ライセンス持ち込みモデルに基づいています。 このモデルでは、Oracle ソフトウェアを使用するライセンスを持っていて、Oracle と現在サポート契約を結んでいることを前提としています。 Microsoft Azure は、Oracle Database を実行するための承認されたクラウド環境です。 Oracle Core Factor テーブルは、クラウドで Oracle Database をライセンス契約する場合には適用されません。 詳細については、「Oracle Processor コア係数表」をご覧ください。 代わりに、Enterprise Edition のデータベースでハイパースレッディング テクノロジが有効になっている VM を使用するときは、ハイパースレッディングが有効になっている場合は、ポリシー ドキュメントに記載されているように、1 つの Oracle プロセッサ ライセンスと同等の 2 つの vCPU をカウントします。 ポリシーの詳細については、「クラウド コンピューティング環境での Oracle ソフトウェアのライセンス」を参照してください。
一般に、Oracle Database には、より高いメモリと I/O が必要です。 このため、これらのワークロードには、メモリ最適化済み VM を使用することをお勧めします。 ワークロードをさらに最適化するには、Oracle Database のワークロード対応の制約付きコア vCPU を使用することをお勧めします。これは、高メモリ、ストレージ、I/O 帯域幅が必要ですが、コア数を多く必要としません。 Oracle ソフトウェアとワークロードをオンプレミスから Microsoft Azure に移行する場合、Oracle からライセンス モビリティが提供されています。これについては、「Oracle and Microsoft Strategic Partnership FAQ (オラクルと Microsoft の戦略的パートナーシップに関するよくある質問)」に記載されています。

次の手順

Microsoft Azure 内の VM イメージに基づいた最新の Oracle データベースおよびソリューションの概要について説明しました。 次の手順では、Azure で最初の Oracle データベースをデプロイします。