アイエニウェア・ソリューションズでは、パッケージに組み込めるRDB製品「SQL Anywhere」をソフトウェアベンダーに提供している。近年は顧客からのリクエストにより、多くのパッケージベンダーが業務用アプリケーションのクラウド移行を検討している。本セッションでは、ソフトウェアパッケージベンダー向けのクラウドソリューションとして新たにリリースされる「SQL Anywhere OnDemand Edition」の魅力的な機能が紹介された。
オンプレミスのデータとソフトウェアをクラウドでそのまま展開
SQL Anywhere OnDemand Editionのメインターゲットは、独立系のソフトウェアベンダーや、パッケージソフトウェアを展開しているベンダーだ。これまでパッケージで提供していた自社開発したアプリケーションを、エンドユーザーのニーズや時流に合わせてクラウドに展開したいという要求に応えるものとして開発されている。
特に昨年の大震災後、「津波で流されてしまってデータも何もなくなり一から登録しなくてはならない。そういうときクラウドにデータがあれば業務に早く復帰できるのではないか。そういう期待も含めてクラウド化できないかという相談を受けるパターンが増えている」と磯辺氏は語る。
これまでのパッケージ製品であれば、サーバごと客先にあるため管理も楽で、データも客先から出ることはないのでセキュリティ面でも安心と、ある意味で「手離れがよい」ところがあった。ところが、クラウドでは何百もの顧客のデータのセキュリティを一元的に管理する課題や、ホスティングの責任に直面することになる。
そこで、今までオンプレミスで利用してきたデータベースを、なるべく手間をかけず互換性を保ちながらクラウド展開でき、しかも顧客を個別に管理することが必要とされる。磯辺氏は、まずSQL Anywhere OnDemand Editionの利点として次の4点を説明した。
- 複数のテナントをセキュアに管理
- 柔軟性
- スケーラビリティ
- リレーショナルパワーの活用
クラウド上で複数のテナントを管理するには、2つの考え方があるという。一つが、すべてのテナント情報を同一の大きなDBにすべて入れて管理する方式。このときテーブルのスキーマ上に顧客コードを持たせて情報を分離することになるが、顧客コードを扱うプログラミングのミスがあると、顧客情報の流出につながる危惧がある。
もう一つはテナントごとに別々のデータベースで管理することで、データの分離が図れるため、流出の心配もない。しかし、クラウド展開で顧客が数百数千となったときに、個別の何百何千というDBをどうやって管理するのかを考えると難しくなる。
SQL Anywhere OnDemand Editionではこれを解決するため、両者の良いところを取り、内部的には別々のデータベースで管理しているが、外部からは1つの大きなデータベースに見えるような、透過的な管理の仕組みを提供している。
その透過的なクラウド構成によって、どこか一箇所でなくさまざまな場所にあるデータベースをまとめて1つとして見ることができる。パブリッククラウド(Amazon EC2など)でも、自社でデータセンターでも、外部のハウジングサービスでも構わない。環境の拡張・縮小が柔軟にできる。
これによって、顧客が増えた場合にクラウドの環境を増やし、データベースの数を増やすことで簡単にスケールする仕組みも実現している。
そして何より大きいのは、従来のSQL Anywhereと互換性を保っていることだ。オンプレミスのデータベースファイルを、そのままクラウド環境に追加することができ、逆にクラウドのDBをオンプレミスに戻すことも可能だ。リレーショナルデータモデルも同じように利用でき、クエリもSQL92に準拠した普通のSQLが実行できる。
SQL Anywhere OnDemand Editionの構成
前半で語られたように、構成としては内部的には個別にたくさんのデータベースがあるのだが、外部からは大きな1つのデータベースに見える。これは次のように実現されている。
外部から見た1つの大きなクラウド環境。これは内部的には複数のホストから成り立っている。ホストは物理的なハードウェアのこともあるし、仮想環境でも構わない。もちろん物理的にどこにあっても構わない。パブリッククラウドと自社データセンターをまとめて1つのクラウド環境に見せることもできる。
このホストそれぞれには、データベースサーバーエンジンを複数立てることができる。さらに、1つのサーバーで255個までのデータベースを持たせることができる。データベースを追加する際は、クラウドの中で最も負荷の低いサーバーにコピーが自動的にマウントされる。
同様に、クラウドの環境のなかでデータベースをどのサーバーにでも自由に移動することができる。例えば財務会計のように期末だけ負荷が高くなるパッケージでは、一時的に性能の良いパブリッククラウド環境を借りて移動し、負荷が軽くなったころ元に戻すことも可能だ。
さらに、高可用性構成も実現できる。あるサーバーに接続されているデータベースのミラーリングを別のサーバーにつなぎ、プライマリのサーバーが落ちたときには高可用性ミラーが昇格して業務を継続できる。コネクションは瞬間的に切れるため、トランザクション処理はすべてロールバックされるが、すぐにミラーに再接続できる。
同じくミラーリングの構成で、プライマリーのデータベースサーバーに対する負荷が高くなっているとき、読み込み専用のレポーティング処理などを、別の読み込み専用のデータベースにオフロードすることができる。これによってオンライントランザクション処理のスケールアウトを実現する。
また、別のサーバーへの定期バックアップも自動化できる。パブリッククラウドで運用されているデータベースを、自社のデータセンターで稼働しているサーバーにバックアップするといったことも可能だ。
こういう内部の仕組みは隠蔽されており、外部からはまとめて1つの大きなクラウドのデータベースサーバーに見える。実際に接続する際には、どのデータベースがどのサーバーにあるかクラウドがすべて保持しているので、データベースだけを指定すれば正しいサーバーに接続できる。サーバーとデータベースの対応はクライアントでもキャッシュされる。
さて、こういった構成のデータベース群を管理するための仕組みも用意されている。それが「タグ付」と「ルール」だ。これにより、ある一定の意味をもったデータベースのグループ、サーバーのグループ、ホストのグループが定義できる。グルーピングのルールも定義できる。
例えば「物理的に東京にあるサーバー」「ベーシックサポートの顧客のデータベース」「A社に関連するデータベース」といったタグに対して、「東京のサーバーには、ベーシックサポートの顧客のデータベースがなければならない」「A社とB社のデータベースは同じホストにあってはならない」などを定義できる。
さらにタスク(SQLのセット)を実行する際にも、タグに対して実行できる。例えば、プレミアムサポートの顧客に対して新しいサービスを立ち上げるためテーブルを追加しなければならないときには、対応するタグのデータベースに対してタスクを実行できる。
こういった作業はすべてブラウザベースの管理ツールから可能で、さまざまな条件でメンテナンスを実行し、その結果を確認できる。
このように、独立系のソフトウェアベンダーやパッケージベンダーが、クラウドでデータをマネジメントできるソリューションを提供するパッケージソフトウェア「SQL Anywhere OnDemand Edition」では、使い勝手やセキュリティを保ったまま、顧客のデータベースを簡単に管理できる。
2012年6月ごろまでに英語版をリリースし、日本語版は夏ごろリリース予定だ。価格体系は現在のところ未定。下記のURLからβテストに参加可能できる
また、デモがYouTubeで公開されている。