SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

イベントレポート(AD)

ファウンダーに訊く、オープンソースのPaaS環境「Cloud Foundry」の魅力と使い方

「Cloud Foundry Open Tour, Tokyo」セッションレポート

  • X ポスト
  • このエントリーをはてなブックマークに追加

2. vmcコマンドを用いたアプリケーションの公開

 実際にどのようにしてCloudFoundry.comを利用したらいいかという点については、CloudFoundry.comのファウンダーであるChris Richardson氏が説明してくれた。まずは、CloudFoundry.comのサイトでサインアップするのが最初のステップになる。サインアップに成功すると、間もなくパスワードを記載したメールが送られてくる。

図2.1 CloudFoundry.comへのサインアップ
図2.1 CloudFoundry.comへのサインアップ
図2.2 サインアップが完了するとパスワードを記載したメールが送られてくる
図2.2 サインアップが完了するとパスワードを記載したメールが送られてくる

 アプリケーションの作成やデプロイ、管理などはPC上のツールを使って行う。Cloud Foundryに対応したツールとしては次のようなものがあるという。

 このうち、もっとも基本的なツールが「VMC」とのこと。VMCはRubyベースのツールであり、Ruby環境を用意すれば、RubyGemsを使ってインストールすることができる。

プロンプト2.3
> gem install vmc

 図2.4に示すのがVMCに用意されている主要なコマンドである。

図2.4 VMCに用意されている主要なコマンド
図2.4 VMCに用意されている主要なコマンド

 アプリケーションをデプロイするまでの手順としては、まずvmc targetコマンドで対象とするクラウドプラットフォームを指定した上で、vmc loginコマンドを使ってログインする。CloudFoundry.comを使用する場合には、ターゲットには「http://api.cloudfoundry.com」を指定すればよいとのこと。ユーザID(Eメールアドレス)とパスワードは、サインアップ完了時に送られてきたメールに記載されている。

