[2013 年 4 月号] |
[技術講座]
パブリッククラウドが普及するにつれて、エンタープライズ向けのクラウド関連技術の開発が進み、サービスのリリースが増加してきました。それに伴い、企業のクラウド利用や導入に対する意識が高まってきています。最近の調査ではパブリッククラウド、プライベートクラウドともに利用している企業は増加傾向にあり、また国内のクラウド市場規模はSaaS、PaaS、IaaSともに数年後まで増加していくと予想されています。クラウド利用が進んでいくと予想されている日本ですが、企業によっては、セキュリティポリシーの問題やデータの保存先の懸念などからパブリッククラウドの利用を躊躇する企業もあります。
パブリッククラウドに懸念を抱いている企業がクラウドを利用する方法の一つとして、ユーザ企業自らがクラウドを構築するプライベートクラウドがあります。近年では、クラウド基盤ソフトウェアの登場と成熟により、単なる仮想化ではなく、パブリッククラウドで定評のあるAmazon EC2と似たような高度に自動化したプライベートクラウドを構築することが出来るようになりました。本稿では、プライベートクラウドとクラウド基盤、そしてオープンソースのクラウド基盤ソフトウェアであるCloudStackについて説明していきます。
クラウド基盤の話をする前に、プライベートクラウドについて軽く復習します。
まず、NIST(National Institute of Standards and Technology:米国国立標準技術研究所)の定義を見てみましょう。 NISTの発表している NIST Cloud Computing Reference Architectureによると、
A private cloud gives a single Cloud Consumers organization the exclusive access to and usage of the infrastructure and computational resources. It may be managed either by the Cloud Consumer organization or by a third party, and may be hosted on the organizations premises (i.e. on-site private clouds) or outsourced to a hosting company (i.e. outsourced private clouds). Figure 10 and Figure 11 present an on-site private cloud and an outsourced private cloud, respectively.
NIST Cloud Computing Reference Architecture 10項 3.1Service Deploymentより引用
「プライベートクラウドは、単一のクラウド利用者への排他的アクセスと、インフラ、コンピューティングリソースを提供する。プライベートクラウドはクラウド利用者自身が管理または第三者のいずれかによって管理されることがあり、構内もしくはホスティング会社によって提供される。」ものと定義されています(図1)。一般的には、企業や特定組織内の環境にクラウドを構築し、その企業または関連グループ企業だけが利用することの出来るクラウドの形態と言われています。
図1. NISTによるプライベートクラウドの定義
パブリッククラウドではプロバイダによるセキュリティ対策や、データの保存場所の問題、サービスの突然の停止などいろいろなリスクが懸念されます。しかし、プライベートクラウドのように閉じた環境内にクラウドを構築することで、データは自社のネットワーク内で管理され、また自社のセキュリティポリシーを適用することが出来るため、リスクをコントロールすることが出来ます。
プライベートクラウドの構築にあたっては、効率的なCPU、ストレージ、ネットワーク等のコンピューティングリソースの管理が求められます。しかし、仮想化技術だけを利用した従来の構築には技術的な課題がありました。
一つは、コンピューティングリソースの相互運用性です。企業内でのリソースの有効活用手段として、これまでは仮想化技術を中心に発展してきました。結果、VMware、XenServer、KVMなど複数の仮想化技術が企業内に混在することとなり、仮想化技術間の相互運用が課題となってきました。
もう一つは、プロビジョニングです。企業内ユーザに対し、迅速にコンピューティングリソースを提供するためには、プロビジョニングの自動化が必要となります。
また、JEITA(一般社団法人 電子技術情報産業協会)のサーバ事業委員会の公開している「ユーザ調査から見たクラウドの需要動向」によると、技術的な側面として以下の点も課題となっていました。
図2. プライベートクラウド未導入の理由(JEITAサーバ事業委員会「ユーザ調査から見たクラウドの需要動向」JEITA、2011年、24頁より引用)
これらの課題を解決しつつプライベートクラウドを構築する仕組みとして、近年ではクラウド基盤に注目が集まっています。クラウド基盤を用いることで、セキュリティを担保しつつサーバやネットワーク、ストレージなどのリソース管理一元化・自動化することが出来ます。
では、クラウド基盤とはどういったものなのでしょうか。クラウド基盤について明確な定義はありませんが、ここでは次のように定義します。
「クラウド基盤とは、クラウド・コンピューティングの最下層に位置し、サーバやネットワーク設備などのハードウェアやストレージなどのITインフラを、仮想化技術を利用して提供する基盤である。」
クラウド基盤は一般的に以下の機能を備えています。
図3. Cloudのレイヤ構成図
クラウド基盤ソフトウェアは、先述の仮想マシン管理、ストレージ管理などの機能を持つクラウド基盤を高度に自動化して管理を行うソフトウェアです。ライセンス製品やオープンソースのソフトウェアなどさまざまな形態で提供されています。
以下にソフトウェアを抜粋しておきます。なお、個々のソフトウェアの説明は省略させていただきます。URL先を参照してください。
VMware - https://www.vmware.com/jp/products/datacenter-virtualization/vsphere/overview.html
クラウド基盤ソフトウェアを利用するメリットとしては次のことがあげられます。
これまで別々に管理していた仮想化インフラ(XenServer、KVM、VMware etc)やリソースの管理を一元的管理
しかし、クラウド基盤ソフトウェアにも課題はありました。完成度の高いものを求めようとするとプロプラエタリな製品のライセンスを購入して使わなければならずコストがかかっていました。一方でコストを抑えるためにオープンソースのソフトウェアを利用すると、製品がまだ未成熟でクラウド基盤としては機能不足でした。
JEITA(一般社団法人 電子技術情報産業協会)のサーバ事業委員会の公開している「ユーザ調査から見たクラウドの需要動向」によると、クラウド基盤ソフトウェアのコスト問題を裏付けるかのように、プライベートクラウドの利用は大規模な企業を中心に利用されているという結果が出ています。この結果から、コスト面から比較的体力のある大きな企業が、大規模に導入しなければメリットを享受出来なかったと推察されます。
図3. プライベートクラウドの利用状況(JEITAサーバ事業委員会「ユーザ調査から見たクラウドの需要動向」JEITA、2011年、19頁より引用)
クラウド基盤ソフトウェアの製品の成熟度とコストの問題を解決するのが、クラウド基盤ソフトウェアであるCloudStackです。CloudStackは商用サービスの基盤として利用されるほど機能が充実しており完成度も高いものとなっています。
CloudStackはAmazonの提供するEC2相当の機能を提供するオープンソースのクラウド基盤ソフトウェアです。
XenServer、KVM、VMware vSphere、Oracle VMなど複数のハイパーバイザに対応しており、一般ユーザ向け、管理者向けの操作性の高いGUIで提供されるセルフポータルやHA機能などIaaS環境を構築するのに必要な機能、信頼性を備えたソフトウェアとなっています。
また、REST APIも提供され、Amazon AWSのAPIを利用することも可能です。ロードバランサやファイアウォール、DHCPやVPNなどなど多様なネットワークサービスも提供されており、オープンソースのクラウド基盤として完成度の高いソフトウェアとなっています。このような理由から、商用環境での採用実績が鉱区内外で豊富にあります。
CloudStackはもともとCloud.com社が開発・提供していたクラウド基盤ソフトウェアでした。Cloud.com社は旧VMOps社で、元Sun、 Citrix、 Zimbra、などにいたインフラストラクチャと仮想化の技術者によって設立された企業です。
2010年5月にCloud.comドメイン取得に併せて、社名をCloud.com社に変更し、CloudStackを公開しました。 この頃のCloudStackにはCommunity EditionとEnterprise Editionがありました。Enterprise Editionではすべての機能を利用することが出来ますが、後述するマネジメントノード、コンピューティングノード、ストレージなどライセンス料が必要でした。そのため、スケールアウトするとき、ノードの増加に比例してコストも増加してしまっていました。Community Editionではコストはかからないものの、Enterprise Editionでは利用出来る可用性に関する機能などが制限されており、Cloud.com社によるサポートも受けることが出来ませんでした。
2011年7月にCloud.comがCitrix Systems社により買収され開発が進められ、2012年2月末にリリースされた3系からCommunity EditionとEnterprise Editionの機能差はなくなりました。そして2012年4月にApacheプロジェクトへ寄贈されApache CloudStackとなりました。
最新バージョンは4.0.1となっておりApache License Version 2で提供されています。
図4. CloudStackの沿革
採用実績として、海外ではZynga、TaTa Communications、Korea Telecomなどゲーム会社やテレコム系の会社、また国内では北海道大学、iDCフロンティア、ユニアデックスなどが採用しています。
2012年度の国内の採用事例として、KDDI、NTTコミュニケーションズがあります。どちらもプライベートクラウドとしてではなく、外部へのサービスの提供基盤としてCloudStackを採用しています。
これらの採用事例からも分かるように、CloudStackは商用サービスの基盤として利用出来る程度の機能性と信頼性を備えていると言えるでしょう。
次にCloudStackの構成を見てみます。CloudStackは大きく以下のコンポーネントで構成されます。
図5. CloudStack構成図
Management Server(管理サーバ)
コンピューティングノードやストレージサーバの管理、仮想マシンの管理、サーバ/仮想マシンのリソースの状態管理(CPU、メモリ、ストレージ、IPアドレスの割り当てなど)、ユーザGUI(管理者用、ユーザ用)の提供及びAPIの提供を行うCloudStackの管理サーバ。仮想マシン情報や、サーバ/仮想マシンのリソース情報などは同一サーバ上、もしくは外部のサーバに構築したMySQLで管理を行う
Computing Node(コンピューティングノード)
ハイパーバイザ(XenServer、KVM、VMwareなど)がインストールされている物理サーバ。また作成した仮想マシンが実際に起動するサーバ。CloudStackにCPUやメモリなどのリソースを提供する
Primary Storage(プライマリストレージ)
仮想マシンのルートディスク領域、データディスク領域などを保存されるストレージサーバ。同一Pod内の複数のコンピューティングノードで共有される。ライブマイグレーションやHA(高可用性)機能はプライマリストレージのデータを利用して行われる。各クラスタに一つ配置する
Secondary Storage(セカンダリストレージ)
仮想マシンのテンプレートやスナップショットイメージ、ISOイメージを保存するストレージサーバ
Cluster(クラスタ)
複数のコンピューティングノードとプライマリストレージによって構成される。クラスタはライブマイグレーションやHA(高可用性)機能の単位となるため、同一クラスタ内に追加されるコンピューティングノードは同一のハイパーバイザが利用される
Pod(ポッド)
一つまたは複数のクラスタで構成される。通常はデータセンター内の一つのラックとして利用される
Zone(ゾーン)
マネジメントサーバ、セカンダリストレージ、ポッドで構成されるデータセンター
これらの構成を冗長化することで、可用性を担保し商用利用にも耐えうる安定した基盤を構築することが出来ます。
また、CloudStackでは標準機能としてソフトウェアルータが提供されています。ルータではロードバランサ機能が提供され、各インスタンスへの負荷分散を行うことが出来る他、ファイアウォール機能を利用することが出来るので、インスタンスごとに独自のセキュリティ設定を行うことが出来ます。
セキュリティに関して言えば、CloudStackではユーザ/アカウントの機能も充実しており、ユーザごとに細かくアクセス制御、機能制限を設定することも可能となっています。さらに、ネットワーク関連の機能としてはVLANを用いたパブリックネットワーク/プライベートネットワークの構築も可能となっています。
CloudStackを用いることで、相互運用性、プロビジョニング、セキュリティなどと言ったプライベートクラウドの課題を解決するだけでなく、CloudStackではクラウド基盤を構築/運用するための機能が高いレベルで揃っており、かつ標準で提供されているGUIを用いて直感的に設定を行うことが出来るソフトウェアとなっています。
さて、ここまでクラウド基盤とCloudStackについて簡単に見てきましたが、いかがでしたでしょうか?
本稿ではCloudStackを用いて、プライベートクラウドや従来のクラウド基盤の課題を解消出来ることを確認することで、オープンソースのクラウド基盤ソフトウェアが商用環境でも使える実用的な製品になってきていることを紹介しました。
クラウド基盤を使うことでセキュリティポリシーを守りつつも、プライベートにクラウドを構築することでクラウドのメリットを享受することが出来ます。ただ単に仮想化するのとは違い、複数のハイパーバイザに対応出来たり、パブリッククラウドと連携出来たりと、これまでに出来なかったようなことをクラウド基盤は提供してくれます。
プライベートクラウド、パブリッククラウド、またはSaaSやPaaSなどの他のレイヤの基盤として、クラウド基盤はさまざまなところで活用出来る技術であり、今後ますます成長していくと予想されます。
CloudStackはまだ大規模なサービスの基盤としての採用実績しかありません。オープンソースのクラウド基盤の登場によってコスト面の障壁はなくなりつつあり、ソフトウェアの成熟によって機能面での問題も解決されつつあります。CloudStackに限らずクラウド基盤にはさまざまな製品がリリースされているので、それぞれの用途や技術に見合った製品を選択することが重要でしょう。
今後は商用サービスの基盤としてだけではなく、プライベートクラウドの基盤としても採用が進んでいくのではないでしょうか。
© 2013 OGIS-RI Co., Ltd. |
|