最新の値上げをチェックして賢くお買い物!値上げニュース
Webクリップ

クラウドを取り巻く環境の変化

ここ数年でクラウドをめぐる状況は一変しました。提供されるサービスも多様化し、もはや「ITのサービス化」の流れには、あらがえない時代となっています。

それに伴い、日本でもクラウドを導入したり導入を検討している企業も増えてきています。

CNET Japanの「クラウドみんなのかわら版」では、CNET Japanの読者を対象に実施した「クラウド導入に関する意識調査(2012年2月6日~2012年3月15日)を公表しています。ここでも、「クラウドを導入(一部導入も含む)している」または「導入を検討している」と回答した企業は全体の54%となっており、「導入の予定はない」と回答した企業(全体の46%)を上回るなど、SaaS、IaaS/HaaS(パブリック/プライベート)を中心に関心の高さが伺える結果となっています。

実際に当社のお客様との会話の中で、数年前にはパブリッククラウドのセキュリティリスクに対する悲観的な意見を聞くことが多かったのですが、最近では実際に導入したときにセキュリティをどう担保できるのかといった、クラウド導入を前提としたポジティブな意見が増えてきました。

その背景には、利用者の増加だけではなく、クラウドベンダーやネットワークベンダーが専用線サービスなどのセキュリティ対策のサービスを開始したことや、クラウド向けの保険(例:自社に非のない情報漏えいなどに対応するクラウド向けの保険)なども出てきて安心感が増してきたこともあります。

PaaSの現状と問題点

SaaS、IaaS/HaaSを導入または検討する企業が増えている一方で、PaaSの領域については、なかなか導入が増えていないのが現状です。

このことは前述のCNET Japan「クラウドみんなのかわら版」のクラウド導入に関する意識調査からも明らかになっています。クラウドを既に導入していると答えた企業の中でPaaSを利用していると回答した企業は全体のわずか10%に留まっており、SaaSの49%、IaaS/HaaS (プライベートクラウド)の45%と比較しても利用率が低い結果となっています。

この問題の背景にはPaaSで何ができるのかということをユーザー企業がイメージしづらいという点があります。Force.comのようにSaaSと密接なPaaSを除けば、一般的にはASPやホスティングサービスの延長と考えられるSaaSやIaaS/HaaSと違って、実際の活用イメージを持ちにくいのがPaaSなのです。

また、HerokuやWindows AzureのようなPaaSの活用方法について考えたとき、どうしてもWebアプリケーションの実行環境という印象が強くなり、開発環境やステージング環境といったシステム開発向けの用途として利用される傾向が強いといえます。

しかし、PaaSはそれ単体で目的を達成するものでなく、サービス(道具)を作るためのプラットフォーム、つまり二次道具としての色が強いので、その特徴をきちんと理解することがPaaSを上手く使うためのポイントです。

二次道具としてのクラウド利用の考え方へ、PaaSの活用方法

しかし、二次道具としてPaaSを考えた場合でも、利用者によってその二次道具となる対象が変わってしまうこともあり、少々わかりづらいので、最初に簡単に説明をしたいと思います。まずは下図を見てください。

ここで大事なのは目的の違いです。上記の図においてコンシューマー、部門ユーザーから見た場合の目的はサービスを利用することになるので、そのための道具は各サービス(SaaS)になります。システム部門から見た場合にはサービスを構築することが目的になるので、そのための道具は実行環境(PaaS)となります。

このように目的の違いから視点が変わるため、コンシューマーや部門ユーザーなどのユーザーサイドから見た二次道具は実行環境(PaaS)になるのですが、システム部門から見た場合には基盤環境(IaaS/HaaS)になります。もちろんユーザーサイドはサービスを利用するための目的さえ実現できれば二次道具が何であるかを意識はしません。逆に言うと、業務要件さえ満たしてくれればどんな環境でも構わないということになります。

一方でシステム部門はサービスを構築する立場になるので、構築する基盤環境を先に決めます。この時に実行環境の領域も基盤環境として一緒に考えてしまうため、実際のサービスに対してシステム的な制約の影響を与えてしまうことがあります。しかし、本来は、ユーザーがサービスを利用する目的をきちんと整理した上で実行環境と基盤環境を切り分けて要件を整理しなければなりません。なぜなら、サービスによって、求められる要件が異なるからです。下図を見てください。

一般的な話になりますが、インターネット向けのサービスの場合は、対象が不特定多数のユーザーとなるため、サービスの要件として高いスケーラビリティが求められる代わりに一貫性はそこまで高く求められません。また、一人のユーザーの操作が他のユーザーに影響を及ぼすような副作用を持ちません。

逆に業務サービスの場合には、利用者が社内システムにアクセスできるユーザーに限られるため、スケーラビリティはそこまで求められませんが、一貫性は求められます。また、ワークフローやBPM(ビジネスプロセス管理)のように一人のユーザーの操作が他のユーザー(ケースによっては他の部門のユーザー)にも影響を与えます。

このように、インターネット向けのサービスと業務サービスでは、求められる要件が違います。つまり、スケーラビリティの求められるインターネットサービスと一貫性を求められる業務サービスでは、一貫性と可用性と分断耐性の3つを同時に満たすことができないとするCAP定理(註1)によって、実行環境の選定基準が異なるということになるのです。ここに基盤環境と実行環境を分けて考えなければならない理由があります。

