阿里云弹性公网IP(EIP)完全对接使用指南:从申请到成本优化

简介: 本文提供一份完整的阿里云弹性公网IP(EIP)对接使用指南。EIP是可以独立购买和持有的公网IP地址资源,与ECS实例解耦,支持动态绑定与解绑。文章首先介绍EIP的核心概念与优势,对比固定公网IP的差异。随后详细演示通过控制台申请EIP、绑定ECS实例、配置带宽与计费方式的操作步骤,并提供Python SDK与Terraform的代码示例实现自动化管理。深入讲解EIP绑定NAT网关实现VPC内多实例共享公网出口、加入共享带宽降低带宽成本、以及网卡可见模式等高级场景。在安全管理方面,介绍如何通过RAM进行权限控制、配置安全组规则以及DDoS基础防护。成本优化部分重点分析按量计费与包年包月的选型策

1. 弹性公网IP概述:为什么需要EIP

在云计算架构中,公网IP地址是云资源与互联网通信的桥梁。阿里云弹性公网IP(Elastic IP Address,简称EIP)是一种可以独立购买和持有的公网IP地址资源。与传统的固定公网IP不同,EIP与云资源(如ECS实例)解耦,可以在不同实例之间动态绑定和解绑,提供了前所未有的灵活性和管理便利性。

EIP本质上是一种NAT IP,它实际位于阿里云的公网网关上,通过NAT方式映射到被绑定的云资源上。这意味着在ECS实例的私网网卡上无法直接看到EIP地址,但实例可以通过EIP与公网进行通信。EIP的核心价值体现在以下几个方面:公网IP与ECS实例解耦,实现地址资源的独立管理;支持按需动态调整带宽峰值,业务高峰提升带宽、闲时降低带宽以节省成本;一个EIP可以依次绑定不同的云资源,实现IP地址的复用;以及EIP支持按量付费和包年包月两种计费模式,灵活适配不同业务场景。

与固定公网IP相比,EIP的最大优势在于其独立性和可迁移性。固定公网IP只能在ECS或CLB等实例创建时分配,创建后无法更换绑定或解绑,只能随着实例删除而释放。而EIP作为独立资源,可以单独创建、持有、随时绑定或解绑,满足动态变更公网IP的需求。对于需要频繁更换公网IP地址、或者希望实例释放后继续保留公网IP地址的场景,EIP是理想的选择。

2. 申请EIP:控制台操作全流程

使用EIP的第一步是申请一个属于自己的弹性公网IP实例。整个操作在阿里云控制台完成,流程清晰简洁。

需要先登录阿里云控制台,点击:阿里云控制台

登录控制台后,进入弹性公网IP管理控制台。在弹性公网IP页面,单击\"创建弹性公网IP\"按钮开始申请流程。在创建页面中,需要配置以下关键参数:

  • 付费模式:选择\"按量付费\"或\"包年包月\"。按量付费适合短期或流量波动大的场景,包年包月适合长期稳定使用的业务。
  • 地域:选择EIP所在的地域。必须确保EIP的地域与待绑定的云资源(如ECS实例)所在地域相同,因为EIP不支持跨地域绑定。
  • 线路类型:通常选择BGP(多线),该线路类型覆盖大部分场景。部分地域支持BGP(多线)_精品线路,专为海外回中国内地流量优化。线路类型在创建后不支持转换。
  • 流量计费方式:选择\"按固定带宽计费\"或\"按使用流量计费\"。固定带宽计费适合带宽需求稳定的业务,流量计费适合突发流量或带宽使用不规律的场景。
  • 带宽峰值:设置EIP的最大带宽,单位Mbps。按量付费模式下,按固定带宽计费的EIP支持的最大带宽峰值为500 Mbps。
  • 名称与资源组:为EIP设置便于识别的名称,并选择所属资源组进行权限管理。

配置完成后,单击\"立即购买\"并完成支付,EIP实例即创建成功。创建完成后,EIP的状态为\"可用\",此时尚未绑定任何云资源,需要进一步操作将其绑定到目标资源上。

3. 绑定云资源:让EIP真正发挥作用

EIP申请完成后,需要将其绑定到具体的云资源上,才能实现公网通信。EIP支持绑定到多种云资源类型。

3.1 绑定ECS实例

将EIP绑定到专有网络类型的ECS实例是最常见的用法。ECS实例绑定EIP后,即可获得公网通信能力。操作步骤如下。

在弹性公网IP管理控制台中,选择EIP所在地域,在EIP列表中找到目标EIP,在操作列单击\"绑定资源\"。在弹出的对话框中配置以下信息:

  • 实例类型:选择\"云服务器ECS实例\"。
  • 选择要绑定的实例:从下拉列表中选择目标ECS实例。

绑定时需要确保ECS实例处于\"运行中\"或\"已停止\"状态,且实例没有配置固定公网IP或绑定其他EIP。如果ECS实例已分配了固定公网IP,则不支持直接绑定EIP,但可以将固定公网IP转换为EIP后再进行绑定。

绑定成功后,可以通过登录ECS实例执行ping命令来测试公网连通性:

[root@xxx ~]# ping www.aliyun.com
PING www.aliyun.com.w.cdngslb.com (183.146.XX.XX) 56(84) bytes of data.
64 bytes from 183.146.XX.XX: icmp_seq=1 ttl=53 time=12.245 ms
64 bytes from 183.146.XX.XX: icmp_seq=2 ttl=53 time=12.164 ms
^C
--- www.aliyun.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms

3.2 绑定辅助弹性网卡

在单个ECS实例上托管多个应用时,可以通过为每个应用分配独立的辅助弹性网卡并绑定独立的EIP,实现每个应用对外呈现独立的公网IP地址。EIP支持以普通模式绑定辅助弹性网卡,辅助弹性网卡支持绑定的EIP数量取决于其私网IP数量。

此外,EIP还支持\"网卡可见模式\"绑定到辅助弹性网卡。在该模式下,EIP不再是公网网关上的NAT IP,而是直接替换辅助弹性网卡的私网IP,辅助弹性网卡变为纯公网网卡。此模式支持全部IP协议类型,包括FTP、H.323、SIP、DNS、RTSP等需要感知源IP地址的协议,但仅支持绑定辅助弹性网卡(不支持直接绑定ECS或ECS的主网卡),且有地域限制。

3.3 绑定负载均衡SLB实例

EIP支持绑定到专有网络类型的私网CLB实例、ALB实例和NLB实例。绑定ALB实例和NLB实例需在负载均衡控制台进行操作。创建公网类型的ALB或NLB实例时,可以选择自动分配EIP或选择已有EIP。私网类型的ALB或NLB实例也可以变更为公网类型并分配EIP。

3.4 绑定NAT网关

将EIP绑定到公网NAT网关,可以为VPC内的多个ECS实例提供统一的公网出口。一个公网NAT网关支持绑定20个EIP。从2022年9月19日起,新创建的公网NAT网关绑定一个EIP时会占用NAT网关所在交换机的一个私网IP地址,需要确保交换机内有足够的空闲私网地址。

4. 通过API和SDK自动化管理EIP

对于需要批量管理或自动化运维的场景,阿里云提供了完善的OpenAPI和SDK支持。通过API调用,可以实现EIP的申请、绑定、解绑、查询、释放等全生命周期管理。

4.1 核心API接口

EIP管理涉及的核心OpenAPI包括:

  • AllocateEipAddress:申请EIP实例。
  • AssociateEipAddress:将EIP绑定到云产品实例。
  • UnassociateEipAddress:将EIP从云产品实例解绑。
  • DescribeEipAddresses:查询EIP实例列表及详情。
  • ReleaseEipAddress:释放EIP实例。

API调用频率有限制,每用户每天调用API的次数如果大于500次会触发API限速。

4.2 Python SDK代码示例

以下示例展示如何使用Python SDK创建EIP并将其绑定到ECS实例。

首先,安装阿里云VPC SDK:

pip install alibabacloud_vpc20160428

然后,编写Python代码:

# -*- coding: utf-8 -*-
import os
from alibabacloud_vpc20160428.client import Client as VpcClient
from alibabacloud_vpc20160428.models import AllocateEipAddressRequest, AssociateEipAddressRequest
from alibabacloud_tea_openapi.models import Config
# 配置访问凭证
config = Config(
    access_key_id=os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_ID'),
    access_key_secret=os.environ.get('ALIBABA_CLOUD_ACCESS_KEY_SECRET'),
    region_id='cn-hangzhou'
)
client = VpcClient(config)
# 1. 申请EIP
allocate_request = AllocateEipAddressRequest(
    bandwidth='5',
    instance_charge_type='PostPaid',
    internet_charge_type='PayByTraffic',
    isp='BGP'
)
allocate_response = client.allocate_eip_address(allocate_request)
eip_id = allocate_response.body.allocation_id
print(f'EIP创建成功,ID: {eip_id}')
# 2. 绑定EIP到ECS实例
associate_request = AssociateEipAddressRequest(
    allocation_id=eip_id,
    instance_id='i-xxxxxxxxxxxx',
    instance_type='EcsInstance'
)
associate_response = client.associate_eip_address(associate_request)
print(f'EIP绑定成功,请求ID: {associate_response.body.request_id}')

使用API前需要创建RAM用户并完成授权,建议使用RAM用户的AccessKey进行API调用,避免使用主账号AccessKey带来的安全风险。RAM用户需要被授予AliyunVPCFullAccess等权限策略才能操作EIP资源。

