我正在使用 ECS 创建后端,我需要有一个静态 IP,据我从 AWS 控制台了解到,所有面向互联网的负载均衡器都由 AWS 分配一个 IP 地址,我的问题是:该 IP 地址会改变吗?如果我有 2 个可用区,两个可用区都有不同的 IP?
For internet-facing load balancers, the IPv4 addresses of the nodes are assigned by AWS.
For internal load balancers, the IPv4 addresses are assigned from the subnet CIDR.
是的,IP 会偶尔发生变化,并且每个可用区中的 IP 都不同,您是对的。
如果您需要静态 IP,您可以考虑在应用程序负载均衡器前面使用网络负载均衡器。这将允许为 NLB 所在的每个 AZ 设置弹性 IP,并且您仍然应该获得 ALB 的好处。
缺点是额外的成本和延迟。我自己没有尝试过,所以不能保证它的效果如何。
该 IP 地址会改变吗?如果我有 2 个可用区,两个可用区都有不同的 IP?
是的,对于应用程序负载均衡器 (ALB),IP 不是静态的。如果您想要 ALB 的静态 IP,您可以向其中添加 AWS Global Accelerator。
或者,使用具有静态 IP 地址的网络 LB (NLB)。
创建网络负载均衡器时,可以选择从可用的 EIP 之一为每个可用区分配弹性 IP 地址。如果您不分配 EIP,AWS 会为每个可用区分配一个静态 IP,应用程序可以将其用作负载均衡器的前端 IP。请注意,这仅适用于 NLB。
来源:https://aws.amazon.com/elasticloadbalancing/network-load-balancer/
如果您在 AWS EKS Kubernetes 集群中使用通过 Helm 安装的 ingress-nginx,请添加此注释以切换到 NLB:
controller:
service:
annotations:
service.beta.kubernetes.io/aws-load-balancer-type: "nlb"