EIP 生命周期管理是什么
弹性公网 IP(EIP)是独立于实例存在的公网地址:申请后可以绑定到云主机、NAT 网关、负载均衡或弹性网卡上,解绑后还能留给别的资源继续用,地址本身不随实例释放而消失。申请、绑定、调带宽、解绑、释放是五个彼此独立的动作,用 CLI 串起来才能做批量运维,也正因为彼此独立,「解绑了但没释放」和「没核对绑定关系就释放」是最常见的两类事故。
基本信息
| 工具 | 阿里云 aliyun CLI、腾讯云 tccli(先配置访问密钥) |
|---|---|
| 动作顺序 | 申请 → 绑定 → 调整带宽 → 解绑 → 释放 |
| 计费方式 | 按流量(PayByTraffic)或按固定带宽(PayByBandwidth) |
| 关键 ID | AllocationId(eip-xxxxxxxx)与实例 InstanceId |
| 批量手段 | 标签 + 列表接口过滤,按标签做资产盘点 |
| 危险动作 | 释放(Release)不可逆,地址回收后难以找回 |
典型使用场景
- 新购一批 EIP 并按标签批量绑定到对应实例
- 带宽临时调升:大促前调高、结束后调回,用脚本一次性执行
- 换绑:把 EIP 从故障实例挪到备用实例,实现固定公网地址的快速切换
- 资产盘点:按标签与状态过滤出「已解绑未释放」的地址,清理冗余费用
- 自动化回收:环境销毁流程里按标签释放测试环境地址
动作与风险对照
| 动作 | 作用 | 风险与注意 |
|---|---|---|
| 申请 | 分配新的公网地址 | 地址池紧张时可能申请失败,需重试或换地域 |
| 绑定 | 把地址挂到实例/网卡/NAT | 实例已有其他公网地址时需评估出口走向 |
| 调带宽 | 变更带宽上限 | 限速型实例的峰值可能受实例规格约束 |
| 解绑 | 断开与资源的关联 | 解绑后立即失去公网访问,注意登录途径 |
| 释放 | 回收地址 | 不可逆,未解绑时先解绑再释放 |
带前置断言的释放脚本
带前置断言的释放脚本
# 1 先查绑定关系,确认没有资源引用该地址
# aliyun vpc DescribeEipAddresses --RegionId cn-hangzhou --EipAddress <EIP>
# 返回里看 InstanceId / InstanceType 是否为空
BOUND=$(aliyun vpc DescribeEipAddresses --RegionId cn-hangzhou \
--EipAddress 203.0.113.10 | grep -c InstanceId)
[ "$BOUND" -gt 0 ] && { echo "still bound, abort"; exit 1; }
# 2 解绑(如仍绑定)
# aliyun vpc UnassociateEipAddress --RegionId cn-hangzhou --AllocationId eip-xxxxxxxx
# 3 释放
# aliyun vpc ReleaseEipAddress --RegionId cn-hangzhou --AllocationId eip-xxxxxxxx
echo "safe to release eip-xxxxxxxx"释放是不可逆操作,脚本里必须先做绑定关系断言再调用释放接口;生产地址建议加标签保护,并在流水线里把「释放」动作限制在专用凭据下。
调带宽有两个方向要分清:把上限调低可能影响正在跑的业务流量,把计费方式从按带宽改成按流量也不是随时可改,具体可改项与生效时间以云厂商当版文档为准。