SHOEISHA iD

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

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

イベントレポート(AD)

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

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

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

5. サービスのバインディング

 DBMSなどのCloud Foundryが持つ機能は、サービスとして提供される。これらのサービスは、インスタンスを生成することによってアプリケーションから利用できるようになるという。インスタンスの生成にはvmc create-serviceコマンドを使用する。次の例の場合、MySQLのインスタンスを生成し、「mysql-994002」というサービス名が割り当てられた。

プロンプト5.1
> vmc create-service mysql
Creating Service [mysql-994002]: OK

 利用可能なサービスや、インスタンスを生成済みのサービスを確認するにはvmc servicesコマンドを実行すればよい。

プロンプト5.2
> 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 message queue                |
| redis      | 2.2     | Redis key-value store service         |
+------------+---------+---------------------------------------+

=========== Provisioned Services ============
+--------------+---------+
| Name         | Service |
+--------------+---------+
| mysql-994002 | mysql   |
+--------------+---------+

 アプリケーションからサービスの機能を利用するためには、作成したインスタンスをアプリケーションに"バインド”する。バインドはvmc bind-serviceコマンドを用いて次のように行う。

プロンプト5.3
> vmc bind-service mysql-994002 example
Binding Service [mysql-994002] OK
Stopping Application OK
Staging Application OK
Starting Application OK

 その他、vmc pushでサービスをデプロイした際に、「Would you like to bind any services to 'アプリケーション名'? [yN]:」の質問に"y"を入力することでもバインドを実行できる。

 バインドが完了したサービスに関する情報は、VCAP_SERVICES環境変数に図5.4のような形で保存される。これはJSON形式のドキュメントになっているので、アプリケーションではこれを解析して情報を取得し、サービスへのアクセスに利用すればいいとのことだ。

図5.4 VCAP_SERVICES環境変数
図5.4 VCAP_SERVICES環境変数

 Cloud Foundry上に展開されたサービスのインスタンスは、通常の方法だとCloud Foundry上のアプリケーションからしかアクセスすることができない。しかし、例えばストレージ上のデータをデータベースツールで管理したい場合や、JUnitで単体テストする場合のように、アプリケーションの外部からアクセスしたいときにはどうしたらいいだろうか。

 Richardson氏によれば、「Caldecott」というツールを使えばその問題は解決できるとのことだ。Caldecottは、Cloud Foundry上のサービスとPCの間にトンネルを構築するトンネリングツールであり、これを使うことでローカルPCからでもCloud Foundryのサービスにアクセスできるようになるという。CaldecottもRubyGemsでインストールできる。セッションでは、これを使ってJUnitテストを行うデモも披露された。

参考:Chris Richardson氏のセッション(YouTube/日本語字幕付き)

次のページ
6. 「Go Go OpenSource!」

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

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

もっと読む

この記事の著者

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

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

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

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

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

この記事をシェア

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

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング