0

2012 年 8 月 18 日更新

Play 2.0.2 を使用しており、アプリを Amazon Webservices にデプロイしたいと考えています。これを行う最も簡単な方法は、Elasticbeanstalk を使用することだと思います。

Play2war を使用してアプリをパッケージ化しました https://github.com/dlecan/play2-war-plugin/

で梱包できました

play war

play2war の使い方ガイドによると、Linux 32bit Tomcat7 を使用していたため、ファイル名を ROOT.war に変更しました。

また、play2war のチュートリアルで説明されているように、サーブレット 3.0 も使用しました。(Tomcat 7 -> サーブレット 3.0)。

ファイルサイズは31MBです。

Elasticbeanstalk を使用するたびに、同じログが取得されます。

2012-08-18 00:25 GMT+0200
WARN
Environment health has been set to RED
2012-08-18 00:25 GMT+0200
INFO
Launched environment: elosource. However, there were issues during launch. See event log for details.
2012-08-18 00:25 GMT+0200
INFO
Your health check URL may be misconfigured. If your application does not respond to requests at http://elosource.elasticbeanstalk.com:80/, modify the health check URL to a valid path.

Linux 32/64 ビット、Tomcat7(servlet 3) および Tomcat6(servlet2.5) でテストしました。私はいつも同じ結果を得ます。

また、ヘルス チェッカー用の html ファイルを追加してみました。

  • 何をするようにすすめますか?

  • アプリを ec2 で実行するには、どのような代替手段が必要ですか?

  • mongodb、play などの必要なすべての依存関係を使用して、アプリを ec2 に手動でデプロイする方法を説明するガイドはありますか?

  • また、WAR ファイルは約 30 MB と比較的大きく、私の DSL 1k では、このような lage ファイルをアップロードするのは本当に面倒です。Elasticbeanstalk で変更のみをアップロードする方法はありますか?

4

4 に答える 4

5

わかりました、私は豆の木を使用していないので、これはあなたの質問に対する直接的な答えではないことを知っていますが、あなたがコメントの1つでそれを求めたように:

jvm がインストールされた Linux EC2 インスタンスで play2 アプリを実行する方法は次のとおりです。

  1. ローカル マシンのプロジェクト ディレクトリで、次のコマンドを実行します。play dist
  2. dist/yourapp-1.0-SNAPSHOT.zipファイル(または設定した任意のdist名)をEC2インスタンスに送信します
  3. インスタンスに ssh します
  4. cd必要なディレクトリにdistファイルを解凍します。
  5. 走るchmod +x start
  6. 走るnohup ./start &

これで、play2 アプリケーションが EC2 でネイティブに実行され、websocket とすべての優れた機能が利用できるようになりました。それが機能するために、プレイ中に特別なものを構成する必要はありませんでした。他の DB として構成された RDS データベースを使用しています。

明らかに、自分でサーバーを構成し、自動スケーリングを手動で設定する必要があるため、Beanstalk よりも少し面倒です。しかし、AWS ですべての機能を使用して play2 を実行するには、現時点ではこれが最善の方法であることがわかりました。

これが役立つことを願っています。

于 2012-08-21T20:15:41.580 に答える
3

フレームワークの優れた機能が失われるため、義務付けられているか、非常に正当な理由がある場合を除き、アプリケーションを戦争としてパッケージ化しないでください(サーブレット 3.0を使用しても websocket サポートが失われます)。

オプションは、dotCloudサービスを介してアプリをデプロイすることです。このサービスは Amazon EC2 上で実行され、スタックを選択して垂直方向に簡単にスケーリングできます。もちろん、価格に見合うかどうかを判断する必要がありますが、無料でテストできます.

Play 2 アプリケーションをデプロイできる他の PaaS プロバイダーもあります。

于 2012-08-18T09:58:47.370 に答える
2

INFO: The APR based Apache Tomcat Native...重要な部分ではありません。Tomcat はそれがなくても起動し、コンパイルしてもインスタンスは正常になりません。実際、catalina.outログはまったく正常に見えます。

私の推測では、Beanstalk のエラー メッセージは正確です: ヘルス チェック URL の構成が正しくありません。なんらかの理由で、アプリケーションはポート 80 でルート ドキュメントを返さないだけです。この問題は、いくつかの点で発生する可能性があります。静的 html または単純な jsp ページをアプリのルート ディレクトリ (WAR の最上位) に追加してみて、Beanstalk にそれをチェックしてもらいます。Beanstalk のデフォルトのポート構成は機能するはずです (私の記憶が正しければ、トラフィックは apache 経由で tomcat に渡されますが、しばらく調べていませんでした) $CATALINA_HOME/conf/server.xml

于 2012-08-12T03:54:42.147 に答える
1

Play 2.3.x 以降にアップグレードする場合、Boxfuseにはネイティブの Play 2 サポートがあり、これに対処できます。

これで簡単に実行できboxfuse run my-play-app-1.0.zip -env=prod、これは自動的に次のようになります。

  • Play 2 アプリ用にカスタマイズされた最小限の AMI を作成する
  • エラスティック IP を作成する
  • 適切な権限を持つセキュリティ グループを作成する
  • アプリのインスタンスを起動する

今後のすべての更新は、Blue/Green デプロイメントとしてダウンタイムなしで実行されます。

これは、Elastic Load Balancer および Auto-Scaling Groups でも機能し、Boxfuse の無料利用枠は AWS 無料利用枠に適合するように設計されています。

詳細については、https ://boxfuse.com/blog/playframework-aws をご覧ください。

免責事項: 私は Boxfuse の創設者兼 CEO です

于 2015-12-10T09:10:55.287 に答える