【问题标题】:AWS architecture with limited elastic IPs具有有限弹性 IP 的 AWS 架构
【发布时间】:2016-01-23 11:23:02
【问题描述】:

目前,我们的小型企业有 3 个客户,我们已将它们分配给 Amazon Web Services (AWS) 中的 3 个弹性 IP。

如果我们重启一个实例,没有人会失去访问权限,因为重启后 IP 相同。

有没有办法在重新启动时处理扩展到 3 个以上的客户端而不会崩溃?

我正在尝试请求更多 IP,但他们建议这取决于我们的架构,我不确定他们正在寻找什么架构(或者为什么有些人会保证比其他人更有弹性的 IP,或者这是不是未选中的建议框)。

我意识到这是一个非常基本的问题,但谷歌搜索只会让我从供应商口中获得信息不足的文档。

编辑

互联网上有很多关于 AWS 支持 IPv6 的内容(大部分是旧的),但该功能似乎已被弃用。

【问题讨论】:

  • 架构问题 #1:为什么每个客户端都需要一个弹性 IP?他们对实例做了什么?客户需要访问哪些正在使用的服务?
  • 你为什么不使用负载均衡器?
  • @Michael-sqlbot:我们通过 .NET/MVC 堆栈提供评估 SAAS,允许我们的用户捕获事件和调查数据。我们的客户非常有兴趣将他们的数据与其他人分开。这就是我们将它们分开的原因。
  • @tedder42:我们已经考虑过这样做,但我们的负载开销还不足以证明它的合理性。我们有一小部分客户,他们有能力保持正常运转。

标签: amazon-web-services amazon-ec2 amazon-vpc elastic-ip


【解决方案1】:

您可以在短期内申请更多 EIP。根据您的帐户,最多免费提供 5 个 EIP。您还应该考虑使用基于名称的 URL,并将每个客户端分配给一个子域,例如,

clientA.example.com
clientB.example.com
clientC.example.com

这样,您添加的每个客户端都不需要额外的 IP。根据您的流量,一个 EC2 实例可以为多个客户端提供服务,并且随着您的扩展,您可以将多个 EC2 实例放在 AWS Elastic Load Balaner 后面,这将扩展为服务成倍增长的客户端。

如果客户希望将他们的服务器分开并且可以支付费用,您可以购买任意数量的 EIP。您还应该考虑为每个客户端将数据库分离为一个数据库实例,这可能是客户端比分离 IP 更需要的。

对于 IPv6,一个快速的解决方法是使用同时支持 IPv6 和 IPv4 的前端 ELB。

【讨论】:

  • 这可能就是我们要走的路。不利的一面是,如果 clientA.example.com 指向非弹性 IP 并且实例重新启动,则 clientA.example.com 名称将悬垂到不再存在的 IP 上。这似乎和以前一样的问题(有人必须去更新新 IP,而我们的用户很抱歉运气不好)。
  • 使用基于名称的 URL 方法的好处是您只需要使用一个 EIP 而不是多个 IP。
  • @micahhoover 我根据您的编辑更新了答案。
【解决方案2】:

如果您使用来自 VPC 的弹性 IP,则每个区域的 AWS 账户可获得 5 个。见Amazon VPC Limits

因此,您可以转到控制台并选择 VPC。然后点击弹性IP,创建它。创建后,将其分配给相关实例。 所以,至少现在,如果你不关心地域,你可以解决这个问题。

【讨论】:

    猜你喜欢
    • 2020-12-07
    • 2021-05-05
    • 2020-10-07
    • 2017-04-14
    • 2015-11-21
    • 1970-01-01
    • 1970-01-01
    • 2017-01-01
    • 1970-01-01
    相关资源
    最近更新 更多