オラクルクラウド(OCI)のDBCSがSIにもたらす価値とは [OCI]

1.はじめに

 昨年からOCIを本格的に使い始めて、試験環境を構築・運用していく中で、改めてOCIの良いところ・課題について感じたところをいくつか書き留めておきたい。いままで、オンプレExadataの運用経験はあれど、SIの中でクラウドになって結局何が良いの?というところは見方や立場によるところも大きいと思う。ここではDBエンジニアの立場から、SIのプロジェクトでOracleデータベース(DBCS)を使う上で、オンプレからクラウド(OCI)になることでもたらされる特筆すべき価値について考えてみたい。かなり主観的な見方ではあるが、ここでは、以下の点について記載したい。

(1)環境構築の短期化
(2)必要な機能が予め準備済み
(3)PoC検証が容易
(4)ライセンスの有効活用
(5)概ね必要十分な性能
(6)ストレージ領域のスモールスタート、必要に応じて利用・停止

2.OCI・DBCSがSIにもたらす価値

(1)環境構築の短期化

 まず、環境構築の短期化は特筆すべきことだろう。OCIのコンソールから、DBCSのインスタンスを構築するのは画面に必要事項を入れるのみで、入力する項目がきまっていればものの30分~1時間程度で利用可能なインスタンスが構築することが可能である。オンプレでは、データセンタのラックの前で、DVD等に焼いたメディアを持ち込みrunInstallerをはたいてインストーラでポチポチしていたが、もはや必要ない。追加パッケージもインターネット経由で簡単に導入できる。

 実際のところ、上記で完了するのはあくまでもCDBと1PDBだけで、追加のPDBは自分で作成する必要があるのと、通常の業務が使えるようにスキーマ、ディレクトリ(オブジェクト)、リスナーやtnsnames.ora、領域等の追加構築が必要になることは言うまでもない。それでもこの部分は従来職人技的な部分もあり(カーネルパラメータや必要パッケージ、OS周りの設定など)、正直ここをおまかせできるのはかなりありがたい。

 しかし、SIにおいて業務向けに環境を開放するまでのリードタイムが劇的に短縮されるかというと、そういう訳ではないと思っている。そもそも構築前に詳細設計、パラメータ設計の工程を踏むのが一般的で、この期間は実はあまり変わらないと思っている。クラウドだけに、設計上はクラウドサービスの仕様を理解し、それを取捨選択し、設計に落としていく必要があり、これはそれなりに時間がかかる。ベースの設計ができて構築フェーズに入れば、効率的に構築ができるので、たとえDB数が多くても、短期間で環境を開放してくことができる、という感覚である。プロジェクト計画上は、クラウドとはいえ、はじめの設計と構築まではしっかりと時間をとることが肝要かもしれない。

(2)必要な機能が予め準備済み

 DBとして必要な機能はおおむねOCIにそろっている。バックアップ、(性能)監視、ログ管理、データ同期(GG)など、必要に応じて使えばよい。当然、それぞれ設計要素はあるが、いずれも構築に関する要素はほとんどないように感じている。このあたりはオンプレは毎回スクラッチで設計から作りこむことが多く、それなりに手間もかかる部分である。設計の自由度に制約はあるかわり、80点の構成があらかじめ用意されており、ほぼ作りこみなしで使える点は評価したい。

 性能監視のDBManagementは簡易なEMのような感覚でSQLモニタリングを見ることができるので、最低限の解析はこれでできてしまう。データ同期はOracle GoldenGateのマネージドサービスを利用した。これも画面上でextractとreplicatのプロセスを定義し、同期対象テーブルの設定を行う。エージェントレスなので、DBサーバへのインストール作業は不要である。

 もちろん、作りこむ必要がない訳ではない。例えば、バックアップはデフォルトの自動バックアップ機能ではなく、オブジェクトストレージのバケットを追加し、DBサーバからマウント(s3fs)し、RMANのバックアップ出力先をそこに指定した。これにより、ノーアーカイブログ運用でも手動で任意のタイミングでコールドバックアップを取得できるようになる。ちなみに、このオブジェクトストレージをマウントする構成は、参考[1]のドキュメントが参考になる。

