サーブレット/JSPを基にする重厚長大なJavaのWeb開発のイメージを変える軽量フレームワーク「Play」について解説し、Webアプリの作り方を紹介する入門連載。最終回は、作成したアプリを簡単にWeb上に公開する方法とPostgreSQL対応、テスト環境の構築と自動テストの実行の仕方を解説します。
前回の記事「Playの充実したテスト環境で行う5種のテスト」では、Play frameworkを使ったアプリのテストを紹介しました。今回はJavaを使ったPlay framework開発の入門連載の最終回として、作成したアプリを簡単にWeb上に公開する方法を紹介します。
アプリの公開には、「Heroku」というサービスを利用します。
HerokuはRubyやJava、Python、Node.js、Clojure、Scalaなどさまざまな言語をサポートしているPaaSです。Play frameworkも公式にサポートしています。
Herokuは基本的なサービスを無料で提供し、高度な機能や特別なサービスについては料金を課金する「フリーミアム」というビジネスモデルを採用しています。今回紹介するサンプルを試しに動かすだけであれば、問題なく無料の範囲で利用できます。
またHerokuはコマンドラインからアプリを簡単にデプロイする機能を備えています。そのため、特別な設定をすることなく簡単に、個人で作成したアプリをWeb上に公開できます。
なお、HerokuはPlay frameworkを公式サポートしているという点以外にも、Play frameworkと相性が良い点があります。
Herokuの設立者であるAdam Wiggins氏は「THE TWELVE-FACTOR APP」という、モダンなアプリが備えるべき12の原則を提唱しており、Herokuもこの原則に基づいて実現されています。
この原則の1つに、「Execute the app as one or more stateless processes」(アプリケーションはステートレスなプロセスで実行するべき)という原則があります。
Webシステムを例にすると、「リクエスト間で巨大なデータを使いまわす場合、ファイルシステムに保存するのではなく、バックエンドのデータベースに保存して使うべき」といったことを述べています。
上記の原則を実現するために、Herokuでは「dyno」という単位でプロセスを管理しており、もしスケールアウトが必要となった場合は、このdynoの割り当てを増やすだけで、すぐに対応できるようになっています。
連載第5回の「Playで体得するRESTfulアーキテクチャの基礎知識」でも紹介したように、Play frameworkはステートレスなアーキテクチャで実現されています。そのため、HerokuとPlay frameworkの組み合わせであれば、スケーラブルなシステムを容易に構築できます。
それでは、早速Herokuへのデプロイを開始してみましょう。今回の主な内容は以下の通りです。
なお、今回はまずDBを使わないシンプルなアプリのデプロイとして、連載第6回で作成した占いアプリを使います。その後、DBを使うアプリとして、連載第2回の「Play frameworkのDB操作を楽にするEBeanの基礎知識」で作成したサンプルのデプロイを行います。
サンプルアプリを作成していない方は作成し、ローカルで動作することを確認しておいてください。
まずは連載第6回で作成した占いアプリを使って、Herokuのデプロイを体験してみましょう。
前述の通り、HerokuはPlay frameworkを公式サポートしているため、新規に設定ファイルを作成したり、既存ファイルを編集したりすることなく、簡単にデプロイできます。
Herokuへのデプロイは、以下の手順で行います。
ここで、Gitリポジトリへのpushで手順が終わっていることに疑問を抱く方もいるかもしれません。Herokuにはデプロイ専用のコマンドはありません。HerokuのGitリポジトリへ変更をpushすることで、自動でビルド、デプロイの処理が実行され、アプリが公開されるようになっています。
まずは、Herokuのアカウントを登録します。Heroku公式サイトを開き、「Sign up for free」のリンクからアカウント登録を行ってください。
アカウント登録が完了したら、Herokuの環境設定やログ確認を行うためのCUIツールである「Heroku Client」をインストールします。
以下から利用するOSに対応したインストーラーをダウンロードし、Heroku clientのインストールを行ってください。今回はWindows版を利用して進めていきます。
なお、前述の通り、HerokuへのデプロイにはGitリポジトリへのpushを行う必要があるため、GitとSSHがインストールされている必要があります。
上記インストーラーには、GitとSSHも含まれているので、もしGitとSSHがインストールされていない場合は、以下のようにチェックして、Heroku Clientと併せてインストールしておいてください。
Copyright © ITmedia, Inc. All Rights Reserved.