EAS网络配置

如果要实现EAS服务访问公网、与VPC内资源通信或者ECS不经网关直连EAS实例,需要为EAS服务配置专有网络。

工作原理

EAS服务配置网络后,系统会在指定的VPC交换机中,为服务的每个实例自动创建一个弹性网卡(ENI)。这张ENI会占用该交换机的一个私网IP地址,从而实现与VPC内其他资源的网络互通,或通过VPC内的NAT网关访问公网。

计费说明

EAS服务配置网络本身不产生费用,但其依赖的云产品会正常计费。例如,用于访问公网的NAT网关弹性公网IP (EIP)均为付费产品,具体计费方式请参见计费说明

核心步骤:为EAS服务配置专有网络

EAS服务配置专有网络是实现内网互通或公网访问的基础。

开始前,请确保已有可用的VPC、交换机和安全组。如需创建,请参见创建专有网络与交换机创建安全组

重要

EAS支持在服务级别和资源组级别配置VPC。当两者都配置时,以服务部署配置为准。

服务级别配置

通过控制台配置

创建或更新服务时,在网络信息区域,进行专有网络配置。下拉选择专有网络之后,再配置交换机和安全组。

image

通过eascmd客户端工具配置

  1. 在服务的JSON配置文件中添加或修改cloud.networking字段,填入VPC、交换机和安全组ID。可以在专有网络VPC控制台的专有网络、交换机列表页和ECS控制台-安全组页面分别找到对应的ID。

    配置示例如下:

    {
        "metadata": {
            "name": "service_name",
            "instance": 1,
            "workspace_id": "21***"
        },
        "cloud": {
            "computing": {
                "instances": [
                    {
                        "type": "ecs.gn6e-c12g1.3xlarge"
                    }
                ]
            },
            "networking": {
                "vpc_id": "vpc-bp1uepgqtar*****",
                "vswitch_id": "vsw-bp1glkxase*****",
                "security_group_id": "sg-bp1brugkivv*****"
            }
        },
        "containers": [
            {
                "image": "eas-registry-vpc.cn-hangzhou.cr.aliyuncs.com/pai-eas/python-inference:py39-ubuntu2004",
                "script": "python app.py",
                "port": 8000
            }
        ]
    }
  2. 使用create 或 modify 命令部署或更新服务。以Windows 64版本为例:

    • 新建服务

      # <service.json>需要替换为您创建的JSON配置文件名称。
      eascmdwin64.exe create <service.json>
    • 更新服务

      # <service_name>需替换为要更新的EAS服务名称;<service.json>需替换为您要更新的JSON配置文件名称。
      eascmdwin64.exe modify <service_name> -s <service.json>

资源组级别配置

  • 控制台:在资源组页面,对整个资源组统一配置VPC信息。选择目标资源组,单击操作列的开启VPC配置image

  • 使用eascmd工具:请参见配置资源组专有网络

应用场景与配置指南

VPC内双向互通

包括以下两种场景:

  • EAS访问内网资源:EAS服务需访问同一VPC内的RDS、Redis等资源。

  • VPC高速直连:ECS实例不经网关直接访问EAS服务。

配置步骤如下:

  1. EAS配置专有网络:确保EAS服务与目标资源(如ECS、RDS)位于同一个VPC内。

  2. 配置安全组规则:确保安全组规则允许EAS服务与目标资源之间的网络通信。

  3. EAS服务的内网IP添加到目标资源白名单中。

    如果EAS访问的目标服务(如数据库)有IP白名单限制,需将EAS服务的所使用的交换机网段添加至白名单中。

    重要

    EAS的实例是动态调度的,重启或更新后可能会在新的物理节点上创建新实例,并从交换机地址池中获取一个新的私网IP地址。因此,依赖IP的访问控制策略应使用交换机网段安全组ID,而不是写死单个实例的IP。

    登录专有网络VPC控制台,在交换机页面查询到对应IPv4网段。

    内网白名单

EAS服务访问公网

适用于EAS服务需要调用公网API、从公网下载文件等。

配置步骤如下:

  1. EAS配置专有网络

  2. 使用公网NAT网关SNAT功能访问互联网

    1. 创建公网NAT网关并绑定EIP:进入NAT网关控制台,在VPC所在地域创建一个公网NAT网关。并为其绑定一个弹性公网IP(EIP)。此EIP即为EAS服务访问公网的统一出口IP。

    2. 配置SNAT条目:在创建好的NAT网关中,创建一条SNAT条目。SNAT条目粒度选择交换机粒度,交换机选择为EAS服务配置的交换机。这样,来自该交换机的所有流量都会通过NAT网关访问公网。

  3. 获取EAS服务公网IP并配置白名单。如果要访问的目标服务有IP白名单限制,需要将EAS服务的出口公网IP加入其白名单。

    登录专有网络VPC控制台,在NAT网关 > 公网NAT网关页面找到为EAS配置的网关,在详情中可看到绑定的EIP地址。

    image

生产应用建议

  • IP地址规划:关联VPC前,务必确认所选交换机的可用IP地址数量。EAS的每个实例(包括扩缩容过程中的实例)都会占用一个IP,IP不足将导致服务创建或扩容失败。

  • 安全组隔离:为不同服务或不同环境(开发、测试、生产)使用独立的安全组,并遵循最小权限原则,仅开放必要的端口和访问源。

  • 成本优化

    • 使用OSS内网Endpoint:若仅在服务启动时需要访问公网(如下载模型),最佳方案是将资源上传至同地域的OSS,再通过VPC内网Endpoint访问。这样可以避免NAT网关产生的费用。

    • 按需启停NAT网关:若服务启动成功后不再需要访问公网,可以暂停或删除NAT网关的相关配置以节省成本。

常见问题

Q: 配置了VPC后,为什么还是无法访问其他云产品?

请按以下顺序排查:

  1. 网络配置:在EAS服务详情页,确认服务已正确关联到目标资源所在的VPC、交换机。

  2. 安全组规则:检查目标资源(如RDS)的安全组,确保其入方向规则已授权给EAS服务所使用的安全组ID(推荐)其所在的交换机网段。参见使用安全组

  3. 白名单配置:如果目标资源有IP白名单功能,请确认已将正确的EAS服务IP(公网访问用EIP,内网访问用交换机网段)添加至白名单。

Q:如何快速验证服务是否能访问公网?

可以在服务配置的运行命令中添加 curl 命令用于临时测试。

说明

服务部署使用的基础镜像可能未预装 curl。若命令执行失败,请先添加安装指令。

# 适用于Debian/Ubuntu镜像
apt-get update && apt-get install -y curl && curl -v https://www.aliyun.com

部署服务后,查看实例的实时日志。如果看到 200 OK 等HTTP状态码和TLS握手成功信息,则表明公网已连通。