(3)PoC検証が容易

 DBの設計上、検証しないとわからないようなケースに遭遇することが多々ある。例えば、新しいバージョンの新機能や、新規要件に対する実現方式検討、運用改善や性能に関する設計見直し等の検討は、机上で結論を出すことは極めて難しい。このような場合に、簡単なモデルで実機にて早期に動作確認できるのは、クラウドの大きな利点だろう。特にオンプレでは、このようなアドホックな検証に利用するための環境がないことが多く、本格的な検証をするためにはベンダの検証環境を一時的に借用したりと、かなりの調整が必要だった経験がある。クラウドを利用すれば、サーバの台数、リソース、ネットワーク構成から、自由に検証環境構成を作ることができ、かつ、使い終わったら停止しておけば最小限のコストで設計の品質向上を図ることができる。実際にPoCで検証した例を挙げると、以下のようにDBCS単体では完結しないような検証に有用であることがわかる。

・異機種DB(DB2, SQL Server)へのDBLINK、CDC構成(QlikReplicate)
・DBオンライン性能検証(マルチクラウドのAPーDBのNWレイテンシ確認)
・DB移行方式検証(DB2からOracle等)

(4)ライセンスの有効活用

 DBCSのライセンス体系はオンプレのように、SE2かEE+オプションの2択ではなく、SE、EE、EE-HP、EE-EPの4択となる。パーティショニングが必要な状況では、最低EE-HPライセンスが必須となる。このライセンスは以下のオプションを含んでいる(詳細は参考資料[2]参照)。

・マルチテナント
・パーティショニング
・アドバンスト・コンプレッション
・Diagnostic & Tuning Pack(※)
・RAT(Real Application Testing)(※)
 ※:EEから利用可能なオプション

 オンプレではこれら個々のオプションに対して、CPUコア数に応じたコストがかかるため、よほど必要性が明確でない限り購入することは困難であった。しかし、クラウドになりこれらのオプションが含まれているとなると、むしろ利用しない方が損である。例えばRATについては、SPA(実行計画の比較機能)やDB Replay(性能試験のワークロードをキャプチャ・再生)の有用性は理解するものの、利用するためにはそれなりの技術者が必要であり、なかなか現場で積極的に利用しているのを見たことがない。

 クラウド利用のDB(Oracle)技術者は、ライセンスがないことを理由にできなくなる点、これまで以上にこれらの機能を積極的に活用していくスキルが求められるだろう。

(5)概ね必要十分な性能

 私の理解する限りでは、DBCSの性能は、手組のオンプレ環境(一般的なIAサーバとSANストレージをFC接続する構成等)と比べても、かなり優秀だと考えている。その理由はシングルブロックリード(db file sequential readの待機イベント)のレイテンシである。

 オンプレ環境であれば、SANストレージへのシングルブロックリードは通常数msec(概ね2~3msec)でもあまり違和感はない。Exadataであれば、私が直近経験したのはX7-2(ハーフ)で0.3~0.7msecの感覚である。これに対して、DBCSでオンライン性能を計測した際に確認したシングルブロックリードは0.7msec程度のレイテンシであった。

 もちろん負荷は低い状態ではあるが、これはかなり良いと感じている。オンプレのDBサーバのAWRを見ると、Top10待機イベントで、DB CPUの上にこの待機が出ているケースを見たりする。このような場合は、DBCSにするだけでIO待ちが1/3になるので、APの改修なしにクエリのパフォーマンスが改善するだろう。

(6)ストレージ領域のスモールスタート、必要に応じて利用・停止

 開発・試験環境のDB領域は時間とともに育っていくため、必要なストレージ領域は後工程になるほど本番環境に近くなっていく。オンプレの時は、どの環境にどの程度のストレージ領域が必要かをあらかじめ設計して、その範囲の中で試験を行ってきた。

 これに対してクラウドでは、必要に応じてストレージ領域(ASMのDG)の拡張が容易に可能なため、初期の段階では設計上の上限サイズより小さく領域を作成しておき、試験データの大きさに応じて、領域を拡張していく、という考え方ができる。もちろん、拡張する方向にしかできないが、長期間のプロジェクトではストレージ領域コストを削減することができるだろう。

 オンプレでは基本的に投資した設備を遊ばせておく論理はないので、このような発想はクラウドならではだろう。領域拡張に関してはオンラインでできることも運用上嬉しいポイントである。

3.おわりに

 本稿では、DBエンジニアの立場から、SIのプロジェクトでOracleデータベース(DBCS)を使う上で、オンプレからクラウド(OCI)になることでもたらされる価値について考えてみた。かなり主観的・抽象的な内容ではあるが、SIの現場においてオンプレからどのような発想の転換が必要となるか、という点について参考になれば幸いである。

◆参考

[1]Oracle Cloud Infrastructure - How to Mount an ObjectStorage Bucket as Filesystem in Oracle Linux 7 (Doc ID 2577407.1)
[2]DBCSサービス概要のご紹介
 https://speakerdeck.com/oracle4engineer/oracle-base-database-service

以上
コメント(0)