使用set在Amazon EC2上运行grails应用程序

时间:2014-09-10 21:43:24

标签: grails amazon-web-services amazon-ec2

我使用以下命令在Amazon Linux EC2实例上运行grails应用程序:

setsid grails run-war

我使用了这个命令,这样我就不必打开我的终端窗口,它可以继续运行,即使我的Windows计算机已关闭,我也可以登录亚马逊机器。唯一的问题是它运行良好一天然后它似乎关闭。我每隔一天发现一次,我必须重新发出命令。是什么导致应用程序退出,因此需要重新启动?

2 个答案:

答案 0 :(得分:2)

正如在任何类型的部署环境中使用run-app的评论所指出的那样,按照您希望的方式运行。

run-app的Grails文档甚至包括以下声明(重点是我的):

  

此目标不适用于部署应用程序。   生成WAR文件时实现了许多优化   用于run-app之后不可用于run-app的部署   优化了开发人员的工作效率,而不是性能。

注意它说“部署”而不是“生产”。简而言之,你正试图用一把螺丝刀钉在钉子上(这是工作的错误工具)。解决方案是在该环境中部署您的应用程序,而不是使用run-app

答案 1 :(得分:0)

如果你想要的是在EC2上运行你的Grails应用程序,那么Boxfuse会为deploying Grails 3.x apps on EC2提供简单的原生支持。

你需要做的只是字面意思

boxfuse run my-grails3-app-1.0.jar

和Boxfuse将自动

  • 融合为您的应用量身定制的最小操作系统映像(需要<10秒,图像大约100 MB 包括 JVM和您的应用程序)
  • 将其推送到安全的在线图像存储库
  • 在大约30秒内将其转换为AMI
  • 创建弹性IP并为其分配新域
  • 创建一个打开正确端口的安全组
  • 启动您的AMI&amp;的实例确保健康检查通过
  • 将弹性IP(和新域)映射到新实例

所有更新均以零停机蓝/绿部署执行。如果您需要多个实例,Boxfuse还支持ELB,自动缩放等。

Boxfuse分析您的原生Grails 3 application.yml配置并自动提取您的应用所需的端口和运行状况检查信息。然后,此信息用于正确设置安全组和ELB。

更多信息:https://boxfuse.com/getstarted/grails

免责声明:我是Boxfuse的创始人兼首席执行官