もうすぐPivotal Web Servicesの60日間無料トライアルが期限切れになるので、急いでアプリを作らないといけないです。Hello Worldからすこし成長して、RDBを使ったプログラムをデプロイしようと思います。通常PaaSでRDBを使う場合は、Amazon RDSのようなDBaaSを使う必要があります。IronMQとの連携の際に、Amazon RDSの代替サービスとしてPostgreSQLのElephantSQLを使いました。今度はMySQLのDBaaSであるClearDBを試してみます。
PaaS向けの共有無料プラン
ClearDBはいろいろなPaaSのアドオンとして使える、開発用の無料プランが用意されています。共有サービスでストレージも5MBと少ないですが、動作確認には十分です。どのPaaSもプラン名はおもしろいです。
- Pivotal Web Services: Spark DB / 5MB
- AppFog: Aluminium DB / 5MB
- Heroku: Ignite DB / 5MB
- MicrosoftAzure: Mercury / 20MB
今回はPivotal Web Servicesにログインしてから、無料プランを使ってみます。
通常の専有クラスタープラン
PaaS以外から使う場合は専有プランになりますが、最小のSmall DBでも$399.99/moなので、個人で使うには高めの設定です。30日間の無料期間があるのでこちらも試してみようと思います。
Pivotal Web Services用のClearDB
Merketplace画面から、CleaDBを選択します。SERVICE PLANSからfreeのSpark DBを選び、”Select this plan”ボタンを押すと、ClearDBのMy Dashboardに移動します。
My Databaseに一覧されているDatabase nameをクリックすると、データベースのページが表示されるので、”Endpoint Inforation”タブからDB接続情報を確認します。
ローカルからもmysqlコマンドで接続できました。MySQLのバージョンは5.5.40です。比較的最新のバージョンを使えるようです。
$ mysql -h xxx.cleardb.net -uxxx -pxxx xxx |
PivotalCFのClearDBのドキュメントを読むと、環境変数VCAP_SERVICES
のフォーマットは以下のようなJSONになっています。このJSONをパースすれば接続情報をプログラムから取得できますが、どうもスマートな方法ではありません。
{ |
Spring Cloudの@Profile(“cloud”)を使う
ここでSpring Cloudの出番のようです。Configure Service Connections for Springを読むと何となくうまく行きそうな感じがします。