【问题标题】:AWS Load balancing static IP range/AddressAWS 负载均衡静态 IP 范围/地址
【发布时间】:2018-04-22 00:32:18
【问题描述】:
我有一个 API,其中包含能够访问它的白名单 IP 地址。我需要允许所有 AWS Elastic beanstalk EC2 实例能够访问此 API。所以我需要通过 VPC 或负载均衡器设置配置我可以列入白名单的静态 IP 或 IP 范围 x.x.x.x/32。
我在 VPC、负载均衡器、Elastic Beanstalk、ETC 之间迷路了。需要有人将其分解并指出正确的方向。
目前负载平衡器已针对 SSL 设置,并且可以正常工作。
感谢您的宝贵时间
【问题讨论】:
标签:
ruby-on-rails
amazon-web-services
amazon-ec2
amazon-elastic-beanstalk
【解决方案1】:
您可以在您的 VPC 中设置一个 NAT 网关并关联一个弹性 IP 地址。配置来自子网的路由以将 NAT 网关用于出口流量。然后从您的 API 端,您只需将您的 NAT 网关的弹性 IP 地址列入白名单。
查看this指南了解更多详情。
【解决方案2】:
实现此目的的最佳方法是将您的 EB EC2 实例放置在通过 NAT 网关与 Internet 通信的私有子网中。 NAT 网关将使用弹性 IP 地址。您的 API 端点会将 NAT 网关视为私有子网中所有实例的源 IP,从而支持将 NAT 网关 EIP 添加到您的白名单中。
引用亚马逊,链接如下:
在每个可用区中为您的 VPC 创建公有和私有子网(Elastic Beanstalk 要求)。然后将您的公共资源(例如负载均衡器和 NAT)添加到公共子网。 Elastic Beanstalk 为它们分配一个唯一的弹性 IP 地址(一个静态的公共 IP 地址)。在私有子网中启动您的 Amazon EC2 实例,以便 Elastic Beanstalk 为其分配私有 IP 地址。
Load-balancing, autoscaling environments
【解决方案3】:
您可以为 ELB 实例分配弹性 IP 地址。
首先,您需要创建多个弹性 IP 地址。默认情况下它们将被取消分配。
实际分配可以从您在为 ELB 创建启动配置时指定的“用户数据”脚本触发。用户数据脚本中的以下两行代码应该分配一个 IP:
pip install aws-ec2-assign-elastic-ip
aws-ec2-assign-elastic-ip --region ap-southeast-2 --access-key XXX --secret-key XXX --valid-ips 1.2.3.4,5.6.7.8,9.10.11.12
--valid-ips的列表应该是你一开始创建的IP列表。