Elastic IP 地址管理与设计 - 静态 IP 的活用与成本优化

解析 Elastic IP 的分配、与 EC2 的关联、未使用 EIP 的成本影响以及替代方案。

Elastic IP 概述

Elastic IP(EIP)是关联到 EC2 实例的静态公有 IPv4 地址。普通 EC2 公有 IP 在实例停止/启动时会变更,而 EIP 在明确释放前保持相同 IP 地址。适用于 DNS A 记录直接指定 IP 或防火墙允许列表注册 IP 的场景。

成本优化与替代方案

(截至 2026 年 8 月,美国东部(弗吉尼亚北部)/ 亚太地区(东京))自 2024 年 2 月起,所有公有 IPv4 地址均按小时计费,弗吉尼亚北部和东京的单价均为每个地址每小时 0.005 美元。不仅是未使用的 EIP,已关联到 EC2 的 EIP 也按相同单价计费,因此清点不必要的 EIP 很重要。使用 ALB 时通过 CNAME 引用 ALB 的 DNS 名称,因此无需 EIP,使用 CloudFront 时也同样如此。不过,负载均衡器自身在各可用区使用的公有 IPv4 地址仍会持续计费,因此需预计可削减的只是原先分配给实例的那部分地址。需要 EIP 的情况仅限于外部系统按 IP 地址允许访问、为 SMTP 服务器设置反向 DNS 等场景。

EIP 设计模式与 IPv6 迁移

EIP 可用于故障转移配置。EC2 实例发生故障时,通过 Lambda 将 EIP 重新关联到另一个实例,无需等待 DNS 的 TTL 即可立即切换流量。如需以固定 IP 进行负载均衡,应在创建面向互联网的 NLB 时,为每个可用区(子网)分配事先预留的 EIP。可用区的启用和禁用在开始运行后也可随时进行,新添加的子网可以指定 EIP。但要更换已启用可用区的 EIP,需先删除子网再重新添加,这会伴随新网络接口的创建。为避免更换的麻烦,务实的做法是先预留所需数量的 EIP,再创建 NLB。迁移到 IPv6 也是减少对 EIP 依赖的手段。在 VPC 中启用双栈、通过 IPv6 直接公开 EC2 实例的路径上,该实例无需再持有公有 IPv4 地址。另一方面,ALB 无法分配 EIP,因此在固定 IP 成为要求时,可选的方案是 NLB 或 Global Accelerator 的静态 Anycast IP。使用 Global Accelerator 可以实现包含区域故障时故障转移在内的固定 IP,可作为 EIP 的替代方案加以考虑。

公有 IPv4 计费与削减策略

(截至 2026 年 8 月,美国东部(弗吉尼亚北部)/ 亚太地区(东京))弗吉尼亚北部和东京的公有 IPv4 地址单价,in-use(已关联到资源)和 idle(仅分配而未使用)均为每小时 0.005 美元。持有 1 个地址 1 个月(按 730 小时换算)约为 3.65 美元。关于免费套餐,官方说明在符合 EC2 免费套餐条件的账户中,每月 750 小时的 in-use 公有 IPv4 地址使用免费,但对象仅限 in-use,不包括 idle 的地址。免费套餐的提供形式因账户的创建时间而异,因此需在账单控制台的免费套餐页面确认是否适用于自己的账户。通过 BYOIP 带入的自有地址不在此按小时计费的范围内。通过 Amazon VPC IP Address Manager(IPAM)的 Public IP Insights,可视化账户内所有公有 IPv4 地址的使用情况,找出不必要的 EIP 和未使用的公有 IP。不需要直接访问 EC2 实例时,禁用公有 IP 的自动分配,并通过 Systems Manager Session Manager 连接。将访问统一为经由 ALB,就无需为各个实例分配 EIP。建议采用通过 Cost Explorer 跟踪 Elastic IP 的成本、每月清点不必要 EIP 的运维方式。

分配与关联的基本操作

EIP 按区域分配,关联到 EC2 实例、NAT Gateway 或网络接口后使用。与实例绑定的 EIP 即使反复停止和启动也会保留,因此适合需要固定 IP 的用途。将关联改到另一个实例,就能在不改变 IP 的情况下只更换背后的服务器。也可以先将 EIP 关联到网络接口(ENI),再将该 ENI 整体移到另一个实例,从而实现更灵活的切换。

通过 BYOIP 带入自有 IP

如果已有自己持有的 IP 地址范围,可以通过 BYOIP(Bring Your Own IP)带入 AWS,作为 EIP 使用。当多年使用的 IP 已登记在客户或合作伙伴的允许列表中、难以变更时,这种方式很有效。带入的地址由 AWS 进行通告,可以像 EIP 一样关联使用。这样既能避免迁移带来的 IP 变更影响,又能利用 AWS 的网络基础设施。引入时需要办理证明所有权的手续。

配额与清点的运维

EIP 在每个区域的分配数量有默认上限,可根据需要申请提高配额。上限也是防止无序预留的机制,因此释放并整理不再使用的 EIP 是基本做法。用标签记录用途和负责人,清点时就更容易判断哪些 EIP 仍在使用。取消关联的 EIP 容易在无意中残留,因此将定期找出未关联的 EIP 并释放不需要者的运维机制化,就能防止无谓的成本和管理上的混乱。

常见误解与注意事项

认为「只有未使用的 EIP 才收费」是错误的,包括关联到实例的 EIP 在内,持有的所有公有 IPv4 都是计费对象。此外,仅关联 EIP 并不能确保安全性。访问控制需要另外通过安全组和网络 ACL 进行设计。NAT Gateway 的出站用途会消耗 1 个 EIP,这是为了可用性所必需的。在设计阶段判断是否真的需要固定 IP,若不需要则改用基于 DNS 名称的引用,这是稳健的做法。

总结

Elastic IP 提供静态公有 IPv4 地址,但自 2024 年 2 月起所有公有 IPv4 地址均按小时计费,弗吉尼亚北部和东京的单价均为每小时 0.005 美元(截至 2026 年 8 月)。通过集中到 ALB 或 CloudFront 削减实例侧的 EIP,需要固定 IP 的场景则用 NLB 按子网分配 EIP 或 Global Accelerator 的静态 Anycast IP 来应对。引入 IPv6 双栈,也是缩小需持有公有 IPv4 地址的范围的有效削减策略。

参考资料(AWS 官方)

本页的第一手信息来源是 AWS 官方网站及官方文档。最新的规格与价格请以下列官方页面为准。

如本页内容与官方文档不一致,请以官方文档为准。

分享