Amazon ec2 使用弹性Beanstalk部署的应用程序上的弹性IP

Amazon ec2 使用弹性Beanstalk部署的应用程序上的弹性IP,amazon-ec2,amazon-web-services,amazon-elastic-beanstalk,Amazon Ec2,Amazon Web Services,Amazon Elastic Beanstalk,我对AmazonWeb服务提供的弹性IP服务的使用感到有点困惑。我想主要的想法是,我可以按照以下简单的步骤切换到新版本的web应用程序,而无需停机: 在新的EC2实例上部署新版本 正确配置新版本,并使用暂存数据库对其进行测试 正确测试后,使此新版本使用live DB 将弹性IP与此实例关联 终止所有无用的服务(暂存DB和旧EC2实例) 这是部署web应用程序新版本的常用方法吗 现在,如果应用程序在更多实例上进行扩展,会怎么样?我在Elastic Beanstalk设置中配置了自动伸缩,这创建了一

我对AmazonWeb服务提供的弹性IP服务的使用感到有点困惑。我想主要的想法是,我可以按照以下简单的步骤切换到新版本的web应用程序,而无需停机:

  • 在新的EC2实例上部署新版本
  • 正确配置新版本,并使用暂存数据库对其进行测试
  • 正确测试后,使此新版本使用live DB
  • 将弹性IP与此实例关联
  • 终止所有无用的服务(暂存DB和旧EC2实例)
  • 这是部署web应用程序新版本的常用方法吗

    现在,如果应用程序在更多实例上进行扩展,会怎么样?我在Elastic Beanstalk设置中配置了自动伸缩,这创建了一个负载平衡器(我可以在AWS管理控制台的EC2部分看到)。问题是我显然无法将弹性IP与负载平衡器相关联,我必须将其与现有实例相关联。我应该将其关联到哪个实例?我很困惑

    抱歉,如果有些问题听起来很愚蠢,但我只是一个程序员,这是我第一次设置云系统

    谢谢大家!

    不起作用,事实上这两个概念根本不在一起

    通过弹性负载平衡实现弹性 相反,ELB通常通过(但见下文)使用,这通过允许别名DNS地址更改正在使用的ELB的IP(如果需要)提供了第一级弹性/可用性。第二级弹性/可用性由负载平衡器在已注册的EC2实例之间分配流量时执行

    可以这样想:CNAME永远不会改变(就像弹性IP地址一样),EC2实例的替换是通过负载平衡器或您自己(通过注册/注销实例)来处理的

    这在Shlomo Swidler的优秀分析中得到了更详细的解释,该分析又引用了AWS最近提供的分析,该分析证实了他的分析,并对弹性负载平衡服务的体系结构及其本身的工作方式提供了良好的总体解读(但缺乏Shlomo提供的说明性分步示例)

    域名 请注意,为了允许根域(或区域顶点)也被使用,需要CNAME的前一个限制已经通过相应的添加得到了解决,请参见“别名和区域顶点”一节,以获取快速概述和详细信息

    弹性豆茎 首先也是最重要的是,如上所述,依次使用弹性负载平衡。最重要的是,它添加了应用程序生命周期管理:

    AWS Elastic Beanstalk是一种更方便的快速部署方式 并在AWS云中管理应用程序。您只需上传 应用程序,弹性豆茎自动处理 容量调配、负载平衡、, 自动缩放和应用程序运行状况监视。[…][重点]

    这是通过将环境的概念添加到混合中来实现的,如中所述:

    环境是应用程序的核心。[…]当您创建 一个环境,AWS弹性豆茎提供资源 运行应用程序所需的。为应用程序创建的AWS资源 环境包括一个弹性负载平衡器(图中的ELB),一个 自动缩放组和一个或多个Amazon EC2实例

    请注意,每个环境都有一个指向负载平衡器的CNAME(URL),就像单独使用ELB一样

    所有这些都集中在中,其中详细讨论了AWS Elastic Beanstalk的一些最重要功能,包括使用AWS管理控制台、CLI和API的使用示例

    零停机 为了便于说明,很难确定最相关的部分,但准确地说明了您的用例,并暗示了所有必需的前面步骤(例如和),因此阅读AWS管理控制台一节可能会让您最好地全面了解该平台的工作方式


    祝你好运!

    除了Steffen令人敬畏的回答中描述的选项外,如果你不需要弹性负载平衡器的全部功能(如自动扩展超过一个实例),Elastic Beanstalk最近似乎启用了弹性IP

    我在中描述了该选项。Elastic Beanstalk现在允许您在两个选项中进行选择,而单实例选项创建了一个弹性IP



    我认为在大多数情况下,使用ELB将是更好的选择,但例如,对于临时服务器,最好有一个不太复杂(而且更便宜)的替代方案.

    很抱歉几年后回复了一篇帖子,但是对于那些在ELB上确实需要一组静态IP地址的人,可以很好地要求AWS将他们称之为“稳定IP”的地址添加到ELB,从而为其提供静态IP地址功能

    他们当然不喜欢这样做——但如果你能证明这一点的话,他们会这么做(主要的证明是当你的客户端对通过防火墙的出站连接有IP白名单限制,并且完全不愿意改变这种立场时)

    请注意,基于流量的“自动缩放”选项不再是直接的-AWS将无法像开箱即用解决方案那样动态地向ELB添加更多ELB端点,并且随着时间的推移,您必须经历与客户打开新IP地址的痛苦

    对于最初的问题,根据公认的答案,EB使用ELB来前置实际上不需要静态IP地址的EC2实例(没有客户端出站防火墙问题)是最好的方法。

    我写了一篇文章,描述了在启动新实例时如何使用Cloudwatch规则来完成这一任务