4.3 Terraform基础设施即代码

Terraform是流行的基础设施即代码工具,可以通过声明式配置管理EIP资源。以下Terraform配置文件展示如何创建VPC、交换机、ECS实例并绑定EIP。

provider "alicloud" {
  region = var.region
}
variable "region" {
  default = "cn-beijing"
}
# 创建VPC
resource "alicloud_vpc" "main" {
  vpc_name   = "eip-demo-vpc"
  cidr_block = "192.168.0.0/16"
}
# 创建交换机
resource "alicloud_vswitch" "main" {
  vpc_id     = alicloud_vpc.main.id
  cidr_block = "192.168.1.0/24"
  zone_id    = "cn-beijing-g"
}
# 创建安全组
resource "alicloud_security_group" "default" {
  name   = "eip-demo-sg"
  vpc_id = alicloud_vpc.main.id
}
# 创建ECS实例
resource "alicloud_instance" "main" {
  image_id          = "ubuntu_22_04_x64_20G_alibase_20230327.vhd"
  instance_type     = "ecs.n4.small"
  security_groups   = [alicloud_security_group.default.id]
  vswitch_id        = alicloud_vswitch.main.id
  instance_name     = "eip-demo-ecs"
}
# 申请EIP
resource "alicloud_eip" "main" {
  bandwidth            = "5"
  internet_charge_type = "PayByTraffic"
  instance_charge_type = "PostPaid"
}
# 绑定EIP到ECS实例
resource "alicloud_eip_association" "main" {
  allocation_id = alicloud_eip.main.id
  instance_id   = alicloud_instance.main.id
}

通过Terraform管理EIP,可以实现版本控制、自动化部署和团队协作,是DevOps实践的理想选择。

5. 高级场景:NAT网关与共享带宽

5.1 NAT网关:统一公网出口

当VPC内有多台ECS实例需要访问互联网,但希望使用统一的公网IP地址作为出口时,可以通过公网NAT网关绑定EIP并配置SNAT规则来实现。公网NAT网关支持绑定多个EIP,绑定后可以为不同子网或实例配置不同的SNAT策略。

配置公网NAT网关的SNAT功能后,VPC内的ECS实例可以通过NAT网关访问互联网,所有出站流量都经过绑定的EIP,实现了统一的公网出口IP。这对于需要将出口IP加入白名单、或者进行流量审计的场景非常实用。

5.2 共享带宽:降低带宽成本

共享带宽是阿里云提供的地域级带宽共享和复用服务。创建共享带宽实例后,可以将多个按量付费的EIP添加到同一个共享带宽实例中,这些EIP绑定的ECS实例、SLB实例和NAT网关将共享该共享带宽的带宽资源。

使用共享带宽的核心价值在于\"地域级资源共享\"。当多个业务模块需要独立的公网访问权限但带宽使用不均衡时,共享带宽可以避免为每个EIP单独购买固定带宽,从而显著降低公网成本,实测可节省约30%的费用。

将EIP加入共享带宽需要满足以下条件:EIP的计费方式为按量付费、地域与共享带宽实例相同、线路类型与共享带宽实例一致。加入共享带宽后,EIP原本的带宽峰值和计费方式将失效,统一使用共享带宽的带宽峰值和计费方式,但EIP配置费仍需正常支付。

6. 安全管理与权限控制

6.1 RAM权限管理

为了保证账号安全,强烈建议使用RAM子账号进行EIP的日常管理,避免使用主账号AccessKey。RAM用户可以被授予不同的权限策略来实现细粒度的访问控制:

  • AliyunVPCReadOnlyAccess:只读访问EIP的权限。
  • AliyunVPCFullAccess:管理EIP的完整权限。

可以创建自定义权限策略,精确控制RAM用户对特定EIP资源的操作权限。

6.2 安全组与网络ACL

EIP绑定到ECS实例后,实例的公网访问仍然受安全组规则的控制。需要在ECS实例的安全组中添加入方向和出方向的规则,允许或拒绝特定的公网流量。安全组规则可以基于IP地址、端口范围、协议类型等进行精细化配置,是保护云资源安全的第一道防线。

6.3 DDoS基础防护

EIP默认提供DDoS基础防护能力。当EIP遭受DDoS攻击时,基础防护会自动启动,清洗攻击流量,保障业务的正常运行。如果业务对DDoS防护有更高要求,可以购买DDoS防护增强型EIP或额外购买DDoS高防服务。

7. 成本优化与计费选型

合理选择EIP的计费方式和带宽配置,可以有效控制公网成本。EIP的费用主要由三部分组成:EIP配置费(按量付费模式下占用EIP资源的费用)、公网网络费(带宽或流量费用)、以及可能产生的其他增值服务费用。

