Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 如何使应用程序长期部署在EC2服务器上?_Amazon Web Services_Amazon Ec2_Deployment - Fatal编程技术网

Amazon web services 如何使应用程序长期部署在EC2服务器上?

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将自动将应用程序实例的数量保持为

我有一个spring启动应用程序,它部署在运行良好的EC2服务器上

但经过一定时间后,该任务将自动终止。我试图寻找解决方案,但找不到任何解决方案,或者可能是因为我不知道要搜索什么。这就是问题所在

有什么我可以实现的,将继续ping实例,这将保持它的活力?
如果是,如何实施?我必须考虑做这件事的其他缺点吗?< /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应用程序。