Red Hat の PaaS「OpenShift」を試してみた

「米Red Hat、クラウドサービス「OpenShift」でJava EE 6をサポート。Java EE 6を提供する初のPaaSに」というニュースを見て、せっかくなので試してみました。

概要

OpenShift は、PaaS 型のクラウドサービスで、 Java 以外にも Ruby/Python/PHP/Perl 等に対応しています。
また、ストレージとしては MySQL/SQLite/Amazon RDS 等が利用できるようです。
アプリケーションのデプロイやその他管理には、専用のクライアントツール(コマンドライン)を利用します。

サイトに載っている手順に従い、 Ubuntu 上で Java EE のサンプルアプリケーションをデプロイして動作を確認するところまでを確認しました。サイトでは PHP の場合の手順が載っていますが、今回は Java EE でやってみます。

手順

サインアップ

Open Shift のサイトの「Sign up and try it」から登録を行います。登録にはメールアドレスとパスワード、CAPTCHA を入力します。

サインイン

登録したメールアドレスとパスワードでサインインすると、トップページの「Sign up and try it」が「Get started!」に変わっているので、そこから進みます。

すると、クライアントツールのインストールからアプリケーションの実行までの手順が記載されています。

クライアントツールのインストール

git/ruby/rubygems/ruby-dev が必要となりますので、あらかじめインストールしておきます。
クライアントツールは RHEL および Fedora/その他 Linux/Mac/Windows が対応しているようです。
Ubuntu の場合は、su の前に sudo が必要です。

$ sudo su -c 'gem install rhc'

インストール後に、 /var/lib/gems/1.8/bin へ PATH を通しておきましょう。

ドメイン名の登録

自分用のドメイン名を登録します。
次の手順で説明するアプリケーション名と合わせて、自分のアプリケーションの URL は以下のような形式になります。

http://アプリケーション名-ドメイン名.rhcloud.com

ドメイン名の登録には、rhc-create-domain コマンドを利用します。メールアドレスとパスワードは、最初の手順で登録したものです。

$ rhc-create-domain -n 登録したいドメイン名 -l メールアドレス
Password:

この手順の中で、ssh のキーも発行されます。

アプリケーションの作成

アプリケーションの作成に成功すると、Git のリポジトリに登録された上でカレントディレクトリにチェックアウトされます。
Java EE アプリケーションの場合は、以下のように入力します。

$ rhc-create-app -a アプリケーション名 -t jbossas-7.0

t オプションは、作成するアプリケーションのタイプを指定します。今回指定したのは、Java EE 6 対応の JBoss Application Server 7.0 です。

この時点で、デフォルト状態でアプリケーションは起動済みです。
先程示した、以下の URL でブラウザからアクセスすることが可能です。

http://アプリケーション名-ドメイン名.rhcloud.com

ファイルの編集とデプロイ

チェックアウトしたアプリケーション(maven 形式になっています)を編集 → git commit → git push でサーバに変更が反映されます。
また、もちろん war 形式のファイルをデプロイすることもできますので、今回はこちらを試します。

とは言え、作業としては /deployments ディレクトリに war ファイルと、 war ファイル名.dodeploy という名前のファイル(中身は何も記述する必要はありません)を一緒に配置してリポジトリへ登録するだけです。
この際、ルート直下の pom.xml は削除しておきます。

サンプルのアプリケーションが提供されていますので、それをデプロイしてみます。

$ cp src/main/webapp/samples/weld-numberguess.war deployments
$ touch deployments/weld-numberguess.war.dodeploy
$ git add deployments/*
$ git rm pom.xml
$ git commit -m "war 形式のサンプルアプリケーションをデプロイ"
$ git push

以下の URL で、先程デプロイしたモジュールにアクセスすることができます。

http://アプリケーション名-ドメイン名.rhcloud.com/モジュール名


まとめ

最低限の動作確認までしか行っていませんが、基本操作は特に難しいところはなさそうです。コマンドラインのツールでも、特に問題ないかと思います。
せっかくの環境なので、もう少し触ってみたいと思います。