持续向AWS托管的Spring Boot应用程序部署功能

持续向AWS托管的Spring Boot应用程序部署功能,spring,spring-boot,amazon-ec2,Spring,Spring Boot,Amazon Ec2,我正在寻找有关如何将新功能持续部署到托管在AWS EC2实例上的Spring Boot web应用程序的建议/想法。我当前的工作流程: bootRepackagemy应用程序创建war文件 将该文件上载到AWS 向我的应用程序添加新功能 bootRepackage再次启动 从AWS中删除当前war,并上载新war 这显然不是一个好的工作流,因为应用程序需要重新启动,这可能会导致1)停机,2)数据库中的条目丢失(如果我使用Spring的默认H2数据库-我不是,我使用的是独立的SQL server,

我正在寻找有关如何将新功能持续部署到托管在AWS EC2实例上的Spring Boot web应用程序的建议/想法。我当前的工作流程:

  • bootRepackage
    my应用程序创建war文件
  • 将该文件上载到AWS
  • 向我的应用程序添加新功能
  • bootRepackage
    再次启动
  • 从AWS中删除当前war,并上载新war
  • 这显然不是一个好的工作流,因为应用程序需要重新启动,这可能会导致1)停机,2)数据库中的条目丢失(如果我使用Spring的默认H2数据库-我不是,我使用的是独立的SQL server,但只是针对这个问题),所以我想简化它

    有没有办法向AWS上的当前服务实例添加新功能?是否有可能重新编译代码“一个飞”,以防止需要重新启动应用程序

    有没有办法创建一个更好的设置,让我只需合并一个新的分支以在本地进行主控,并在prod中使用相同的实例(除了此新功能)推送它

    提前谢谢你


    更新,真的是正确答案吗?

    如果您使用单个aws实例并将应用程序部署到EC2实例,请为aws EC2实例分配

    弹性IP地址是一个静态IPv4地址,专为动态IP地址而设计 云计算。弹性IP地址与AWS关联 账户使用弹性IP地址,您可以屏蔽 通过快速将地址重新映射到另一个实例或软件 实例在您的帐户中

  • 在另一个AWS EC2实例中部署新版本的应用程序
  • 当应用程序准备就绪时,将弹性IP从现有EC2实例重新分配给新EC2实例

  • 弹性IP是实现蓝绿色开关的最简单方法。

    您是否有具有多个实例的负载平衡器以及应用程序的域设置?@NOTENTQUEST No,这两种情况都是如此。你介意详细说明一下吗?谢谢