SAE网络相关概念和能力

通过本文,您可以了解与Serverless 应用引擎 SAE(Serverless App Engine)网络相关的概念,以及面对不同的网络访问需求时如何选择适配的网络类型。

概念和能力索引

一级分类

二级分类

阿里云网络基础概念

SAE网络访问主要场景与方式

SAE网络访问对比项

常见问题

视频教程

[返回顶部]

阿里云网络基础概念

dg_aliyun_cloud_network

  • 专有网络(VPC):基于阿里云创建的自定义私有网络,不同的专有网络之间在逻辑上彻底隔离。

    说明

    私有网络默认不可访问公网。

  • 交换机(vSwitch):交换机是组成专有网络的基础网络设备,对应实体物理机房。在VPC内创建云资源时,必须指定云资源所连接的交换机。

  • 弹性公网IP(EIP):只能和一个资源(ECS、SAE实例等)绑定,绑定的资源具备出、入公网的能力。

  • NAT网关(NAT Gateway):支持VPC内的资源访问公网(SNAT)。区别于EIP的核心功能,公网NAT网关可用于VPC内的所有资源,而EIP只能用于VPC内的一个资源。

[返回顶部]

SAE网络访问主要场景与方式

将应用部署到SAE后,您可能会遇到以下网络访问需求。概念图如下所示。dg_sae_network

SAE应用之间的内网互相访问(非微服务)

Serverless模式下,每次部署都会产生新的内网IP,但不支持直接基于实例的IP来互相访问应用。您可以通过以下方式实现。

[返回顶部]

SAE应用需要被公网访问(入口流量)

您可以通过以下方式实现。

[返回顶部]

SAE应用需要访问公网(出口流量)

您可以通过以下方式实现。

[返回顶部]

SAE需要访问VPC内的ECS、云数据库RDS和云数据库 Tair(兼容 Redis)等

  • SAE基于阿里云VPC网络,因此无需额外配置,可以直接访问同一VPC内的资源,如ECS、云数据库RDS和云数据库 Tair(兼容 Redis)等。反之,同一VPC内的阿里云资源也可以访问SAE

  • 需要确认安全组、产品白名单是否放开。如果遇到问题,请参考常见问题的步骤进行排查。

[返回顶部]

微服务应用访问注册中心以及实例互相访问

更多信息,请参见SAE微服务相关概念和能力

[返回顶部]

SAE网络访问对比项

SAE中ServiceName和网关路由(Ingress)的区别

SAE基于阿里云SLB(CLB和ALB)实现的网关路由(Ingress),具备根据域名、路径路由到不同应用的能力(如下图),而ServiceName不具备该能力。因此,在满足需求的前提下,建议您优先考虑使用网关路由。在需要使用4层TCP协议访问或者无法通过域名访问等场景下,您可以考虑使用ServiceName。dg_slb

[返回顶部]

基于CLB实现的服务和基于域名(ServiceName)实现的服务的区别

K8s服务有两种模式,一种是基于CLB,另一种是基于ClusterIP。SAE没有直接提供ClusterIP,而是提供了一个可供访问的域名。两者的主要区别如下。

对比项

CLB

Domain(ClusterIP)

费用

CLB计费

免费

运维

CLB作为一个独立的阿里云产品,支持配置相关的监控、告警以及收集访问日志到SLS,提供细粒度的问题排查能力。

未提供独立的监控、告警、访问日志等能力,需要应用侧本身配置告警和日志。

[返回顶部]

基于ALB实现的网关路由和CLB网关路由的区别

ALB(Application Load Balancer)是阿里云推出的专门面向HTTP、HTTPS和QUIC等应用层负载场景的负载均衡服务。针对网关路由场景,建议您优先考虑使用ALB。更多信息,请参见负载均衡SLB产品家族介绍

[返回顶部]

基于NAT访问公网和EIP访问公网的区别

EIP访问公网的示例图如下,每个实例都会绑定一个EIP。如果EIP不足,则会创建失败,导致实例无法对外提供服务。dg_eip

NAT和EIP两种模式的主要差异如下。

对比项

NAT

EIP

生效范围

NAT可以控制在VPC或者vSwitch级别,为VPC或者vSwitch内所有无公网IP的实例提供访问公网的代理服务。一个VPC或者vSwitch只需要配置一个NAT,其所有实例将具备出公网的能力。

EIP为实例级别,例如10个实例就需要10个EIP。一个实例绑定EIP后,将同时具备出网和入网的能力。

