ファウンダーに訊く、オープンソースのPaaS環境「Cloud Foundry」の魅力と使い方
「Cloud Foundry Open Tour, Tokyo」セッションレポート
5. サービスのバインディング
DBMSなどのCloud Foundryが持つ機能は、サービスとして提供される。これらのサービスは、インスタンスを生成することによってアプリケーションから利用できるようになるという。インスタンスの生成にはvmc create-serviceコマンドを使用する。次の例の場合、MySQLのインスタンスを生成し、「mysql-994002」というサービス名が割り当てられた。
> vmc create-service mysql Creating Service [mysql-994002]: OK
利用可能なサービスや、インスタンスを生成済みのサービスを確認するには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 message queue | | redis | 2.2 | Redis key-value store service | +------------+---------+---------------------------------------+ =========== Provisioned Services ============ +--------------+---------+ | Name | Service | +--------------+---------+ | mysql-994002 | mysql | +--------------+---------+
アプリケーションからサービスの機能を利用するためには、作成したインスタンスをアプリケーションに"バインド”する。バインドはvmc bind-serviceコマンドを用いて次のように行う。
> 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形式のドキュメントになっているので、アプリケーションではこれを解析して情報を取得し、サービスへのアクセスに利用すればいいとのことだ。
Cloud Foundry上に展開されたサービスのインスタンスは、通常の方法だとCloud Foundry上のアプリケーションからしかアクセスすることができない。しかし、例えばストレージ上のデータをデータベースツールで管理したい場合や、JUnitで単体テストする場合のように、アプリケーションの外部からアクセスしたいときにはどうしたらいいだろうか。
Richardson氏によれば、「Caldecott」というツールを使えばその問題は解決できるとのことだ。Caldecottは、Cloud Foundry上のサービスとPCの間にトンネルを構築するトンネリングツールであり、これを使うことでローカルPCからでもCloud Foundryのサービスにアクセスできるようになるという。CaldecottもRubyGemsでインストールできる。セッションでは、これを使ってJUnitテストを行うデモも披露された。
参考:Chris Richardson氏のセッション(YouTube/日本語字幕付き)
この記事は参考になりましたか?
- この記事の著者
-
杉山 貴章(スギヤマ タカアキ)
有限会社オングスにて、Javaを中心としたソフトウェア開発や、プログラミング関連書籍の執筆、IT系の解説記事やニュース記事の執筆などを手がけている。そのかたわら、専門学校の非常勤講師としてプログラミングやソフトウェア開発の基礎などを教えている。著書に『Javaアルゴリズム+データ構造完全制覇』『Ja...
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社
この記事は参考になりましたか?
この記事をシェア

