土曜日, 9月 01, 2018

クラウド環境でOracle Databaseを利用するには

以前、一度IaaS環境でのOracle利用について纏めました。
【クラウドサービス動向その3】IaaS環境上でOracleを利用するには 2016年10月24日

それからかなり時間も立ったので、再度最新の状況について整理しておきたいと思います。

まず前提として、Oracle Database(以下、Oracle)を冗長化された仮想環境で利用することはなかなかハードルが高いです。というのも、Oracleのライセンスカウントは基本的に物理プロセッサにかかるため、冗長化された仮想環境の場合、Oracleがインストールされている仮想マシンが稼働する可能性のある全ての仮想ホスト(物理サーバ/プロセッサ)に対してライセンスの購入が必要になります。

サーバー仮想化ソフトウェア( Oracle VM 、VMware、Hyper-Vなど)を使用した場合のライセンスカウントはどのようになりますか? 日本オラクル 製品価格/ライセンス情報 FAQ
Q.サーバー仮想化ソフトウェア( Oracle VM 、VMware、Hyper-Vなど)を使用した場合のライセンスカウントはどのようになりますか? 
A.VMware、Hyper-VなどはSoft Partitioningの分類となり、Oracle製品がインストールされる(又は稼働する)物理サーバーに搭載されている全ての物理プロセッサがライセンスカウントの対象となります。
※Oracle製品がインストールされる(又は稼働する)仮想マシン(VM)の数は、必要ライセンス数には関係ありません。
 この稼働する可能性のある仮想ホストというのが厄介です。例えば、5台の仮想ホストがそれぞれ2プロセッサ搭載しているとします。この仮想ホスト5台でクラスタを組んだ場合、1台でもOracleをインストールした仮想マシンが配置されると、5台✕2プロセッサ分のライセンスを購入する必要があります。これはSE2の場合で、EEだとコア数で計算するので更に高額になります。ただ、これはまあ分かります。(納得はいきませんが)

では、このOracleライセンス問題があるので、仮想ホスト5台ではなく2台と3台でクラスタ構成にし、仮想ホスト2台の方でOracle仮想マシンを稼働させた場合はどうでしょうか?この場合、2台✕2プロセッサライセンスで良い気がしますよね?ところがどっこい、例えばこの仮想ホスト5台が1セットのストレージで接続されていたりすると、HA以外の方法、例えばVMwareの場合はStorage vmotion等々で移動することできるよね、ということでやはり5台✕2プロセッサ分必要になるのです。ただ、これはOracle側の承認のさじ加減もかなりあるのですが、正直最近はとても厳しいです。段々と主流になりつつあるHCIなどは更に構成が1つとして見なされる可能性が高いと思われます。

ということで、そもそも冗長化された仮想環境でOracleを利用することが難しくなっています。なお、このルールはSoft Partitioning(VMware、Hyper-Vなど)に適用され、、Hard Partitionin(Oracle VM Server、SAN Boot構成など)には適用されません。
Oracle社の俺様ルールな気もしますが、そうなっています。

Soft PartitioningとHard Partitioningの違いは以下の資料をご参照下さい。
Oracle Partitioning Policy

ここまでの説明で、冗長化された仮想基盤の塊であるクラウド環境でOracleを利用することのハードルの高さをご理解頂けたのではないでしょうか。では、ここから本題のクラウド環境でOracleを利用する方法を纏めていきます。
なお、ここで記載している事項は2018年9月1日現在の内容となります。特にライセンスの考え方については変わることがあるので、必ず購入元にご確認をお願いします。

1.Oracleが承認したクラウド環境(AWS、Azure)を利用する

クラウドに関わっている方であればご存知かとは思いますが、超メジャークラウドであるAWSとAzureについてはOracleを仮想マシン上で利用することが可能です。AWSに至っては、DBのマネージドサービスであるRDSでOracleも提供しています。
なぜこの2つのクラウドがOracleを利用することが出来るのかというと、Oracle社が認めているからです。

クラウド・コンピューティング環境における Oracle ソフトウェアのライセンス Oracle
本資料は、以下のベンダーが提供するクラウド・コンピューティング環境に適用されます:
Amazon Web Services  Amazon Elastic Compute Cloud (EC2), Amazon Relational Database Service (RDS)
Microsoft Azure Platform
(以下、これらを「承認されたクラウド環境」と表記します)
本ポリシーは、これらのOracle製品プログラムに適用されます。
承認されたクラウド環境におけるOracleプログラムのライセンス許諾の際には、以下のようにカウントする必要があります。
  •  Amazon EC2 and RDS  ハイパースレッディングが有効の場合 2 vCPU = 1 Processor,ハイパースレッディングが無効の場合 1 vCPU = 1 Processor
  • Microsoft Azure  ハイパースレッディングが有効の場合 2 vCPU = 1 Processor,ハイパースレッディングが無効の場合 1 vCPU = 1 Processor
なお、承認されたクラウド環境において Oracle Processor ライセンスをカウントする場合、Oracle Processor Core Factor Table は適用されません。 
製品名称にStandard Edition One、Standard Edition 2もしくはStandard Editionが付くプログラムが許諾される場合、インスタンスのサイズに基づく価格設定がなされます。承認されたクラウド環境のインスタンスが4 Amazon vCPU以下の場合、もしくは、4 Azure vCPU以下の場合は、1ソケット、すなわち1 Processorとしてカウントされます。承認されたクラウド環境のインスタンスが4 Amazon vCPUもしくは4 Azure vCPUを超える場合は、Amazon vCPU数もしくはAzure vCPU数を4で割り、小数点以下を切上げてソケット数を計算します。
ハイパースレッディングが有効かどうかは、仮想マシンのインスタンスタイプによって異なりますので、確認が必要です。例えば、Azureの場合はDSv2までは無効でしたが、DSv3からハイパースレッディングが有効になりました。

このようにAWS、Azure環境上ではOracleを利用することが可能です。ライセンスの数え方が変わったり、AzureのOracleライセンス込みのイメージが急遽停止になったりなど色々騒ぎになったこともありましたが、現在はこの様になっています。ただ、RACなど一部の機能は利用できないため、大規模なOracle環境、高可用性が必要なOracle環境を動かすのはあまりオススメしません。

2.Oracle Cloudを利用する

Oracle社としての大本命は、Oracle社のクラウドサービスであるOracle Cloud環境でOracleを利用してもらうことでしょう。Oracle Cloud環境ではIaaS上でも勿論Oracleライセンスを持ち込み利用することができますし、Oracleのマネージドサービス(DBaaS)を利用することも可能です。Oracle CloudのDBaaSであるDatabase Cloud Serviceでは、なんとRAC構成も組むことができます(割高ですが)。更に以前このブログでも取り上げましたが、Autonomous Database Cloudという自動化されたOracleも提供されています。

【クラウドサービス動向その5】Oracle Innovation Summit Tokyo 2018に行ってきました①

Oracle Cloudで提供されるDBaaSであれば信頼性もパフォーマンスもでそうなので、大きなDBも動かせると思われます。(まだ大きい構成は触っていないので、思われますという表現ですが。。。)これまでは日本国内では富士通環境で提供されている第1世代のOracle Cloudだけしか利用できませんでしたが、近々Oracle社が提供する第2世代が利用できるリージョンが国内でオープンします。そうなると、Oracleを多く利用しているユーザのクラウド化の向き先が変わるかもしれません。

少し余談ですが、Oracle Cloud IaaS環境でのOracleライセンスの数え方はAWS、Azureとは変わります。

Oracle Processor Core Factor Table 補足資料 Oracle

Oracle Cloud 上で稼働する Oracle ライセンスについて:
Oracle Cloud 上に永久ライセンス、もしくは期限付きライセンスを持ち込み、インストールする場合
例: Oracle Java Cloud Service 上にインストール/稼働する Oracle SOA Suite for Oracle Middleware ライセンス(Oracle Cloud ドキュメント上で認定されたプログラムリスト参照)
Oracle Cloud 上での使用を満たす数量の契約ライセンスが必要です。
具体的には、Processor ライセンスは以下の比率で Oracle Cloud に持ち込むことが可能です。
- 1 Processor ライセンスあたり 2 OCPU 上で当該プログラム使用可能 (1 Processor:2 OCPU)Named User Plus(NUP) ライセンスを Oracle Cloud に持ち込む場合、Cloud でプログラムを使用するために十分な数の NUPライセンスが必要です。つまり、実際のユーザー数か、Processor ごとの最少ユーザー数の、どちらか多い方の数量の NUP ライセンスが必要です。
- 1 Processor あたりの最少ユーザー数が 25 のプログラムの場合、2 OCPU ごとに 25 NUP ライセンスが必要
- 1 Processor あたりの最少ユーザー数が 10 のプログラムの場合、2 OCPU ごとに 10 NUP ライセンスが必要 
契約ライセンス名称に Standard Edition One, Standard Edition 2、もしくは、Standard Edition が含まれる場合(WebCenter Enterprise Capture Standard Edition、Java SE Support, Java SE Advanced、Java SE Suite 各製品を除く) 、 Oracle Compute Units(OCPU)上におけるライセンスは以下比率が適用されます。
- Processor ライセンスはソケットとしてカウントしているとみなし、1 Processor ライセンスあたり 4 OCPU 上で当該プログラム使用可能(1 Processor: 4 OCPU)
1 Sever あたりの最少ユーザー数が 10 NUP ライセンスである Standard Edition 2 の NUP 最少ユーザー数については、a) 実際に使用しているユーザー数 b) 8 OCPU ごとに最少ユーザー数 10 NUP ライセンス のどちらか多い方の数量の NUPライセンスが必要です。また、インスタンスが 8 OCPU を下回る場合も、最少ユーザー数は 10 NUP が必要です。
1OCPU=2vCPU(ハイパースレッディング有効)なので、AWS、Azureの半額ということになりますね。なんかずるい気もしますが、各社自分たちの強みを生かして自社クラウドへの囲い込みを行っている流れなので、仕方がないのかもしれません。

3.Oracle部分だけハウジング、もしくはホスティングにする

最後の方法としてはOracle部分はクラウドではなく、データセンタに置いておく、という作戦です。クラウド環境でOracleを利用するには、というタイトルと反する方法な気もしますが、これはこれで有効な方法です。というのも、国産クラウドの多くはクラウド環境を提供しているデータセンタでハウジングやホスティングも提供しており、構内接続をすることで容易にハイブリッドクラウド環境を利用できるようにしています。勿論、AWS、Azureも専用線接続サービスを提供しているので、ネットワーク通信費用を度外視すればこれらのサービスとの組み合わせでも実現可能です。

Oracle Cloudで大きなDBを構築できるとご紹介したものの、だ新しいサービスであるため、高可用性や高信頼性が求められる環境をいきなり実績のないサービスに移行できるのか、という課題があります。その場合、一旦DBに関しては従来型の物理Oracleでというのも検討する価値はあるかと思います。

ちなみに、Oracleを持ち込むことができないGoogle Cloud Platform(GCP)ですが、アクセンチュアのOracleサービスにGCP環境を接続させることで、Oracleが利用できるようになるよ、というサービスを始めます。これも似た考え方ですよね。

GCPでOracleが実行可能に、Googleが発表した「3つのハイブリッドクラウド」 TECH.ASCII.jp 2018年08月06日

最後になりますが、Oracleがある環境のクラウド化を進める一番わかり易い方法はOracleをやめる、ということなのかもしれません。Oracleは高コストですし、ライセンスの考え方が変わるリスクもありますからね。しかし、DBを変えるのはかなり大変な作業です。特にOracleの場合はたくさんのストアドプロシージャが組み込まれていたりして、簡単に変えられないことも多いかと思います。また、Oracleを利用する前提のパッケージもたくさんあります。そんな環境でも、ぜひクラウドのメリットを享受するため、クラウド化を勧めて頂ければと思いますし、この記事が少しでも参考になれば嬉しいです。

0 件のコメント: