什么是阿里云网络以及SAE网络的选型

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

概念和能力索引一级分类

二级分类

阿里云网络基础概念

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

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

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

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

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

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

SAE网络访问对比项

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

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

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

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

常见问题

SAE应用如何访问公网?

SAE应用如何被公网访问?

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

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

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

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

视频教程[返回顶部]

阿里云网络基础概念

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

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

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

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

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

[返回顶部]

SAE网络访问主要场景与方式将应用部署到SAE后,您可能会遇到以下网络访问需求。概念图如下所示。

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

SAE Service(CLB):基于阿里云负载均衡产品(私网CLB)实现的SAE服务来访问。更多信息,请参见基于CLB配置应用服务访问。

SAE ServiceName:基于SAE的K8s底座,实现的基于域名的应用访问。每个SAE的应用会有一个SAE环境中可供访问的域名。更多信息,请参见基于K8s ServiceName配置应用服务访问。

SAE Ingress(ALB/CLB):基于阿里云负载均衡产品(私网ALB/CLB)实现的网关路由,可以根据不同的域名、路径路由到不同的SAE应用。更多信息,请参见基于ALB/CLB配置网关路由(Ingress)访问。

[返回顶部]

SAE应用需要被公网访问(入口流量)您可以通过以下方式实现。

SAE Service(CLB):基于阿里云负载均衡产品(公网CLB)实现的SAE服务访问。更多信息,请参见基于CLB配置应用服务访问。

SAE Ingress(ALB/CLB):基于阿里云负载均衡产品(公网CLB/ALB)实现的网关路由,可以根据不同的域名、路径路由到不同的SAE应用。更多信息,请参见基于ALB/CLB配置网关路由(Ingress)访问。

SAE EIP:为SAE应用的每个实例绑定一个EIP,使该实例能够同时具备出、入公网的能力。更多信息,请参见基于EIP配置SAE实例公网访问和访问公网的能力。

[返回顶部]

SAE应用需要访问公网(出口流量)您可以通过以下方式实现。

NAT网关:为SAE应用关联的VPC或者vSwitch配置NAT网关,则所有相关的SAE应用都具备了访问公网的能力。更多信息,请参见配置NAT网关使SAE应用能访问公网。

SAE EIP:为SAE应用的每个实例绑定一个EIP,则该实例会同时具备出、入公网的能力。更多信息,请参见基于EIP配置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。

更多信息,请参见以下文档:

基于SLB(ALB/CLB)配置网关路由(Ingress)

基于CLB配置服务

[返回顶部]

基于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不足,则会创建失败,导致实例无法对外提供服务。

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应用如何被公网访问?。

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

[返回顶部]

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

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

对比项

网关路由(ALB/CLB)

服务(CLB)

弹性公网IP(EIP)

是否具备路由能力

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

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

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

是否支持7层协议

支持

支持

支持

是否支持4层协议

不支持

支持

支持

是否支持跨域/Rewrite等特性

支持

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

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

是否固定访问IP

费用

ALB计费

CLB计费

CLB计费

EIP计费

[返回顶部]

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

[返回顶部]

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

[返回顶部]

SAE应用无法访问ECS怎么办?请按照以下步骤排查。

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

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

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

[返回顶部]

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

确认是否已配置白名单。

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

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

如何设置云数据库RDS白名单

如何设置云数据库MongoDB版白名单

如何设置云数据库 Tair(兼容 Redis)白名单

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

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

[返回顶部]