首页 文章

Auto Scaling,弹性IP

提问于
浏览
1

当我使用带有Auto Scaling的网络负载均衡器时,每次生成实例时它都会获得一个新的公共IP . 我希望每个实例都有一个EIP . 我希望当我将EIP分配给网络负载均衡器配置中的可用区时,可以解决这个问题 . 是否有一种方法可以为生成的实例提供自动调节和静态IP?

https://aws.amazon.com/blogs/aws/new-network-load-balancer-effortless-scaling-to-millions-of-requests-per-second/

据此,它看起来不可能:

遗憾的是,无法使自动扩展自动为新启动的实例分配弹性IP地址

Static IP for Auto Scale in AWS

并根据这个:

Assigning static IPs to auto scaled EC2 instance

3 回答

  • 1

    编写脚本并将其放在启动脚本的启动配置中,用于自动缩放组,该脚本可以执行任何操作,包括分配新EIP以检查白/黑名单的其他服务 . 欲了解更多信息,请阅读https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html

  • 1

    正如其他人所提到的,这可以通过配置新的 EIP 并使用 UserData 将实例与新发布的 EIP 相关联来实现 . 但是,以下设置会出现以下问题:

    1)EIP默认限制为每个VPC 5个,甚至你可以增加你需要知道你的VPC将使用的最大EIP数量的限制

    2)当实例终止时,您需要创建一个进程来删除已停止的EIP或找出如何重新关联先前分配的EIP

    虽然说我在我的ASG中使用静态 EIP 但它仅用于 HA 而不是可伸缩性,所以在下面的示例中,我每次启动新实例时都会重用现有的 EIP

    #!/bin/bash -xe
                INSTANCE_ID=$(curl -s http://169.254.169.254/latest/meta-data/instance-id)
                aws ec2 disassociate-address --association-id ${OpenPVNEIP.AllocationId} --region ${AWS::Region} || true
                aws ec2 associate-address --instance-id "${!INSTANCE_ID}" --allocation-id ${OpenPVNEIP.AllocationId} --region ${AWS::Region}
    
  • 0

    我在私有子网内创建了一个Lambda . 我将私有子网链接到NAT网关,因此我设法为我的Lambda获取静态IP . 5 EIP的限制对我来说是一个问题 .

    https://aws.amazon.com/premiumsupport/knowledge-center/internet-access-lambda-function/

相关问题