註1:ブリュワーの定理とも呼ばれ、分散コンピュータシステム下のノード間で、一貫性・可用性・分断耐性の3つを同時に満たすことはできないという定理

ここで先ほどのシステム部門の話に戻ります。システム部門がサービスを構築する際、実行環境も含んだ基盤環境を先に考えてしまうため、自社が持っている、または導入実績のある社内標準のハードウェア、ミドルウェア、アプリケーションフレームワークの組み合わせからサービスを構築しようと考えます。しかし、前述のようにサービスによって要件が異なるため、下記のように、それぞれアーキテクチャに対するアプローチが異なります。このため、実行環境の要件はそれぞれのサービスで分けて考える必要があるのです。

インターネットサービス:シェアードナッシング型アーキテクチャ

  • 適したアプリケーションフレームワーク:Ruby on Rails(Ruby)、Play! Framework (Scala,Java)、ASP.Net MVC(C#)など
  • 適したデータストア:Key Value Store(KVS)、一部のリレーショナルデータベース(RDB)

業務サービス:オブジェクト指向型アーキテクチャ

* 適したアプリケーションフレームワーク:J2EE(Java)、ASP.Net(C#)など  * 適したデータストア:リレーショナルデータベース(RDB)

実行環境をサービスごとに切り分けて考えないと、マッチしない環境での開発による工数の増加やリソースの管理工数の増大、リソース追加に伴うコスト増加につながります。このようなリスクを回避するためにも、ユーザの利用目的から、その要件を実現するための二次道具として、実行環境を切り分けて考えることが大切です。

今回の連載の題材であるHerokuの場合は、実行環境としてのスケーラビリティの高さや、Ruby on RailsやPlay! Frameworkなどシェアードナッシング型フレームワークのサポート、KVSとRDBのサポートなど、インターネットサービス用途に適した環境になっているので、インターネット向けのサービス構築ではユーザ要件にマッチしたサービスを少ない労力で開発することができます。

PaaSを活用するためにはこういったユーザサイドの視点でサービスを捉えることが重要になります。

企業ITのクラウド化へ、多様化するPaaS

ここまでクラウドの現状やその中でのPaaSの位置づけ、そして活用方法について解説してきました。説明してきたようにSaaSやIaaS/HaaSと比較してPaaSの担当する実行環境領域は直感的に理解しづらい面があります。

また、メジャーなPaaSではインターネットサービス向けのものが多く、業務サービス向けは少ないという問題もあります。そのため、既存の社内向けのWebアプリケーションをそのままPaaSに移行させることはほとんどできません。

その理由として、提供されているデータストアやアプリケーション実行環境が決められているということもありますが、一番の問題はHerokuにしてもWindows Azureにしても、スケーラビリティを担保するためにステートレスなWebアプリケーションが求められるということです。また、そのために一般的な業務サービスの冗長化構成で利用されているスティッキーセッションのような仕組みを、HerokuやWindows Azureが持っていないこともあります。

これにより、ユーザからのWebリクエストが毎回同じサーバへアクセスすることは保証されないため、Webアプリケーションでよく用いられるようなセッションデータの保持は、拡張機能(Herokuのmemchacheアドオン、Windows AzureのAppFabricキャッシュ等)を利用しないかぎり、基本的には利用できません。

唯一、Amazon Web Services(AWS)のBeansTalkがスティッキーセッションに対応していますが、提供されるソフトウェアスタックがPHP用のApache HTTP Server、IIS7.5、Apache Tomcatに限られてしまいます。

こういったことから、業務サービス向けに展開するようなケースではPaaSの活用は限定的な側面があります。しかし、業務サービス向けに展開するような場合でも自社の仮想化環境やパブリックなIaaS/HaaSを利用して、用途にあったPaaSを作ることが可能です。

VMwareが提供しているCloud Foundryを利用して自社の環境でPaaSを構築することもできますし、HerokuのようにAWSを活用して構築することもできます。

また、構築したPaaSは自社での利用だけでなく、他のユーザに提供して自らPaaS事業者となることも可能です。例えば、AWSではAmazon EC2や同S3を利用してサービスを提供する事業者向けに、AWSが事業者の代わりにサービス利用者に課金するDevPayというサービスを提供していますし、Amazon BeansTalkと同CloudFormationのように、複数のAWSサービスの組み合わせを簡単に展開できるサービスもあり、積極的にこういった活動を支援するサービスが存在します。

これから企業のクラウド利用は単にサービスを使うというフェーズから、活用するというフェーズに変わってくると思います。例えばインターネット向けのサービスであればHerokuやWindows Azureを活用して構築することはもちろん、それをSaaSとして提供することもできますし、自社の業務サービス向けのWebアプリケーションの実行基盤を自社の仮想化環境やパブリックなIaaS/HaaSを利用してPaaSとして提供することもできます。

こういった様々なサービスの活用がこれからの企業ITのクラウド化にとって大事な要素になってくるのではないでしょうか。

最新ニュース

coron's Source - 全国 generated by Nordot



出典:公式総合情報データベースサイト「coron」 執筆者 : .

管理人のアンテナlive!


coronでは、サイトの利用状態の記録解析やパーソナライズ機能を利用するために、Cookieなどを使用してアクセスデータを取得・利用しています。
利用を続ける場合、これらの情報の取得・利用及びウェブサイト利用規約に同意したものとみなします。以下から詳細及びオプトアウトについてご確認ください。

ウェブサイト利用規約    
掲載されている広告について    
推奨環境