是否固定公网IP

是。

否。新的实例成功绑定EIP后,SAE才会销毁原先的实例并解绑原来的EIP。因此,需保证EIP数量至少为实例数量加一。EIP是变化的,是一个IP池。

典型场景

应用会自动弹性扩缩,新的实例默认需要出公网的能力,且需要固定IP(95%的用户都适合该场景)。

可接受EIP可变,需要直连实例的场景(例如在线会议),另外还需要自行精细化地控制每个实例的生命周期。

费用

计费详情,请参见NAT网关计费

计费详情,请参见EIP计费。实例数不超过20个时,EIP成本更优。

[返回顶部]

常见问题

SAE应用如何访问公网?

首先参照下图,明确您的需求是“出”公网还是“入”公网。如果是“出”流量,则参考本小节;如果是“入”流量,请参见SAE应用如何被公网访问?dg_sae_access_public_network

SAE可以通过配置NAT网关使SAE应用能访问公网或者基于EIP配置SAE实例公网访问和访问公网的能力两种模式访问公网,优先推荐基于NAT的访问模式。两种模式的区别,请参见基于NAT访问公网和EIP访问公网的区别

[返回顶部]

SAE应用如何被公网访问?

首先参照下图,明确您的需求是“出”公网还是“入”公网。如果是“入”流量,则参考本篇文章;如果是“出”流量,请参见SAE应用如何访问公网?dg_sae_access_public_network

优先推荐基于ALB/CLB配置网关路由(Ingress)访问提供公网访问。如果网关路由方式无法满足您的需求,您可以参考基于CLB配置应用服务访问或者基于EIP配置SAE实例公网访问和访问公网的能力提供访问。主要区别如下。

对比项

网关路由(ALB/CLB)

服务(CLB)

弹性公网IP(EIP)

是否具备路由能力

具备。可以根据域名/路径,路由到不同的应用。

不具备。只能访问该端口背后的一个应用。

不具备。一般需要获取EIP列表,并自行控制访问策略。

是否支持7层协议

支持

支持

支持

是否支持4层协议

不支持

支持

支持

是否支持跨域/Rewrite等特性

支持

不支持。需要应用自行实现。

不支持。需要应用自行实现。

是否固定访问IP

费用

CLB计费

EIP计费

[返回顶部]

SAE应用如何和公网域名绑定?

SAE本身并不处理和域名相关的操作,您可以在SAE配置ALB或CLB后,获取相关的公网IP或者域名,再到域名DNS服务进行绑定。

[返回顶部]

SAE应用无法访问短信服务API怎么办?

参考短信服务接入点,大部分地域只提供公网的接入方式。请先确认SAE应用是否已配置公网访问能力。更多信息,请参见SAE应用如何访问公网?

[返回顶部]

SAE应用无法访问ECS怎么办?

请按照以下步骤排查。

  1. 确认SAE和ECS服务器都在同一个VPC内,并检查安全组配置是否放开相关的端口。

  2. 在容器内执行pingtelnet服务地址的命令检测连通性。如果没有这些命令,请先安装常见命令(操作步骤)再执行。

访问公网ECS地址的具体操作,请参见SAE应用如何访问公网?

[返回顶部]

SAE应用无法访问云数据库RDS和云数据库 Tair(兼容 Redis)等怎么办?

请先确认SAE应用访问的RDS或者Tair(兼容 Redis)地址,属于公网地址还是内网地址。内网地址的网络质量和时延都优于公网,因此同一个VPC内优先推荐内网地址。网络的费用与创建的资源类型有关,更多信息,请参见产品计费。如果属于不同VPC,在条件允许的情况下,推荐您使用云企业网CEN(Cloud Enterprise Network)打通,再采用内网地址。确认地址类型后,请按照以下步骤排查。

  1. 确认是否已配置白名单。

    说明

    内网访问需添加VPC/vSwitch网段白名单,公网访问需要添加公网EIP白名单。

    如果未配置,请参见以下文档进行配置:

  2. 在容器内执行pingtelnet服务地址的命令。如果没有这些命令,请先安装再执行。具体操作,请参见如何安装常见命令?

  3. 如果pingtelnet命令都正常,还可以考虑直接安装MySQL(操作步骤)或者Tair(兼容 Redis)客户端(操作步骤),测试是否能联通。如果能联通,则可以排除SAE网络环境问题,需要您检查程序设置。

[返回顶部]