Amazon web services 如何使应用程序长期部署在EC2服务器上?
我有一个spring启动应用程序,它部署在运行良好的EC2服务器上 但经过一定时间后,该任务将自动终止。我试图寻找解决方案,但找不到任何解决方案,或者可能是因为我不知道要搜索什么。这就是问题所在 有什么我可以实现的,将继续ping实例,这将保持它的活力?Amazon web services 如何使应用程序长期部署在EC2服务器上?,amazon-web-services,amazon-ec2,deployment,Amazon Web Services,Amazon Ec2,Deployment,我有一个spring启动应用程序,它部署在运行良好的EC2服务器上 但经过一定时间后,该任务将自动终止。我试图寻找解决方案,但找不到任何解决方案,或者可能是因为我不知道要搜索什么。这就是问题所在 有什么我可以实现的,将继续ping实例,这将保持它的活力? 如果是,如何实施?我必须考虑做这件事的其他缺点吗?< /P> < P> 选项1。弹性集装箱服务 将你的应用程序Dockerize。创建ECS集群并发布您的服务。您的Docker容器仍将在EC2实例上运行,但ECS将自动将应用程序实例的数量保持为
如果是,如何实施?我必须考虑做这件事的其他缺点吗?< /P> < P> <强>选项1。弹性集装箱服务 将你的应用程序Dockerize。创建ECS集群并发布您的服务。您的Docker容器仍将在EC2实例上运行,但ECS将自动将应用程序实例的数量保持为“活动”。如果容器被终止(因为主Java进程被终止),ECS将自动重新启动容器 选项2。弹性豆茎 使用Elastic Beanstalk发布Java应用程序,它将自动监视web应用程序的“运行状况”,并自动替换“不健康”的EC2实例。它只适用于web应用程序,因为Elastic Beanstalk会调用您指定的URL进行HTTP(S)检查 选项3。使用带有自动缩放组的弹性负载平衡器
ELB可以对您的应用程序执行HTTP(s)检查。如果一个实例没有响应,它将被自动替换。您将需要创建一个AMI或cloud init脚本来引导新实例。您的java进程是否被终止?如果是的话,你检查过日志了吗?为什么它会被杀死?是的,java进程会被杀死。日志中没有什么特别的内容。你能用nohup启动java进程吗?@AmitKhandelwal我进一步调试了这个问题,发现一旦我的ssh连接停用,java进程就会被终止。所以,根据你的建议,我研究了nohup,它对我来说是可行的。但这是否足以用于生产应用?太好了!谢谢你提供的细节。如果web应用程序的使用受到很大限制,那么哪一个是理想的解决方案。只有少数用户?没关系,这些都是不错的选择。如果您是AWS新手,Beanstalk可能对您来说是最简单的,因为它会自动为您进行大量编排。您还可以使用Beanstalk部署Docker和Java应用程序。