私、AmazonEC2 × Playframworkでいくつかアプリを作ってきたのですが、
あんまり自分の周りでそういう方を見かけなくて寂しい思いをしております。
「PlayだったらHerokuでしょ。ラクだし。」
「EC2って自分で環境作らなきゃいけないんでしょ?めんどいよ。」
とか、言われてる気がしています。
実際そんなことなくて、とっても簡単なので、
ぜひトライしてみていただきたく、この記事を書くに至りました。
さっそくAmazon EC2の上で、Playframeworkを動かしてみましょう!
今回使用するのはPlayframework1.2.5です。
あ、そもそもPlayframeworkってなんぞ?って方はこちらをご覧下さい。
あと、AmazonEC2の調達はここでは割愛させていただきます。。
・・・ググればすごく丁寧に解説してる方がたくさんいますので、そちらが参考になりますよ!!(汗
○Playのインストール
まず、EC2にログインし、以下のコマンドでPlayをダウンロードします。
wget http://download.playframework.org/releases/play-1.2.5.zip
ダウンロードが終わったら解凍。
unzip play-1.2.5.zip
それが終われば、足元にplay-1.2.5というディレクトリができあがっているはずです。
そしたら先にパスを通してしまいましょう。
PATH=$PATH:/home/ec2-user/play-1.2.5 export PATH play
上記の様に打って、Playに触れることが確認できればOKですね。
こんな感じで。
○プロジェクトの作成
こんどは実際に動かすアプリケーションを作っちゃいましょう。
play newの後にアプリケーションの名前をつけてあげるだけ、これだけです。
今回は「sampleapp」って名前にしておきます。
play new sampleapp
すると足元にsampleappというディレクトリができあがります。
さて、早速起動したいところなのですが、
Playデフォルトだと9000番ポートで実行されるので、9000番が空いてないと起動しても確認ができなーい。。。
ここがEC2のちょっとめんどうなとこですね。
(Herokuだったらデプロイするだけであとは全部勝手にやってくれたりするらしいですね。)
でも僕はEC2。
80番にアクセスが来たら9000番に行くように、Apache編集してあげましょう。
(手っ取り早く9000番を開けちゃうっていうのも手ですね。)
sudo vi /etc/httpd/conf/httpd.conf
で、Apacheの設定ファイルを開きましょう。
必ずsudoなりsudo suしてから開いてください。
そうしないと読み取り専用で開いてしまい、編集したのに保存できなくて悲しくなるので。
で、ファイルの一番下にリバースプロキシの設定を書きます。
<VirtualHost *:80> RewriteEngine On RewriteRule ^/(.*)$ http://127.0.0.1:9000/$1 [P] </VirtualHost>
とりあえず、80番は開いてると思うので、80番にリクエストが来たら、
すべて9000番に行くようにしてしまいましょう。
編集が終わったらApacheの再起動を忘れずに。
sudo /etc/init.d/httpd restart
これで準備OKです。
sampleappディレクトリに移動し、play runでアプリを起動してみましょう。
起動しましたね。
9000番で待ってるよ、早くリクエスト送ってね!って言ってるんで、さっさとアクセスしましょう。
80番からアクセスして、こちらの画面が表示されれば成功です!
どうですか?簡単ですよね。
実際Herokuだとデプロイすればコンパイルして起動してくれるんでラクなんですが、
EC2だとApacheなんかも含めたいろんな部分を自由に触ることができるんで、
自由度も高いし、何より環境構築からやると、とても勉強になります。
いじりすぎて、なんかよくわかんなくなったら、インスタンス潰して、作り直す、とかもできますし!
とってもオススメです。
ぜひぜひ、トライしてみてください。