日本法人の設立がニュースにもなっていたEngine Yardの提供するPaaSサービス、「Engine Yard Cloud」についてアカウントの取得からデプロイまでの流れをまとめた日本語記事が無かったのでまとめてみました。

Engine Yard Cloudの概要

Herokuと同様に主にRubyをサポートするPaaSスタックとして知られているEngine Yard Cloudですが、実際に使ってみると気がつく特徴がいくつかあります。

  • アプリケーションごとに独立したEC2インスタンスを専有して動作
  • インスタンスの構築はchefを利用した自動構築
  • インスタンスを日本リージョンに配置する事も可能
  • gitレポジトリからアプリケーションを自動デプロイ
  • 稼働中のインスタンスへのsshログインも可能

直接の比較対象になりやすいHerokuは大きなクラスタをさまざまなアプリケーションが共用するイメージですが、Engine Yard Cloudはアプリケーション毎に専用のEC2インスタンスを自動構築して稼働します。これによりネットワーク接続数などは特になくEC2インスタンスの性能をそのまま利用できます。この特徴が一般的な資料などでは「シングルテナント方式」と表現されています。

「Herokuはマルチテナントだが、Engine Yardはシングルテナントで提供するため信頼性が高い。小規模ではシングルテナントのほうが低コストだが、大規模ではマルチテナントではシングルテナントの方が有利になる」
http://itpro.nikkeibp.co.jp/article/NEWS/20120904/420402/

アカウントの取得

アカウントの作成は公式サイトの右上からアカウントサービスにアクセスして行います。日本法人のウェブサイト、アメリカ本国のウェブサイトのどちらからアクセスしても同じページにリンクしています。またPHPのクラウドサービスである、Orchestra.ioもログインサービスが統合されていますのでOrchestra.ioのアカウントを既に持っている場合はアカウントを移行して利用する事も出来ます。

アカウントの登録に必要になるのはフルネーム、メールアドレス、パスワードの3項目ととてもシンプルです。無料のトライアルアカウントであればクレジットカードや請求先などの情報の入力は必要ありません。正しくアカウントを登録するとアクティベーションの為のURLが登録したメールアドレス宛に送信されます。

メールで送信されたURLからログインするとEngine Yardが提供する各サービスへのメニューが表示されます。今回は一番左側のRuby等のスタックが利用できるPaaSサービスであるEngine Yard Cloudをクリックします。

次にEngine Yard Cloud上のアカウント名を入力し、左側のボタンをクリックして無料トライアルを開始します。Engine Yard Cloudのアカウントは複数の個人アカウントを管理者として紐付ける事もできる為、ここで入力するアカウントは組織名などをベースにしたような名称が良いでしょう。これで無事にアカウントが作成されアプリケーションをデプロイする準備が整いました。

サンプルアプリケーションのデプロイ

作成済みのアプリケーションが無い場合はアプリケーションの新規作成画面がすぐに表示されます。ここではデプロイするアプリケーションのgitリポジトリのアドレスやスタックの種類、データベースの種類などを選択します。今回はまずは公式サンプルアプリをデプロイするべく、gitリポジトリの入力欄のすぐ下にある"Rails ToDo app"をクリックし、ページ下部の"Create Application"のボタンをクリックします。

あとは自動的に環境の構築とデプロイが始まり、状況が逐次メッセージで表示されます。このステップではAmazon EC2に新しいインスタンスを起動し、Unixパッケージ、Ruby、RubyGems、nginx、データベース・サーバなどのセットアップが行われる為8分ほど時間がかかります。この構築作業はインスタンスの停止、再開の際にも実行されEngine Yard Cloudの特徴的な動きになっています。アプリケーションコードのデプロイ作業についてはインスタンスを再構築する事なく即座に行えます。

デプロイが完了すると稼働中のアプリケーションへのリンクが表示され、ソースコードの再デプロイやインスタンスの停止、削除といった操作が行えるようになります。また予め公開鍵を登録しておけば稼働中のインスタンスへのsshログインも可能です。

サンプルアプリケーションが無事に動作しました。この場合は1つのEC2インスタンスにnginxやデータベースサーバが同居する形でアプリケーションが稼働しています。インスタンス自体は100%専有している状態という事もあり同時接続数についての特別な制限なども無く一般的なレベルでのパフォーマンスを発揮しています。
インスタンスを動かしている間はトライアルの500時間がカウントダウンされていきます。用事が無い場合はインスタンスの停止を行いましょう。

ひとまず支払いの必要や特別なソフトウェアの導入などは特に必要ありませんので、一度ためしてみると良いのではないでしょうか。アカウントの作成はこちらから行えます。

次回の記事ではEngine Yardの特徴でもあるインスタンスを日本リージョンへ配置する設定と、インスタンスへのsshログインの方法をまとめます���