我有一个弹簧启动应用程序,它部署在运行正常的EC2服务器上。
但是经过一段时间后,该任务会自动被杀死。我试图寻找一个解决方案,但无法找到任何解决方案,或者我可能并不确切地知道要搜索什么。因此关于SO的问题。
有什么我可以实现的,它会继续ping实例以保持活着吗? 如果是,我该如何实施呢?这样做我还要考虑其他任何缺点吗?
答案 0 :(得分:0)
选项1.弹性容器服务
Dockerize您的应用。创建ECS群集并发布您的服务。您的Docker容器仍将在EC2实例上运行,但ECS将自动将应用程序实例的数量保持为“活动”。如果容器被杀死(因为主Java进程被杀死),ECS将自动重启容器。
选项2. Elastic Beanstalk
使用Elastic Beanstalk发布您的Java应用程序,它将自动监控您的Web应用程序的“运行状况”,并自动替换“不健康”的EC2实例。它仅适用于Web应用程序,因为Elastic Beanstalk会调用HTTP(S)检查您指定的URL。
选项3.将弹性负载均衡器与Auto Scaling组配合使用
ELB可以对您的应用进行HTTP(s)检查。如果实例没有响应,它将自动替换。您需要创建一个AMI或cloud-init脚本来引导新实例。