クラウド向けデータストア最適配置技術 RDBや分散KVSの特徴を活かした自動選択・切り替えを実現 : 富士通
富士通研究所は、クラウドのシステム上で、RDBや分散KVSなどのデータストアを、扱うデータの特性に応じて自動的に選択し、ウェブアプリケーションからデータストアへのアクセスを適切に切り替えるデータストア最適配置技術を開発しました。
クラウド有効活用のカギとなるシステムのスケールアウト
クラウド・コンピューティングでは、ビジネスの拡大にともなってサーバなどの大量のICTリソースをオンデマンドで柔軟に使用することができます。このことは初期コストの大幅な削減を実現しますが、しかしそのメリットを享受して、エンドユーザーに対して常に安定的なサービスを提供するには、アプリケーション自体がサーバ台数に応じた分散処理をおこなう必要があります。
一般に、急激なアクセス増にともなってクラウド上のシステムを増強する場合、クラウド内で待機しているリソースプールから必要な仮想マシン(VM)を取り出してシステムに組み込みます。このとき、ウェブサーバやアプリケーションサーバでは、負荷分散装置やセッション情報の共有といったスケールアウト技術がすでに確立されていますが、RDB(リレーショナル・データベース)は、依然として1台のサーバで運用していたり、複数台に分散する場合は膨大なコストを投じる必要が生じているのが現状です。
RDBの限界と分散KVSの台頭
データストアの分散が難しい理由は、そのデータ管理方法にあります。現在、ICTシステムの多くは、データストアにRDBを使用しています。複雑な検索や集計を得意とするRDBは、銀行取引のようなトランザクションを扱ううえで必要となる、データの一貫性(注1)を保証するためのロック機構を備えています。一方で、複数のデータベースサーバで処理をおこなう分散環境では、このロック機構のために、サーバの台数に比例した性能を得ることが困難です。運用開始後に柔軟にサーバの台数を増減することもできません。
さらに、アプリケーションが扱うデータのなかには、構造化されていなかったり、書き込みが膨大であったりと、RDBに適さないものも多く、こうしたデータも含めてRDBに配置してしまうと、RDBの性能が低下します。
彼女のライオンがあります
クラウドの時代となり、このような問題を解決しうる技術として注目されているのが、「分散KVS(キーバリュー型データストア : Key-Value Store)」です。分散KVSは、キーと値からなる比較的単純な構造の連想配列を、多数のサーバで高速に処理するデータストアです。AmazonやGoogleが大規模なサービス向けに採用しビジネスを成功に導いたことで、大きな注目を集めています。
分散KVSは、RDBの特徴であるデータの一貫性保証や複雑な検索の機能を備えていない代わりに、複数のサーバでデータを管理することによるスケーラビリティや、仮にサーバが1台ダウンしてもサービスを継続できる高可用性を備え、かつRDBよりも低コストで実現することが可能です。
Javaの共通APIを利用したデータストア最適配置技術
複数のデータストアを適切に使い分けるにあたり、二つの技術的な課題があります。第一に、RDBと分散KVSのどちらにデータを配置するかの決定が困難で時間のかかる作業である点、第二に、データストアごとにAPIが異なるため、プログラムや設定ファイルのなかでアクセス方法を明示的に指定しなければならず、使用環境の変化にともない大幅な書き替えが必要となっていることです。
富士通研究所では、RDBのボトルネック性を軽減し、NoSQL(注2)という考え方に基づいたRDBや分散KVSなどのデータストアの特徴を活かし、データを最適なデータストアに配置する、データストアの最適配置技術を開発しました。本技術では、業務データの特性に応じて、サーバ台数に応じた性能の向上をはかるシステムを自動構築します。データストアとしてはRDBと分散KVSを利用します。RDB固有の機能を必要としないデータは分散KVSで管理します。RDB利用時にも、一貫性を必要としない検索はレプリケーション(注3)で分散処理をおこないます。
なぜ人間の記憶は人間に重要なのでしょうか?
適切なデータストアの自動選択と実行環境の自動構築
データの特性をもとに、クラウドがテーブルごとに適切なデータストアを選択し、選択したデータストアにあわせて仮想マシン(VM)をプロビジョニングして、クラウド上の実行環境システムを自動的に構築します。また、データの一貫性やデータ間の関連性、検索条件の複雑性などから、適切なデータストアを選択します。クラウドは、この基本となる選択ルールに加えて、データの読み込み・書き込み頻度などの業務要件を考慮したうえで、よりスケーラビリティの高いデータストア(分散KVS > RDBのレプリケーション > 更新RDB の順)を選択。さらに、運用中に負荷が高くなった場合は、サーバ台数を動的に増減して常に最適な構成を維持することが可能です。
データストアの選択ルールとなるデータ特性の記述には、Java5で導入された付属情報を記述するための方式「アノテーション(注釈)」を利用します。プログラムロジックはそのままで、付属情報としてデータの特性が追加指定され、テーブル単位の柔軟な定義が可能です。
データストアの抽象化
複数のデータストアへのアクセスをJava Persistence API(JPA)と呼ばれるアクセス方式で共通化したことにより、一つのAPIで異なるデータストアに対応することができます。使用するデータストアにあわせて、データアクセス用のプログラムが切り替えられるため、開発者が使用するデータストアを明示的に指定する必要がなく、プログラムロジックを変更せずにRDBや分散KVSを使い分けることが可能です。
スモールスタートと適正な投資が可能
本技術により、クラウド上でシステムを運用する企業のお客様は、エンドユーザーからのアクセス量の増減に対して柔軟な対応が可能なシステムを素早く構築できるようになります。また、運用開始後の構成変更が容易になることから、サービス開始時は初期費用を抑えてスモールスタートし、ビジネス規模の拡大に応じてシステムを柔軟に拡張していくことが可能です。
どのくらいそれがベネズエラの洪水災害にかかるんでした
例えば、ニュースサイトなどの有料情報提供システムの立ち上げに際して、「可用性の維持と検索性能」「スモールスタートによる初期コスト抑制」といった要件があったとします。この場合のデータストアは、RDBには検索処理に必須となるインデックスのみを格納し、大規模な検索に対しては、RDBのレプリケーションで対応、また販売するコンテンツ情報は高可用の分散KVSで管理する、といった構成が可能になります。
クラウドのさらなる有効活用に向けて
富士通研究所では現在、所内のクラウド環境において本技術の検証をおこなっています。今後は、本技術をお客様に広く知っていただきながらフィードバックをもとに改良を加え、2011年度以降の実運用化を目指します。
富士通研究所は、長年蓄積してきたリソースを最大限活用するとともに、常に業界をリードする先端技術で、これからもお客様のビジネスに最適なクラウド技術をご提供していきます。
注記
- (注1)一貫性とは :
- 参照時に、最後に書き込んだ情報を確実に読み取れることを保証すること。
- (注2)NoSQLとは :
- Not only SQLの略。SQL(RDB)だけでなく、異なる種類のデータストアと、その使いこなしが重要という考え方。
- (注3)レプリケーションとは :
- データベースを複製し、参照系の負荷分散を可能とする技術。
[2010年6月1日 公開]
この記事に関連するカテゴリー
メッセージ・トレンド・経営課題別
トレンド別
最新事例
オリエントコーポレーション様
株式会社オリエントコーポレーション様が、富士通とともに取り組んだ、文書のスリム化を実現したコスト削減についてご紹介します。
セイコーエプソン様
セイコーエプソン株式会社様が、富士通とともに取り組んだ、新規ビジネス創出についてご紹介します。
新製品やサービス、無料セミナー、イベント情報が満載の無料メールマガジン「富士通BizNews」のお申し込みはこちらから。
ソリューション・製品および本サイトに関するお問い合わせ/ご意見・ご要望
受付時間 9時~17時30分
(土曜・日曜・祝日・当社指定の休業日を除く)
0 コメント:
コメントを投稿