クラウドの時代に合わせて進化する「新しいデータベース」の姿とは?
機能的にも性能的にも一定の成熟を迎えたかに見えるリレーショナルデータベース(RDB)ですが、クラウドという新しい稼働環境の登場によって、クラウドに最適化する方向へと新たな進化を開始しました。その目指す方向と進化の内容とはいかなるものでしょうか。
現在の業務システムで使われている商用リレーショナルデータベースが登場したのは、1980年代後半にUNIXを中心としたオープンシステムのブームがやってきた頃と期を同じくします。
登場当初こそ、処理速度や信頼性などに課題を抱えていたリレーショナルデータベースでしたが、1990年代にはツーフェーズコミットによる分散トランザクションの実現とそれに伴う複数サーバーによるクラスタ構成への対応など、機能面および性能面で大きな進化を遂げました。
そして現在、「Oracle Database」や「SQL Server」、「Db2」などの商用データベースはいずれもリレーショナルデータベースの基本的な機能はもちろん、分散処理やインメモリ処理などの大規模かつ高速な処理性能を実現し、ミッションクリティカルな基幹業務にも対応しています。
現在の商用リレーショナルデータベースは、オンプレミスにおいては機能面でも性能面でも十分に成熟した域に達していると言えるでしょう。
クラウドという新しい稼働環境の登場
しかし2010年代になると、リレーショナルデータベースは新しい稼働環境を得ます。それがクラウドです。
クラウドは、国境さえも越えて広がるデータセンター群の中で稼働する大量のサーバー群と、事実上無限のストレージ容量にデータを保存することができます。これはオンプレミスとは大きく異なる稼働環境です。そしてリレーショナルデータベースは、このクラウドに適した進化を新たに辿り始めようとしています。
いくつかの例を見てみましょう。
2014年に発表されたAmazon Auroraは、MySQL互換で商用データベース並みの性能と機能を実現するという。
可用性の考え方と規模を変えたAmazon Aurora
「Amazon Web Services」(AWS)が2014年に発表した「Amazon Aurora」は、MySQL互換で商用リレーショナルデータベース並みの性能と機能を実現するとされており、さらにデータベースエンジンがクラウド専用に開発されました。
クラウドに最適化された分かりやすい実装の例として、Amazon Auroraは標準で3つの“アベイラビリティゾーン”にまたがって稼働する点が挙げられます。
従来のオンプレミス用のリレーショナルデータベースでは、可用性を高めるために複数のサーバーを束ねてクラスタ化することで、「あるサーバーが落ちてもほかのサーバーが生き残っているため、システム全体としては稼働し続ける」ことを実現しています。しかしオンプレミスでは、基本的にすべてのサーバーは同じラックやサーバールームに格納されているので、例えばラックごと、あるいはデータセンターごとに、事故などが起きて電源が落ちてしまったというときには、サーバーが全滅し、システムの稼働をあきらめざるを得ません。
ところが、Amazon Auroraは3つのアベイラビリティゾーン、すなわちそれぞれ数キロ程度離れた場所に存在し、独立した建物、設備や電源などを備え、高速なネットワークで接続された3つの別々のデータセンターにまたがって1つのリレーショナルデータベースが稼働しているのです。
つまり、万が一、あるサーバーが落ちても、ほかのサーバーが稼働し続けることでシステム全体が稼働し続けるのはもちろんのこと、あるデータセンターが丸ごと破壊されたとしても、ほかのデータセンターが生きている限り、Amazon Auroraは稼働し続けることができるのです。
クラウドに最適化されたAmazon Auroraの可用性は、従来のオンプレミスを想定したリレーショナルデータベースの持つ可用性の考え方や規模を大きく塗り替えるものとなっています。
Amazon Auroraの発表時のスライドから。Amazon Auroraは標準で3つのアベイラビリティゾーンごとに 2つのデータコピーを持つため、6多重化されている。
地球規模に広がるGoogle Cloud Spanner
Googleが2017年2月に発表した「Google Cloud Spanner」は、さらに規模が拡大し、全地球規模に分散したリレーショナルデータベースとされています。
もはやこの規模になると、光のスピードを上限とする通信速度では分散処理のための通信に時間がかかりすぎるため、従来のリレーショナルデータベースで用いられていた分散処理技術とは大きく異なる技術を使って構築されています。
その一例が原子時計の採用です。
Google Cloud Spannerでは、例えばすべてのサーバーの時刻をGPSと原子時計を用いて正確に同期し、すべてのトランザクションに厳密なタイムスタンプをつけることで、地球規模の分散環境におけるトランザクションの順番や一貫性の保証を実現しています。
Google Cloud Spanner発表時のスライドから
完全自動化を実現するOracle Autonomous Database
AWSやGoogleといったクラウドに大きな強みを持つベンダーが、クラウドスケールの分散環境に適合したリレーショナルデータベースの進化を推し進める一方で、従来のオンプレミスにおけるリレーショナルデータベース市場のリーダーとみなされてきたオラクルは、別のアプローチでクラウド時代のリレーショナルデータベースに取り組んでいます。
それはデータベース運用の完全自動化です。
2017年10月にオラクルが発表した「Oracle Autonomous Database」は、これまで管理者が行う作業だったデータベースの運用作業、例えばバックアップ、セキュリティパッチの適用、チューニング、ディザスタリカバリの設定、障害時の対応といったさまざまな作業を、データベース自身が自動的に実行するようになります。
同社の創業者兼CTOであるラリー・エリソン氏は、これを「世界初の100%自動化された自律的なデータベース」と説明しました。
運用自動化の背景には、オンプレミスでのデータベース運用で蓄積してきた同社のノウハウを含め、さまざまな条件での運用状況を機械学習によってコンピューターが学習できたことがあります。
これも大量のコンピューティングパワーを利用可能なクラウドが実現させたものと言えるでしょう。
Oracle Autonomous Databaseを発表するラリー・エリソン氏
クラウドベンダーによるRDB選択肢の拡大
これまで企業向けの商用リレーショナルデータベースは、オラクル、マイクロソフト、IBMといった少数の有力ベンダーが市場をほぼ独占してきました。
しかしクラウドの時代に入るとともに、クラウドに最適化した形で再びリレーショナルデータベースが進化を始め、従来からのベンダーにクラウドベンダーも加わる形で選択肢が増えてきています。
ただし、今も昔も変わらないのは、いったんデータベースを決めて運用を始めると、ほかの製品への移行がきわめて難しくなるということです。そのシステムにとって何が最適なリレーショナルデータベースなのかは、これまでと同様、あるいは選択肢が広がったことで従来以上に、慎重な見極めが求められることになりそうです。
※このコラムは不定期連載です。
※会社名および商標名は、それぞれの会社の商標あるいは登録商標です。
-
新野淳一/Junichi Niino
ブログメディア「Publickey」( http://www.publickey1.jp/ )運営者。IT系の雑誌編集者、オンラインメディア発行人を経て独立。新しいオンラインメディアの可能性を追求。