分散データベースに関する技術概要
プライベート・クラウドの意義
プライベート・クラウドの出現は、クラウド技術を従来のコモディティ・ハードウエアによる大規模クラスタに付随する位置付けから解放する、という意味で重要な変化ではないかと考えます。
これは、クラウド技術が、「Amazon EC2/S3 や Google AppEngine を利用するための技術」から「従来のクラスタと同等規模のクラウドからAmazonやGoogleといったクラウド・サービスが提供するインフラストラクチュアへとシームレスに移行できること保証する技術」へと変質しつつあることを意味します。
すなわち、今後のアプリケーション開発ではクラウド・システムを想定して開発を進めておけば、コスト・メリットが期待できるパブリック・クラウドでの運用にも、セキュリティーなどの保全が容易なプライベート・クラウドでの運用にも容易に対応できるということです。
現在、メーカー各社がクラウドの名の下に製品開発を急いでいるのは、このようにクラウド・システムが新たな基盤技術として定着することを期待しているからだと推測することができます。
クラウド環境の問題点
では、今後発表されるクラウド対応製品は、従来のシステム開発にどのようなインパクトを与えるのでしょうか。
クラウド技術として現在注目を集めている仮想化技術は、主にシステム構築方法に対して大きな影響を与えることになります。従来は、物理的なハードウエアであったサーバーが仮想化されるわけですから、運用上の柔軟性を手にする見返りとして管理面での複雑化は受け入れざるを得ないでしょう。しかしながら、既存のクラウド対応製品は、独自の管理ツールをサポートすることにより、この問題に対する対応策を既に用意しているように見えます。
情報システムのクラウド化の流れの中で、より大きなインパクトを与える可能性があるのは、クラウド特有の分散データベースなのではないかと筆者は想像しています。
データベースと言うと、多くの方がSQLをサポートするRDBMSをイメージされると思いますが、RDBMSは、実はクラウド環境であまりうまく動作しません。これは、従来のRDBMSがトランザクション処理を前提に設計されており、クラウド環境では必須とされるスケーラビリティの実現が、技術的に困難であることに起因します。
今日のRDBMSでも分散環境に対応する機能はサポートされていますが、スケーラビリティは数ノードから数十ノードといった程度が一般的だと思います。これはRDBMSのACIDセマンティックスを維持するためには、トランザクションをネットワークを介して全てのデータベースにコミットする必要があるため、ノード数が増えすぎると現実的な速度で処理できないことによります。つまりRDBMSは原理的にスケールしにくい特性を持っています。