出站API调用的静态IP

时间:2019-02-08 18:31:00

标签: amazon-web-services amazon-ec2 amazon-elastic-beanstalk

我们使用的一项新的api服务要求我们给他们一个清单,列出我们的调用将来自的所有IP地址;如果我们从任何其他IP地址进行api调用,则调用将失败。

在此之前已经问过这个问题 ,但是我想知道在2019年是否有任何更简单/更简便/更低廉的费用解决方案。

我们的设置

  • Elastic Beanstalk,当前可根据流量将其扩展到我们Web应用程序的5至50个ec2实例
  • 应用程序负载平衡器
  • 还有一个工作层,如果有帮助的话可以使用
  • 这些api调用通常来自我们的任何Web层ec2实例,因为这些调用将基于用户交互。我们当然可以设置不同的内容,例如让工人层拨打电话

我找到的解决方案

  • 为每个ec2实例提供一个弹性(静态)ip地址。这对我们来说不是一个很好的解决方案,因为随着我们希望继续扩大规模,所需的IP地址数量将继续增长{ref}

  • 设置两个NAT实例(一个实例不足,因为这将是单点故障)。我希望有比此选项更简单且成本更低的东西。 {ref} {ref}

  • 创建新的ec2实例并将其放在网络负载均衡器后面。再次,复杂且昂贵。 {ref}

是否有新的,更容易的,成本更低的解决方案?我以前从未使用过AWS Lambda。也许可以从一个IP地址运行Lambda函数吗?到目前为止,我没有太多想法。感谢您的宝贵时间。

1 个答案:

答案 0 :(得分:2)

NAT是最好的解决方案,并且不应该花比Web服务器更多的钱。

使用NAT的最简单方法是NAT Gateway。定价取决于地区,但大约为每小时$ 0.05,这比t3.medium EC2实例的价格略高。您还需要为数据收取每GB的费用,该费用可以快速累加。从积极的方面来看,Amazon为您管理基础架构,包括补丁和高可用性。

NAT Instance是运行特殊配置的AMI的EC2实例。您可能可以在t3.micro实例上运行它,而每小时的费用为0.01美元,这可能远低于您的任何Web服务器。如果有任何问题,您将负责应用补丁并在深夜醒来。

您可能可以摆脱任何一种类型的单个NAT。您将为此支付跨可用区流量($ 0.01 / GB),因此如果您在NAT上移动大量数据,这将是不经济的。能否从两个NAT获得更高的可用性是一个折衷,因为您一次只能在路由表中引用一个。因此,如果其中一个发生故障,则必须更新路由表以指向另一个,这可能会花费与建立新实例相同的时间。

您不能使用Lambda,因为它需要具有永久的IP地址分配,并且您无法使用Lambda进行控制。您可以编写自己的代理服务器,在EC2上运行,但是其成本与NAT实例相同。