AWS - 如何在不丢失实例和弹性 IP 的情况下暂停 Elastic Beanstalk 环境?
Posted
技术标签:
【中文标题】AWS - 如何在不丢失实例和弹性 IP 的情况下暂停 Elastic Beanstalk 环境?【英文标题】:AWS - How to pause an Elastic Beanstalk environment without losing instance & elastic IP? 【发布时间】:2019-01-03 17:32:33 【问题描述】:所以,我正在运行一个带有单个实例的 AWS Elastic Beanstalk 环境。
这个特定的应用程序是一个后台作业应用程序,为了将更改部署到我的数据库,我需要在部署过程中暂停该应用程序。我遇到了几个问题:-
我可以停止该 EBS 环境的 EC2 实例,但这最终会终止该实例,它会启动一个立即尝试运行的新实例(不希望这样,我想控制 EBS 环境何时启动再次)。 当新实例启动时,我与前一个实例关联的弹性 IP 被取消分配,并且不会自动分配给新的 EC2 实例(这是一个问题,因为我的数据库有 IP 防火墙,所以我需要它在暂停前后保持相同的 IP)。我读到将我的 EBS 与 VPC 关联可能会解决 IP 问题,但我不知道该怎么做。在我的配置中,它显示“此环境不是 VPC 的一部分。”但没有选项可以使环境成为 VPC 的一部分?
理想情况下,我希望只是“暂停”实例,以便它停止并可以重新启动,而不会丢失该实例或该实例的 IP 配置。
谁能帮我解决这些问题,或提供一些其他配置此设置的方法?
【问题讨论】:
为了帮助获得更好的答案,请将您的标签更改为 [elastic-beanstalk]。 Elastic Beanstalk 是 EB,而不是 EBS(弹性块存储)。还要在问题的标题中使用 Beanstalk。 你所做的是打破了 Beanstalk 的设计目标。 Beanstalk 管理您的环境。通过停止实例,Beanstalk 认为 EC2 实例失败并替换它。可能的想法,将您的数据库从 EB 移到 RDS 中。但是,您没有详细说明为什么需要停止实例来进行数据库更改,RDS 可能也无济于事。您没有提到在 EB 中有负载均衡器。您可以添加一个,将 EIP 分配给负载均衡器。请记住,您不需要使用 EB。您可以将 Beastalk 替换为其他具有更细粒度控制的 AWS 服务。 【参考方案1】:我对 Beanstalk 不是很有经验,但是您可以使用 .ebsextension 让脚本在实例启动时运行,对吗?然后使用该脚本调用 aws api 以获取可用的弹性 IP 并将其分配给实例本身。
【讨论】:
是的,这可能会起作用。我会调查的。在我停止实例后处理实例自动启动有什么建议吗?我尝试添加终止保护并更改停止行为,但都没有改变。以上是关于AWS - 如何在不丢失实例和弹性 IP 的情况下暂停 Elastic Beanstalk 环境?的主要内容,如果未能解决你的问题,请参考以下文章
CSS Flex Box:如何在不丢失弹性项目高度的情况下将“弹性项目”垂直对齐到中间?
ec2 实例无法在没有弹性 IP 地址的情况下访问公共子网中的互联网?