7.1 按量付费 vs 包年包月

按量付费适合短期或流量波动大的场景,用户只需为实际使用的带宽和流量付费,灵活性高。按量付费模式下,1-5Mbps带宽按每小时0.0625元计费,6Mbps及以上按每小时0.25元计费。如果仅需使用几天或流量突发,按量付费更具成本优势。

包年包月适合长期稳定使用的业务,预付费模式通常比按量付费更经济。以华北1(青岛)为例,1Mbps带宽配置年付仅需248.40元。如果每月带宽使用时长超过200小时,包年包月通常更划算。

7.2 固定带宽 vs 按流量计费

按固定带宽计费适合带宽需求稳定、可预测的业务,如企业官网、OA系统等。业务高峰时提升带宽保障体验,闲时降低带宽节省成本。

按使用流量计费适合突发流量或带宽使用不规律的场景,如游戏、视频行业等。建议初创企业选择按流量计费起步,中大型业务采用带宽加流量的混合模式。

7.3 共享带宽优化

如前文所述,将多个EIP加入共享带宽实例是降低公网成本的有效手段。通过带宽复用,可以避免为每个EIP单独购买固定带宽,尤其适合多业务模块需要独立公网IP的场景。

8. 常见问题与解答

问1:EIP和ECS固定公网IP有什么区别?

固定公网IP只能在ECS实例创建时分配,创建后无法更换绑定或解绑,只能随实例删除。EIP是独立的公网IP资源,可以单独创建与持有,支持动态绑定和解绑,灵活性更高。

问2:一个EIP可以同时绑定多个云资源吗?

不可以。一个EIP同时只能绑定一个云资源。但一个ECS实例可以通过绑定多个辅助弹性网卡并分别为其绑定EIP的方式,实现单个ECS实例关联多个EIP。

问3:EIP是否支持跨地域绑定?

不支持。EIP和要绑定的云资源必须在同一个地域。EIP没有可用区属性,只要云资源和EIP属于同一地域,就可以跨可用区绑定。

问4:一个账号可以申请多少个EIP?

一个账号默认最多可以申请20个EIP,如果业务需要更多,可以提交工单申请提升配额。

问5:EIP绑定ECS实例后为什么无法访问公网?

首先检查EIP的绑定状态是否正常,其次检查ECS实例的安全组规则是否允许相应的出方向和入方向流量,最后确认ECS实例的操作系统内网络配置是否正确。

问6:按量付费EIP解绑后为什么还在收费?

按量付费EIP解绑后仍需支付EIP配置费,直到EIP被释放为止。如果不再使用该EIP,请及时在控制台释放以避免持续产生费用。

相关文章
|
21小时前
|
人工智能 安全 测试技术
|
2天前
|
云安全 人工智能 安全
阿里云 Agentic SOC 位居 IDC MarketScape安全运营智能体2026领导者类别
以 Agentic AI 重构安全运营闭环,阿里云云安全在产品能力与市场份额
1149 3
|
2天前
|
数据采集 机器学习/深度学习 人工智能
田间杂草定位与检测4200张YOLO智慧农业数据集分享
本数据集含4200张真实农田图像,YOLO格式,单类别(杂草)高质量标注,覆盖多作物、多光照、多生长阶段等复杂场景,专为智慧农业杂草检测与智能除草设备研发设计,支持YOLOv5/v8/v10等主流模型训练。
340 93
|
3天前
|
缓存 UED 开发者
Codex109天重置23次,明天还要再送一次
Codex近109天完成23次额度重置,7月14日将迎来第24次。Tibo高频响应用户反馈:优化GPT-5.6高消耗问题、补发失效福利、调整重置时间——形成“反馈→回应→修复→补偿”正向闭环,彰显以用户为中心的产品哲学。(239字)
528 11
|
6天前
|
存储 人工智能 JSON
Qwen 本地部署搭配 ComfyUI 生成 AI 漫剧完整实操指南(小白零基础可落地,零成本无限生成+角色一致性天花板)
2026全网最优本地漫剧流水线:零成本、离线运行、角色统一、低配(8G显卡)可跑。融合Qwen本地大模型+ComfyUI双引擎,实现剧本生成→分镜绘图→动态成片全自动,隐私安全、无审核限流,新手30分钟上手,日更无忧。(239字)
|
7天前
|
人工智能 缓存 JSON
刚刚 GPT-5.6 发布,吊打 Claude 5 和 Grok 4.5?一手实测来啦!
GPT-5.6 刚发布,跑分号称超越 Fable 5,真的假的?附一手实测,让 3 个最强 AI 编程模型 GPT-5.6 Sol、Claude Fable 5、Grok 4.5 在 Cursor 里同时一把梭开发网页游戏,看看最新模型到底谁更能打。
349 0

热门文章

最新文章