

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 中网络访问的反模式 AWS Cloud
<a name="anti-patterns"></a>

*反模式*是一种用于解决反复出现的问题的常用解决方案，而在这类问题中，此解决方案适得其反、无效或不如替代方案有效。本节中提到的设计选项通常有效，但它们有明显的缺点。如果可能，应避免使用它们，因为有更好的替代品可供选择。

**Topics**
+ [可用区与不匹配 AWS PrivateLink](#anti-patterns-az-mismatch)
+ [AWS Site-to-Site VPN 之间的连接 AWS 账户](#anti-patterns-vpn-connection)

## 可用区与不匹配 AWS PrivateLink
<a name="anti-patterns-az-mismatch"></a>

通过提供对应用程序的访问权限时 AWS PrivateLink，SaaS 用户只能在部署应用程序的可用区中创建接口 VPC 终端节点。例如，如果应用程序部署在`use1-az1`和中`use1-az2`，则使用者无法在中部署 VPC 终端节点`use1-az3`。我们建议您在每个可用区部署 SaaS 产品。大多数 AWS 区域 都有三个可用区，但有些还有更多。有关完整列表，请参阅[地区和可用区](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/)。在选择可用区时，请考虑可用区的数量 AWS 区域。

**注意**  
可用区域名称不同于可用区 IDs。有关更多信息，请参阅[您的 IDs AWS 资源的可用区](https://docs.aws.amazon.com/ram/latest/userguide/working-with-az-ids.html)。

如果 SaaS 提供商选择不在所有可用区域进行部署，则会产生一些后果。假设 SaaS 产品部署在`use1-az1`和中`use1-az2`，但消费者正在使用所有三个可用区，包括`use1-az3`。接口 VPC 终端节点部署在`use1-az1`和中的消费者端`use1-az2`，现在中的应用程序`use1-az3`需要访问其中一个终端节点。首先，必须允许流量从不匹配的可用区中的子网进入相应的 VPC 终端节点。消费者可以决定使用区域 AWS PrivateLink DNS 名称，该名称可以解析到任一 VPC 终端节点，并在两者之间均匀分配流量。或者，消费者可以选择将流量直接发送到终端节点，例如`use1-az2`。这导致67％的流量来自提供商一方，33％进入提供商。`use1-az2` `use1-az1`下图描述了这种情况。

![流量未均匀地分配到可用区。](http://docs.aws.amazon.com/zh_cn/prescriptive-guidance/latest/saas-network-access-options/images/antipattern-az-mismatch.png)


由于消费者数量众多，流量分布不均匀，工作负载可能会在一个可用区遇到容量问题，而另一个可用区则出现容量不足。为了解决这个问题，SaaS 提供商可以决定通过在 Network Load Balancer 上启用[跨区域负载平衡](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#cross-zone-load-balancing)来均衡其侧面的流量。这会产生额外费用。

如果服务提供商只匹配了一个可用区，则所有流量都将通过单个终端节点进入。这造成了更大的不平衡。因此，SaaS产品对消费者的可用性不再高。对于消费者来说，应用程序是否通过他们自己没有使用的其他可用区提供服务并不重要。在最坏的情况下，SaaS 提供商可能无法为不使用任何相同可用区的消费者提供服务。

在极少数情况下，SaaS 提供商无法在所有可用区中配置其应用程序，也可以仅在缺少的可用区中创建子网，然后将服务扩展到那些空的可用区。然后，跨区域负载平衡可以将传入流量分配到其他可用区域中的实际应用程序终端节点。

## AWS Site-to-Site VPN 之间的连接 AWS 账户
<a name="anti-patterns-vpn-connection"></a>

从本地环境迁移到云端的公司有时会尝试提升和转移整个网络。这可能会导致问题，因为本地网络和云网络实践之间存在显著差异。如果不发生这种思维方式的转变，就会发生诸如从一个 VPC 到另一个 VPC 的 AWS Site-to-Site VPN 连接之类的事情。这种方法无法利用中专门构建的网络服务 AWS Cloud，这些服务可以简化管理并提高性能。适应云原生设计有助于减少运营开销，并在两者之间 VPCs实现更可靠、更可扩展的连接。

如果您正在考虑以SaaS提供商的身份提供此连接选项，请问自己或消费者为什么 AWS Site-to-Site VPN 要使用。然后，从这些要求向后推进，找到更好的连接选项。本指南的 “[比较服务功能](services.md#services-capabilities)” 部分包含一个矩阵，您可以使用该矩阵来帮助确定选项。然后，您可以仔细阅读本指南的相关部分，找到适合您的用例的架构方法。