【发布时间】:2022-01-16 19:12:01
【问题描述】:
我有一个服务需要在我们自己的 EC2 实例上运行,因为它需要内核的一些支持。我以前的经验都是使用 AWS 中的容器。应用程序本身作为单个 JAR 文件分发,我正在寻找有关如何自动化部署的建议。架构是:
- ASG 前面的 ALB。
- 运行单个 Java 应用程序的 EC2 实例。
任何打开的套接字最多打开一个小时并且为了不造成任何问题,我们必须在执行更新之前耗尽与 EC2 实例的连接,因此 ALB 的硬性要求是在一个小时内停止打开新连接在更新软件之前。该应用程序是关键任务,ECS 去年出现了一些问题,所以我想尽量减少我所依赖的 AWS 服务。虽然我可以使用自定义 AMI 在我自己的 ECS 集群上做我想做的事,但我不想这样做,因为我将在每个主机上运行一个应用程序实例,并且不需要额外的层。
我的问题:使用 CodePipeline 实现这一目标的最简单方法是什么?我的理解是,我需要使用 CodeDeploy 部署步骤将某些内容推送到裸 EC2 实例。在这种情况下,如何使用 ALB 进行排水?我们正在使用 CloudFormation 进行部署。
【问题讨论】:
标签: amazon-web-services amazon-ec2 aws-codepipeline aws-code-deploy aws-auto-scaling