有没有办法让添加到自动缩放组的新实例与弹性 IP 关联?我有一个用例,我的自动缩放组中的实例需要在远程服务器上列入白名单,因此它们需要具有可预测的 IP。
我意识到有一些方法可以使用 API 以编程方式执行此操作,但我想知道是否还有其他方法。CloudFormation 似乎可以做到这一点。
有没有办法让添加到自动缩放组的新实例与弹性 IP 关联?我有一个用例,我的自动缩放组中的实例需要在远程服务器上列入白名单,因此它们需要具有可预测的 IP。
我意识到有一些方法可以使用 API 以编程方式执行此操作,但我想知道是否还有其他方法。CloudFormation 似乎可以做到这一点。
您可以使用手动或脚本 API 调用将弹性 IP 关联到 ASG 实例,就像对任何其他实例一样 - 但是,没有自动方法可以做到这一点。ASG 实例被设计为临时/一次性的,而 Elastic IP 关联违背了这一理念。
为了解决您的问题:白名单,您有几个选择:
我可以找到 3 种方法来做到这一点。Cloud Formation 只会使其自动化,但您需要先了解发生了什么。
1.-正如@gabrtv 提到的使用VPC,这有两种选择。1.1-在 VPC 内使用 NAT 网关将所有流量路由进出网关。网关将具有弹性 IP 和互联网流量,然后将您的服务器端的 NAT 网关列入白名单。在 AWS 文档中查找 NAT 网关。
1.2-创建一个虚拟专用网关/VPN 连接到您的数据中心的后端服务器,并通过它路由流量。1.2.a-在专用私有子网中创建您的实例。1.2.b-将您这边的整个子网列入白名单,来自该子网的任何请求都将被允许进入。 1.2.c 确保您在子网中的路由正确。
(我故意跳过 2,因为那是 1.2)
3.-懒惰的方式:利用 AWS Opsworks 做两件事:第一:分配弹性 IP 的资源池。第二:按需启动 LOAD 实例并自动从池中为它们分配一个弹性 ip。对于第二部分,您需要将 24/7 实例设为最小值,将 Load 实例设为 MAX。AWS Opsworks 现在允许 Cloud Watch 警报触发实例启动,因此它与 ASG 非常相似。Opsworks 的唯一缺点是实例不会终止,而是会在负载下降时停止,并且您必须事先“创建”实例。此外,您还依靠 Chef solo 来启动您的实例,但这是将 EIP 自动分配给我能找到的新创建实例的唯一方法。
干杯!