Hatena::ブログ(Diary)

aoki_pの日記

2011-08-19

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 を入力します。
f:id:aoki_p:20110819103711p:image:w360

サインイン

登録したメールアドレスパスワードでサインインすると、トップページの「Sign up and try it」が「Get started!」に変わっているので、そこから進みます。
f:id:aoki_p:20110819104215p:image:medium
すると、クライアントツールのインストールからアプリケーションの実行までの手順が記載されています。

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

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

f:id:aoki_p:20110819105514p:image:w360

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

チェックアウトしたアプリケーション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/モジュール名

f:id:aoki_p:20110819102657p:image:w360

まとめ

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

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/aoki_p/20110819/1313719870