Cloud Foundryで始めるPaaS構築入門:CloudFoundryで始めるPaaS構築入門(1)(1/2 ページ)
この連載では3回に分けて、「Cloud Foundry」というオープンソースパッケージを用いて、Platform as a Service(PaaS)のためのインフラストラクチャを構築する方法について解説します。
Platform as a Serviceとは何か
クラウドコンピューティングに対する注目が高まる中、Platform as a Service(PaaS)という言葉をすでにご存じの方も多いことでしょう。これは、元々セールスフォース・ドットコムが2007年に打ち出したコンセプトです(用語説明)。
PaaSのサービスプロバイダは、ユーザーに対して、アプリケーションサーバ、データベースサーバなどの「プラットフォーム」環境を提供します。PaaSのユーザーはこれらを用いてシステムを迅速に開発することができます。
この「プラットフォーム」という言葉が意味する内容は、サービスプロバイダによってさまざまです。アプリケーションサーバやリレーショナルデータベース、NoSQLデータベースのようないわゆるミドルウェアと呼ばれるソフトウェア環境であったり、WebサービスAPIとそのアクセスクライアントライブラリのようなモジュールを含むものもあります。
PaaSはクラウドコンピューティングの文脈で使われることの多いコンセプトですが、そこにはIaaS(Infrastructure as a Service)やSaaS(Software as a Service)といった用語もでてきます。これらを分類して整理したのが表1です。
用語 | 提供するもの | 対象 |
---|---|---|
SaaS | ソフトウェアパッケージ(CMS、ERPパッケージなど) | 一般ユーザー |
PaaS | プラットフォーム(アプリケーションサーバ、 データベースサーバ、WebサービスAPI、 各種ライブラリSDKなど) |
アプリケーション開発者 |
IaaS | ネットワーク、オペレーティングシステム | システム開発者(注1) |
表1 クラウドコンピューティングサービスの種類 |
注1:IaaSのユーザーは、IaaS上でアサインされたリソースに対して、ミドルウェア・ネットワークなどを設計、実装します。そして、さらにその上にアプリケーションをデプロイします。一方のPaaSのユーザーは、主にアプリケーションの設計、実装に注力します。
Cloud Foundryとは何か
Cloud Foundryとは、VMware社が提供するPaaSのオファリングの名称です。2012年1月19日現在、Cloud Foundryを利用するには次の方法があります。
- cloudfoundry.comを使用する
- Micro Cloud Foundryをダウンロードしてインストールする
- オープンソース版のCloud Foundryプロジェクトからソースコードをダウンロードしてインストールするからソースコードをダウンロードしてインストールする
このうち、最初の2つは主にアプリケーション開発者、すなわちPaaSのユーザーとしての利用方法です。一方3つ目は、PaaSのプロバイダの向けの利用方法になります。
Cloud Foudnryが、他の著名なPaaSオファリング(Force.comやGoogle App Engine、Herokuなど)と決定的に異なるのは、この「PaaSのプロバイダ向けの利用方法」を提供している点です。
Cloud Foundryは、ソフトウェアの成果物をApache 2.0ライセンスの元でオープンソースとして公開しています。したがってPaaSのプロバイダは、自身が定義する「プラットフォーム」を実装するために、ソースコードレベルでカスタマイズできます。そして、ソフトウェアとしてのCloud Foundryは、
- 複数のプログラミング言語に対応可能である
- 複数のアプリケーションフレームワークに対応可能である
- 複数のデータサービスに対応可能である
- IaaSレイヤに依存しない
といった設計思想を実現しようとしています。
実際にCloud Foundryのコアチームとは別のPaaSプロバイダが、PythonやPHPといったプログラミング言語の対応を追加したPaaS実装を提供し始めています(注2)。これを見ても、Cloud Foundryは、プラットフォームの実装を容易にカスタマイズ可能なPaaSのカーネルとして利用できることが分かります。
注2:AppFog社が提供するパブリッククラウドサービスやActiveState社が提供するプライベートクラウド向けのパッケージ製品などがあります。
cloudfoundry.comを使ってみる
今回は、Cloud Foundryを使ってPaaSを構築する前に、Cloud Foundryのユーザーからの利用イメージをつかむため、cloudfoundry.comを実際に使ってみましょう(2011年11月20日現在、cloudfoundry.comはβ提供中で、無料でアカウントを作成して使うことができます)。
なお、いくつかのツールのインストールや使用方法を説明しますが、すべてUbuntu 10.04上で動作確認をしています。
cloudfoundry.comのサービスアカウントは、サインアップページからメールアドレスを記入して取得できます。なお、サインアップからアカウントの発行までには数日間かかるようです。
Cloud Foundryで実装されたPaaSを利用するには、通常、VMCと呼ばれるコマンドラインツールを使うことになります。VMCはRubyで実装されており、gemコマンドを使ってインストールできます。
VMCのインストールは次のように行います。
$ sudo apt-get install ruby rubygems libopenssl-ruby $ sudo gem install vmc --no-rdoc --no-ri $ echo 'export PATH=$PATH:/var/lib/gems/1.8/bin' >> .bashrc $ . ~/.bashr
インストールしたvmcコマンドを使って、cloudfoundry.comの情報を確認します。最初に、vmc targetコマンドを使って、VMCが使うターゲットサイトをcloudfoundry.comのAPIサーバに向けます。
$ vmc target https://api.cloudfoundry.com Succesfully targeted to [https://api.cloudfoundry.com]
その後、vmc infoコマンドを使ってターゲットサイトの情報を確認できます。
$ vmc info VMware's Cloud Application Platform For support visit https://support.cloudfoundry.com Target: https://api.cloudfoundry.com (v0.999) Client: v0.3.12
cloudfoundry.comでサービスアカウントの入手ができたら、vmc loginコマンドを使ってターゲットサイトにログインします。
$ vmc login Email: [あなたのメールアドレス] Password: [あなたのパスワード] Successfully logged into [https://api.cloudfoundry.com]
ログインに成功すると、利用可能なプラットフォームの情報が取得できます。Cloud Foundryでは、プラットフォームを、アプリケーションを動作させるランタイム、およびデータを格納、取得するシステムサービスの2つに分けて定義しています。
利用可能なランタイムを確認するには、vmc runtimesコマンドを利用します。
$ vmc runtimes +--------+-------------+-----------+ | Name | Description | Version | +--------+-------------+-----------+ | node | Node.js | 0.4.5 | | java | Java 6 | 1.6 | | ruby18 | Ruby 1.8 | 1.8.7 | | ruby19 | Ruby 1.9 | 1.9.2p180 | +--------+-------------+-----------+
利用可能なシステムサービスを確認するには、vmc servicesコマンドを利用します。
$ vmc services ============== System Services ============== +------------+---------+---------------------------------------+ | Service | Version | Description | +------------+---------+---------------------------------------+ | mongodb | 1.8 | MongoDB NoSQL store | | mysql | 5.1 | MySQL database service | | postgresql | 9.0 | PostgreSQL database service (vFabric) | | rabbitmq | 2.4 | RabbitMQ messaging service | | redis | 2.2 | Redis key-value store service | +------------+---------+---------------------------------------+
Copyright © ITmedia, Inc. All Rights Reserved.