配置EAS访问公网或内网资源

EAS服务默认在安全隔离的网络环境中运行,无法直接访问公网或您VPC内的其他云服务。当您的EAS服务需要调用公网API、从公网下载文件、拉取公网镜像,或访问VPC内的数据库(如RDS、Redis)时,请参考本文配置。

场景一:让EAS服务访问公网

要实现EAS服务对公网的访问,核心是为您的EAS服务关联一个具备公网访问能力的VPC。这通常通过VPCNAT网关的组合实现。配置过程分为两步:

1. VPC开通公网访问能力

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

  1. 开通NAT网关:进入NAT网关控制台,在您的VPC所在地域创建一个公网NAT网关,并为其绑定一个弹性公网IP(EIP)。此操作为您的VPC网络提供了统一的公网出口。

  2. 配置SNAT条目:在创建好的NAT网关中,配置SNAT规则。将源交换机指定为您计划给EAS服务使用的交换机,确保来自该交换机的所有流量都会通过NAT网关访问公网。详情请参见使用公网NAT网关SNAT功能访问互联网

说明

NAT网关会产生费用。如果服务仅在启动时需要下载依赖,可以在服务启动成功后,暂停或删除NAT网关的相关配置以节省成本。

2. EAS服务关联VPC

通过控制台配置

  • 服务部署时:在服务接入区域,配置VPC、交换机和安全组名称参数。

  • 更新服务时:服务部署成功后,可通过更新服务修改专有网络配置。

使用ARM相关的机型(包括Yitian计算型和Yitian通用型)创建的专属资源组需使用以下方式配置专有网络(VPC):

  • 方式一:在资源组页签,单击操作列的开启VPC配置,按控制台操作指引完成开通。

  • 方式二:在资源组页签,单击目标资源组名称,在页面右上方单击VPC配置 > 开启VPC配置,按控制台操作指引完成开通。

通过eascmd客户端工具配置

  1. 准备JSON配置文件,包含以下关键参数:

    参数

    描述

    vswitch_id

    用户端的交换机ID,会在该vSwitch中创建ENI,需保证该vSwitch中空闲IP充足,否则会导致EAS的实例无法创建。

    security_group_id

    用户端ECS节点所归属的安全组ID。

    vpc_id

    用户端的专有网络ID。

    JSON配置示例如下:

    {
        "metadata": {
            "name": "service_name",
            "instance": 1,
            "enable_webservice": true
        },
        "cloud": {
            "computing": {
                "instance_type": "ml.gu7i.c16m60.1-gu30",
                "instances": null
            },
            "networking": {
                "vswitch_id": "vsw-bp17jg7wr6s3pzbfe****",
                "security_group_id": "sg-bp14zqduxqm04qg7****",
                "vpc_id": "vpc-bp1s37ltnbvxgcqfc****"
            }
        },
        "containers": [
            {
                "image": "eas-registry-vpc.cn-hangzhou.cr.aliyuncs.com/pai-eas/chat-llm-webui:2.0",
                "script": "python webui/webui_server.py --port=8000 --model-path=meta-llama/Llama-2-7b-chat-hf",
                "port": 8000
            }
        ]
    }
  2. 打开终端工具,在JSON文件所在目录,执行以下命令

    Windows 64版本为例:

    • 新建服务

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

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

为使用ARM相关的机型创建的专属资源组配置专有网络

场景二:让EAS服务访问VPC内网资源

如果EAS服务仅需访问同一VPC内的其他云资源(如RDS、Redis),无需配置NAT网关,只需参见EAS服务关联到VPC,正确选择目标资源所在的VPC和交换机即可。

确保EAS服务与目标资源位于同一个VPC内,并且它们之间的安全组规则允许互相通信。

说明

建议通过内网访问VPC内资源,更加安全高效,显著提升访问性能。

获取EAS服务的IP地址

在一些场景(如访问有访问限制的云产品),需获取EAS服务的公网或私网IP来设置访问权限。

例如向量检索服务Elasticsearch、Milvus、OpenSearch等,需要将EAS服务的公网或私网IP地址添加至其白名单中。

1. 查询公网IP地址

确保已为EAS服务关联的专有网络(VPC)配置互联网访问能力,参见场景一:让EAS服务访问公网

登录专有网络VPC控制台,按照下图操作指引查询。

EAS服务的公网IP为服务关联的VPC其公网NAT网关绑定的弹性公网IP地址。公网出口IP

2. 查询内网IP地址

登录专有网络VPC控制台,按照下图操作指引,查询您的内网 IP。

内网IP即为您配置的交换机的网段。内网白名单

常见问题

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

    请按以下步骤检查:

    1. VPC是否配置正确。确认EAS服务与目标资源处于同一VPC。

    2. 目标资源是否有访问限制。如目标资源通过IP白名单控制访问,请参见获取EAS服务的IP地址,将EAS服务的IP添加到访问白名单中。

    3. 安全组规则是否允许互相通信。参见安全组规则

  2. 如何快速验证公网是否连通?

    可以在服务配置的运行命令中,加入简单的网络测试指令,如 sudo apt-get install iputils-ping -y; ping -c 3 www.aliyun.com; 。部署后,通过查看实例的实时日志,即可判断公网是否连通。