【发布时间】:2020-05-15 01:57:38
【问题描述】:
我需要为我的客户提供在 EC2 实例停止/启动时不会更改的固定 URL,因为有时我们需要更改 EC2 的大小,而当我们重新启动实例时,公共 IP 已更改。
我曾考虑使用弹性 IP,以便在实例重新启动时保持相同的公共 IP,但我看到亚马逊告诉您只有 5 个弹性 IP。如果你问他们,他们说他们可以给你更多,但我猜他们不会给你 10.000 个。
如何使用单个公共弹性 IP 为每个用户提供不同的 URL 以进行服务?
应该是这样的,11.22.33.44 弹性 IP 和 192.168.0.X two EC2 instances:
11.22.33.44:**1000** --> 192.168.0.**1**:22
11.22.33.44:**1001** --> 192.168.0.**1**:80
11.22.33.44:**1002** --> 192.168.0.**1**:443
11.22.33.44:**1003** --> 192.168.0.**2**:22
11.22.33.44:**1004** --> 192.168.0.**2**:80
11.22.33.44:**1005** --> 192.168.0.**2**:443
我需要让它以编程方式工作,因为我正在根据需要从 SDK 创建 EC2 实例。
我认为的另一种方法是使用 .com 域中的子域,这些子域指向每个 EC2 实例的当前公共 IP,但使用我之前描述的 IP 听起来更好。
【问题讨论】:
-
如果您对它们有合法需求,它们会为您提供 10,000 个弹性 IP,但这并不是真正的场景之一。您需要一个负载均衡器 (ELB) 和一些 DNS 记录,如
client1.example.com、client2.example.com等。 -
DNS 解决方案是唯一可行的方法。您将无法获得那么多静态 IP 地址,如果您想稍后在这些实例前面放置负载均衡器或 API 网关或 CDN 或其他东西,DNS 也更具未来性。
-
@ceejayoz 负载均衡器是做什么用的?如果我已经将每条 DNS 记录指向一个公共 IP,我就不需要更多了,对吧?
-
@LuisMiguelGarcíaMancebo 一个 IP 用于多个实例意味着一个负载均衡器。如果您只希望单个实例与每条 DNS 记录关联,则可以放弃 LB。
-
旁注:为每个客户提供单独的 Amazon EC2 实例有利于分离,但不利于扩展和成本效率。可能值得研究如何实施多租户,以便可以在多个客户之间共享 EC2 容量。它还将大大降低您的成本。
标签: amazon-web-services amazon-ec2 elastic-ip