我一直在阅读有关 Amazon EC2 实例的弹性 IP 的文章。我想知道,我在服务器上执行的很多操作都是基于 IP 限制的,例如谷歌地图地理编码,每个 IP 限制为 2,500 个(我相信是 IP 限制,而不是服务器限制)。
首先,如果我有 3 个弹性 IP 连接到我的 Amazon EC2 实例,这是否意味着我的服务器实际上可以位于三个不同的 IP 上,因此我可以有效地将任何类型的速率限制限额增加三倍?
其次,有没有办法确定我的 EC2 服务器使用哪个弹性 IP,并且可以在服务器运行时更改它?
答案1
首先我想说的是,速率限制通常适用于防止滥用 API。
尝试解决这个问题可能是被视为违反条款和条件使用该服务。在继续之前请仔细考虑这一点。
首先,如果我有 3 个弹性 IP 连接到我的 Amazon EC2 实例,这是否意味着我的服务器实际上可以位于三个不同的 IP 上,因此我可以有效地将任何类型的速率限制限额增加三倍?
您只能为经典 EC2 实例分配一个弹性 IP。
其次,有没有办法确定我的 EC2 服务器使用哪个弹性 IP,并且可以在服务器运行时更改它?
是的,您可以检查 EC2 管理控制台中的“弹性 IP”部分。这将向您显示哪些弹性 IP 映射到哪些 EC2。
理论上,您可以手动(或自动)为给定的 EC2 循环新的弹性 IP。
获得更多请求吞吐量的其他方法
- 您可以简单地使用较小的机器。您可以选择使用 2 个微型计算机,而不是使用 AWS 上的小型实例。
- 您可以使用竞价实例。每个竞价实例都有自己的 IP。您可以设计应用程序以保持在允许的限制范围内,但要使用尽可能多的微实例来实现这一点。
答案2
启动服务器时,不会自动获得弹性 IP 地址。这些地址稍后分配。分配后,您可以将其分配给特定实例。(在服务器运行时,可以取消关联并与单独的实例重新关联。)
所有这些都可以通过 API 完成,而不一定手动完成。
我不熟悉 Google 的 API 限制,但尝试使用弹性 IP 地址来绕过它不是一个好主意。您不能直接联系 Google 并要求增加吗?