OpenShiftについて
「OpenShift 」は、米Red Hat社が運営しているPaaS型のクラウドサービスです。Java、PHP、Ruby、Python、Perlに対応しており、それぞれの開発フレームワークを利用したアプリケーションを展開することができます。現在はまだプレビュー段階ですが、SLA無しなどといった条件のもとで利用することができるのが特徴です。
OpenShiftには、無償で利用できる「Express」と、有償の「Flex」の2種類のサービスがあります。ExpressではWebコンソールやコマンドラインツールを用いたWebアプリケーションの作成や公開、カスタマイズ、gitを用いたデプロイやリポジトリ管理などを行え、アプリケーションは共有のサーバインスタンスに展開されます。
一方Flexでは、自前のサーバインスタンスやクラウドオブジェクトを作成・展開することが可能で、その上にアプリケーションをデプロイできます。サーバインスタンスなどはAmazon EC2上に展開されます。
ExpressとFlexのそれぞれにおいて提供される機能、サポートされる言語やフレームワーク、データベースは下表のようになっています。Javaに関してはJava EE 6のフル機能がサポートされており、このバックグラウンドにはRed Hat社が提供しているJBoss Application Serverが使われているとのこと。すなわち、JBoss AS上で動作するJavaアプリケーション(当然、Java EE 6仕様に準拠したものを含む)であれば、そのままOpenShift上で実行できるということになります。
表1 ExpressとFlexの機能比較
機能 Express Flex
コマンドラインインターフェース ○ ×
GUIインターフェース × ○
クラウドオブジェクトの作成 × ○
クラウドオブジェクトの管理 × ○
クラスタの作成 × ○
クラスタの管理 × ○
サーバの作成 × ○
サーバの管理 × ○
アプリケーションの作成 ○ ○
アプリケーションの管理 ○ ○
アプリケーションのインポート × ○
アプリケーションのカスタマイズ ○ ○
アプリケーションのデプロイ ○ ○
クラウドのパフォーマンスの閲覧 × ○
出典:https://docs.redhat.com/docs/en-US/OpenShift_Express/1.0/html/User_Guide/chap-OpenShift_Overview.html
表2 サポートされる言語やフレームワークなど
言語など Express Flex
Ruby Rails, Sinatra Rails, Sinatra
Python Pylons, Turbogears, Django Pylons, Turbogears, Django
Perl PerlDancer -
PHP Zend, Cake, Symfony, CodeIgniter Zend, Cake, Symfony, CodeIgniter
Java JavaEE6, CDI/Weld, Spring, Seam JavaEE6, CDI/Weld, Spring, Seam
データベース MySQL, SQLite MySQL, MongoDB, Membase
メッセージング (サポート予定) MRG
出典:https://openshift.redhat.com/app/features
本稿では、Expressの方を使ってWebアプリケーションを展開する方法を紹介します。
アプリケーションを作成する
前述のように、Expressはアカウント登録をすれば無償で利用することができます。サインインすると図1 のように「Open control panel」のリンクが表示されます。
図1 OpenShiftのトップページ。サインインするとコントロールパネルが利用できる
コントロールパネルは、クラウド上のアプリケーションを管理するためのWebコンソールです。この画面でアプリケーションの作成や削除などを行うことができます。OpenShiftではそれ以外にコマンドラインベースの管理ツールも提供されており、PCのコマンドラインからアプリケーションを管理することもできますが、まずはコントロールパネルの使用方法を紹介しましょう。
アプリケーションを作成するためにはユーザごとにユニークなドメイン名を登録する必要があります。「 NAMESPACE」の項目で任意のドメイン名を入力して[Save]をクリックします(図2 ) 。他のユーザが同じドメイン名を使っていなければ図3 のようにドメイン名が登録できます。
図2 ドメイン名の登録
図3 登録したドメイン名はアプリケーションの公開URLの一部になる
このドメイン名はアプリケーションの公開URLに含まれることになります。たとえばドメイン名が「takaaki」であれば、アプリケーションの公開URLは「http://アプリケーション名-takaaki.rhcloud.com」のようになります。
続いて、SSH用の公開鍵を登録する。OpenShiftでは、アプリケーションのデプロイはgitリポジトリを通じて行います。このgitリポジトリにはsshを介してアクセスする必要があるため、利用するためにはあらかじめクライアントPCの公開鍵をコントロールパネルに登録しておかなければなりません。公開鍵の作成は、OpenSSHなどのSSHクライアントツールを利用して行います。Windows環境の場合は、Cygwin やOpenSSH for Windows を使うことで、sshや後述するssh-keygenなどのコマンドを利用できるようになります。
公開鍵および秘密鍵の生成はssh-keygenコマンドを利用して行います。Cygwinを使って~/.sshディレクトリ以下に鍵ファイルを生成したい場合には次のようになります(「 openshift_id_rsa」の部分は任意のファイル名でよい) 。
# cd ~/.ssh/
# ssh-keygen -f openshift_id_rsa
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in openshift_id_rsa.
Your public key has been saved in openshift_id_rsa.pub.
(以下省略)
これで~/.ssh以下に「openshift_id_rsa」と「openshift_id_rsa.pub」の2つのファイルが生成されます。前者が秘密鍵で後者が公開鍵です。このうち、公開鍵である「openshift_id_rsa.pub」の中身を、図4 のコントロールパネルに登録します。
図4 クライアントPCの公開鍵の登録
ドメイン名と公開鍵を登録できたら、いよいよアプリケーションを作成してみましょう。図5 のように「Apps」の項目で任意のアプリケーション名を記入し、アプリケーションのタイプを選んで[Add]をクリックします。タイプは使用するプログラミング言語基盤別に「perl」「 jbossas(Java)」「 wsgi(Python)」「 rack(ruby)」「 php」のいずれかが選択できます。本稿の例ではjbossasを選んで作成しました。
図5 任意の名前でアプリケーションを作成。使用する言語に応じてタイプを選択する
アプリケーションが作成されると、図6 のようにその公開URLと、gitリポジトリのURLが表示されます。
図6 アプリケーションが作成されると、公開URLとgitリポジトリのURLが表示される
作成されたアプリケーションは、最初はあらかじめ用意された雛形の状態です。公開URLにアクセスすると図7 のようなページが表示されるはずです。
図7 初期状態のアプリケーションのトップページ
次回はこのアプリケーションのカスタマイズの仕方や、コマンドラインツールの利用方法などについて解説します。