プロンプト2.5
> vmc target api.cloudfoundry.com
Successfully targeted to [http://api.cloudfoundry.com]

> vmc login
Attempting login to [http://api.cloudfoundry.com]
Email: xxxx@xxxx.xxx
Password: ********
Successfully logged into [http://api.cloudfoundry.com]

 ログインに成功したら、アプリケーションやクラウド環境を管理するためのコマンドが利用できるようになる。アプリケーションのデプロイは、この状態でvmc pushコマンドを使って行う。Richardson氏のセッションでは、Mavenを用いてJavaアプリケーションプロジェクトを作成し、それをデプロイし、さらにインスタンス数を増やしてスケールアウトするデモが行われた。以下は、同様の手順でアプリケーションをデプロイした例である。

 まず、デプロイするJavaアプリケーションを作成する必要がある。デモでは、次に示すようにMavenのarchetypeプラグインを用いて対話的にプロジェクトを構築・パッケージングしていた。ただし、Javaアプリケーションの場合は最終的にWAR形式でパッケージングされていればいいので、特にMavenを使わなければならないわけではない。また、RailsやNode.jsなどを使った場合でも、基本的な手順は同様とのことだ。

プロンプト2.6
> mvn archetype:generate -DarchetypeArtifactId=maven-archetype-webapp
Define value for property 'groupId': : org.example
Define value for property 'artifactId': : example
Define value for property 'version':  1.0-SNAPSHOT: :
Define value for property 'package':  org.example: : example

Confirm properties configuration:
groupId: org.example
artifactId: example
version: 1.0-SNAPSHOT
package: example

 Y: : y

> cd example

example> mvn package

 vmc pushコマンドを使ってデプロイを行うと、アプリケーションの公開URLや使用するリソースなどを聞かれるので、任意の値を入力する。

プロンプト2.7
> vmc push example --path target
Application Deployed URL [example.cloudfoundry.com]: codezine-example.cloudfoundry.com
Detected a Java Web Application, is this correct? [Yn]: y
Memory Reservation (64M, 128M, 256M, 512M, 1G, 2G) [512M]: 256M
Creating Application: OK
Would you like to bind any services to 'example'? [yN]: n
Uploading Application:
  Checking for available resources: OK
  Packing application: OK
  Uploading (2K): OK
Push Status: OK
Staging Application: OK
Starting Application: OK

 デプロイが完了したら、指定した公開URLにWebブラウザからアクセスしてみれば、クラウド上でアプリケーションが動作していることを確認できる。

図2.8 Webブラウザからアプリケーションにアクセス
図2.8 Webブラウザからアプリケーションにアクセス

 VMCからは、次のようにvmc appsコマンドやvmc statsコマンドを使うことで、アプリケーションの状態を調べることができる。

プロンプト2.9
> vmc apps
+-------------+----+---------+-----------------------------------+----------+
| Application | #  | Health  | URLS                              | Services |
+-------------+----+---------+-----------------------------------+----------+
| example     | 1  | RUNNING | codezine-example.cloudfoundry.com |          |
+-------------+----+---------+-----------------------------------+----------+

> vmc stats example
+----------+-------------+----------------+--------------+--------------+
| Instance | CPU (Cores) | Memory (limit) | Disk (limit) | Uptime       |
+----------+-------------+----------------+--------------+--------------+
| 0        | 1.6% (4)    | 93.4M (256M)   | 8.0M (2G)    | 0d:0h:2m:25s |
+----------+-------------+----------------+--------------+--------------+

 アプリケーションを更新する場合には、vmc updateコマンドを使用する。例えばexampleプロジェクトのsrc/main/webapp/index.jspを修正した上で次のようにvmc updateコマンドを実行すれば、Webサイトにも反映されるはずだ。

プロンプト2.10
example> vmc update example --path target
Uploading Application:
  Checking for available resources: OK
  Packing application: OK
  Uploading (2K): OK
Push Status: OK
Stopping Application: OK
Staging Application: OK
Starting Application: OK

 インスタンス数を増やすスケールアウトは、次のようにvmc instancesコマンドを実行するだけでいいそうだ。対象のアプリケーションを指定して、「+2」となどとやればインスタンスが2つ増える。逆に減らす場合には「-2」などとすればよい。

プロンプト2.11
> vmc instances example +2
Scaling Application instances up to 3: OK

> vmc stats example
+----------+-------------+----------------+--------------+--------------+
| Instance | CPU (Cores) | Memory (limit) | Disk (limit) | Uptime       |
+----------+-------------+----------------+--------------+--------------+
| 0        | 1.1% (4)    | 93.4M (256M)   | 8.0M (2G)    | 0d:0h:3m:38s |
| 1        | 12.5% (4)   | 64.3M (256M)   | 7.9M (2G)    | 0d:0h:0m:15s |
| 2        | 10.1% (4)   | 58.3M (256M)   | 7.9M (2G)    | 0d:0h:0m:15s |
+----------+-------------+----------------+--------------+--------------+

 デモでは、その他にSpringSource Tool Suiteを使う方法なども紹介された。SpringSource Tool SuiteはEclipseベースの開発ツール集であり、Cloud Foundry用プラグインを使うことで、IDE上からCloud Foundry上のアプリケーションの管理を行うことができる。

図2.12 SpringSource Tool Suiteの利用例
図2.12 SpringSource Tool Suiteの利用例

次のページ
3. Cloud Foundryのアーキテクチャ

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
イベントレポート連載記事一覧

もっと読む

この記事の著者

杉山 貴章(スギヤマ タカアキ)

有限会社オングスにて、Javaを中心としたソフトウェア開発や、プログラミング関連書籍の執筆、IT系の解説記事やニュース記事の執筆などを手がけている。そのかたわら、専門学校の非常勤講師としてプログラミングやソフトウェア開発の基礎などを教えている。著書に『Javaアルゴリズム+データ構造完全制覇』『Ja...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6532 2012/06/12 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング