グーグルは2011年10月7日に「Google Cloud SQL」のサービス開始を発表しました。Google Cloud SQL(以降、Cloud SQL)は、「Google App Engine」(以降、GAE)から利用できるRDB(リレーショナルデータベース)アクセス機能で、RDBとしてMySQLを使用します。これまでGAEで使用できるデータストアは、いわゆる「NoSQL」の「Bigtable」だけでしたが、これでNoSQLとSQLの両方が使えるようになったわけです。
Cloud SQLのりリースは、ここ数年グーグルが指向していた、エンタープライズチャレンジの中に位置付けられます。クラウドは、ここ数年来大変話題を呼んでおり、また実際にクラウドを使用したWebサイトも数多く見られるようになりました。しかし、その多くはいわゆるWebサービス系やソーシャル系のアプリケーションで、業務・基幹系でのクラウド利用は、ソーシャル系に比べて進んでいないのが実情です。このような状況の中で、Googleは「App Engine's Enterprise Challenge」を2年ほど前にアナウンスしました(図1)。
しかし、ビジネスアプリケーション、つまり業務・基幹系へのアプローチはそう簡単なものではなく、当初の計画より遅れていましたが、ようやくここに来て、エンタープライズ分野(業務・基幹系)に対する体制が整ってきたようです。
現在グーグルでは、GAEは「エンタープライズレディ(Enterprise Ready)」になったとしています。その内容には99.95%のSLA(Service Level Agreement)、運用開発サポート(Operational Support)、カスタムドメイン上でのSSL、第3者認証(Certification)などがありますが、その中核となるのは、今回アナウンスされたCloud SQLでしょう。
ところで、業務・基幹系でクラウドを使用する際、データストアをNoSQLのBigtableにした場合の主な問題点は、次の3つです。
業務・基幹系の場合、オンプレミスで運用されている既存システムが多く存在し、「部品マスタ」「従業員マスタ」などの大量のマスタデータも存在します。
このようなデータをクラウド環境に移行する場合には、大量データを一括移行できるインポート/エクスポート(RDBでは標準)、あるいは、それと同等の機能がどうしても必要になります。しかし、BigtableにはRDBからインポートするようなツールは用意されていません。つまり、最初に行わなければならないデータ移行で、Bigtableには大きな壁があるわけです。
Bigtableは、もともとサーチエンジンとクローリング用に開発された「GFS(Google File System)」がベースで、大量データの書き込みは得意ですが、条件検索においてはRDBに比べて大きな制約があります。業務・基幹系では、例えば「売れ筋分析」などで、複雑な条件検索が要求されることも多いですが、この点でもBigtableはCloud SQLに比べて、かなり劣っているといわなければなりません。
業務・基幹系では欠かせないトランザクション処理でも、Bigtableの場合は制約があります。Bigtableでは、例えば複数エンティティ(テーブル)を対象としたトランザクション処理は、対象となるエンティティが同じエンティティグループに属している場合のみ有効です(※)。つまり、RDBのように任意の複数テーブルを対象としたトランザクション処理はできません。
※HRD(High Replication Datastore)を使用するアプリケ?ションの場合は、JavaではVersion 1.5.5から、最大5つの異なるエンティティグループを対象にトランザクション処理を実行できる「Cross-Group Transactions(XG transaction)」を使用できるようになっています。
以上のように、BigtableはRDBのCloud SQLと比較して、業務・基幹系には向いていない部分があり、それがGAEを利用するうえでのネックになっていたことは容易に想像できることです。しかし、今回のCloud SQLの提供によって、これらGAEの業務・基幹系利用でのネックとなる課題が解決されることになったわけです。
もちろん、NoSQLのBigtableにもCloud SQLにはない、また優れた点もいくつもあります。しかし、業務・基幹系を対象とした場合はトータルとしてCloud SQLが優れているのは確かなことです。
次ページからは、特に業務・基幹系で使用することを想定して、本題のCloud SQLについて解説していきます。Cloud SQLの基本的な環境構築やGAEの環境構築については、以下の記事を参照しておいてください。
駆け足で見るGoogle Cloud SQLでできること
使ってみました! Google Cloud SQL ついに登場した「Google Cloud SQL」。今回はアカウントの準備からJavaプログラムを使ったデータアクセスまで、一気にお見せします
「Database Expert」フォーラム 2012/2/22
EclipseでJava版App Engineを始めるための基礎知識
Google App Engineで手軽に試すJavaクラウド(1) Javaに対応したことでユーザー数が一気に増加する可能性がある、無料でお手軽なクラウド環境の超入門記事です
「Java Solution」フォーラム 2009/5/11
Copyright © ITmedia, Inc. All Rights Reserved.