

# 计划网络拓扑
<a name="plan-your-network-topology"></a>

 工作负载通常存在于多个环境中。其中包括多个云环境（可公开访问和私有），可能还包括您现有的数据中心基础架构。相关计划必须涵盖网络注意事项，如系统内部和系统间连接、公有 IP 地址管理、私有 IP 地址管理以及域名解析。

 在使用基于 IP 地址的网络构建系统时，您必须规划网络拓扑并预计可能的故障，从而应对未来的增长以及与其他系统及其网络的集成。

 通过 Amazon Virtual Private Cloud（Amazon VPC），您可以预置 AWS 云的私有隔离部分，并在其中启动虚拟网络中的 AWS 资源。

**Topics**
+ [REL02-BP01 为工作负载公共端点使用高度可用的网络连接](rel_planning_network_topology_ha_conn_users.md)
+ [REL02-BP02 为云环境和本地环境之间的私有网络预置冗余连接](rel_planning_network_topology_ha_conn_private_networks.md)
+ [REL02-BP03 确保 IP 子网分配考虑扩展和可用性](rel_planning_network_topology_ip_subnet_allocation.md)
+ [REL02-BP04 轴辐式拓扑优先于多对多网格](rel_planning_network_topology_prefer_hub_and_spoke.md)
+ [REL02-BP05 在互相连接的所有私有地址空间中强制实施非重叠的私有 IP 地址范围](rel_planning_network_topology_non_overlap_ip.md)

# REL02-BP01 为工作负载公共端点使用高度可用的网络连接
<a name="rel_planning_network_topology_ha_conn_users"></a>

 构建与工作负载的公共端点的高可用性网络连接有助于减少因连接丢失而导致的停机，并提高工作负载的可用性和改进 SLA。为此，需使用高度可用的 DNS、内容分发网络（CDN）、API Gateway、负载均衡或反向代理。

 **期望结果：**为公共端点规划、构建和实施高度可用的网络连接至关重要。如果工作负载因连接中断而无法访问，即使工作负载正在运行且可用，客户也会看到系统处于关闭状态。通过将工作负载的公共端点的高可用性和弹性网络连接与工作负载本身的弹性架构结合起来，您可以为客户提供最佳的可用性和服务级别。

 AWS Global Accelerator、Amazon CloudFront、Amazon API Gateway、AWS Lambda 函数 URL、AWS AppSync API 和弹性负载均衡（ELB）都提供了高度可用的公有端点。Amazon Route 53 为域名解析提供了高度可用的 DNS 服务，可确认公共端点地址是否可以解析。

 您还可以评估 AWS Marketplace 软件设备是否适用于负载均衡和代理。

 **常见反模式：**
+ 在没有规划 DNS 和网络连接以实现高可用性的情况下设计高可用性工作负载。
+  在各个实例或容器中使用公有互联网地址并使用 DNS 管理与它们的连接。
+  使用 IP 地址而非域名来查找服务。
+  没有测试与公共端点的连接丢失的场景。
+  没有分析网络吞吐量需求和分发模式。
+  没有测试和规划与工作负载公共端点的互联网连接可能中断的情况。
+  为较大地理区域提供内容（如网页、静态资产或媒体文件），而不使用内容分发网络。
+  没有为分布式拒绝服务（DDoS）攻击制定计划。DDoS 攻击会引发关闭您的用户的合法流量并降低可用性的风险。

 **建立此最佳实践的好处：**设计具有韧性的高可用性网络连接，确保用户可以访问和使用工作负载。

 **在未建立这种最佳实践的情况下暴露的风险等级：**高 

## 实施指导
<a name="implementation-guidance"></a>

 构建与公共端点的高可用性网络连接的核心是流量的路由。为了验证您的流量是否能够到达端点，DNS 必须能够将域名解析为其相应的 IP 地址。使用 Amazon Route 53 等高度可用且可扩展的[域名系统（DNS）](https://aws.amazon.com/route53/what-is-dns/)来管理域名的 DNS 记录。您还可以使用 Amazon Route 53 提供的运行状况检查。运行状况检查会确认应用程序可访问、可用且正常运行，并且支持以模仿用户行为的方式进行设置，例如请求网页或特定 URL。如果发生故障，Amazon Route 53 会响应 DNS 解析请求，并仅将流量定向到运行状况良好的端点。您还可以考虑使用 Amazon Route 53 提供的 Geo DNS 和基于延迟的路由功能。

 要验证工作负载本身是否具有高可用性，请使用弹性负载均衡（ELB）。Amazon Route 53 可用于将流量定向到 ELB，而 ELB 会将流量分配到目标计算实例。您还可以将 Amazon API Gateway 与 AWS Lambda 结合使用，实现无服务器解决方案。客户也可以在多个 AWS 区域 中运行工作负载。借助[多站点主动/主动模式](https://aws.amazon.com/blogs/architecture/disaster-recovery-dr-architecture-on-aws-part-i-strategies-for-recovery-in-the-cloud/)，工作负载可以处理来自多个区域的流量。在多站点主动/被动模式下，工作负载为来自主动区域的流量提供服务，同时将数据复制到辅助区域，并在主区域出现故障时变为主动区域。然后，可以使用 Route 53 运行状况检查来控制从主区域中的任何端点到辅助区域的端点的 DNS 故障转移，从而验证工作负载是否可以访问并可供用户使用。

 Amazon CloudFront 提供一个简单的 API，通过使用世界各地的边缘站点网络提供请求，从而分发具有低延迟和高数据传输速率的内容。内容分发网络（CDN）提供位于或缓存在用户附近位置的内容，从而为客户提供服务。随着内容负载从服务器转移到 CloudFront 的[边缘站点](https://aws.amazon.com/products/networking/edge-networking/)，这也提高了应用程序的可用性。边缘站点和区域边缘高速缓存在靠近查看者的位置保存内容的缓存副本，以便可以快速检索并提高工作负载的可访问性和可用性。

 对于用户在地理上分散的工作负载，AWS Global Accelerator 可帮助您提高应用程序的可用性和性能。AWS Global Accelerator 提供任播静态 IP 地址，它充当在一个或多个 AWS 区域 中托管的应用程序的固定入口点。这样就可以让流量在尽可能靠近用户的位置进入 AWS 全球网络，从而提高工作负载的可访问性和可用性。AWS Global Accelerator 还使用 TCP、HTTP 和 HTTPS 运行状况检查来监控应用程序端点的运行状况。端点的运行状况或配置发生任何更改，都会允许用户流量重定向到运行状况良好的端点，为用户提供最佳性能和可用性。此外，AWS Global Accelerator 采用故障隔离设计，使用由独立网络区域提供的两个静态 IPv4 地址，提高了应用程序的可用性。

 为了帮助保护客户免受 DDoS 攻击，AWS 提供 AWS Shield Standard。Shield Standard 会自动开启，可防范 SYN/UDP 泛洪和反射攻击等常见基础设施（第 3 层和第 4 层）攻击，以便在 AWS 上支持应用程序的高可用性。要针对更复杂和更大规模的攻击（如 UDP 泛洪）、状态耗尽攻击（如 TCP SYN 泛洪）提供额外保护，以及要帮助保护 Amazon Elastic Compute Cloud（Amazon EC2）、弹性负载均衡（ELB）、Amazon CloudFront、AWS Global Accelerator 和 Route 53 上运行的应用程序，可以考虑使用 AWS Shield Advanced。为了防范 HTTP POST 或 GET 泛洪等应用程序层攻击，请使用 AWS WAF。AWS WAF 可使用 IP 地址、HTTP 标头、HTTP 主体、URI 字符串、SQL 注入和跨站点脚本条件来确定是应该阻止还是允许请求。

 **实施步骤** 

1.  设置高度可用的 DNS：Amazon Route 53 是一种可用性高、可扩展性强的[域名系统（DNS）](https://aws.amazon.com/route53/what-is-dns/)Web 服务。Route 53 会将用户请求连接到在 AWS 或本地运行的互联网应用程序。有关更多信息，请参阅[将 Amazon Route 53 配置为 DNS 服务](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-configuring.html)。

1.  设置运行状况检查：当使用 Route 53 时，确认只有运行状况良好的目标才可解析。首先[创建 Route 53 运行状况检查并配置 DNS 故障转移](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover.html)。在设置运行状况检查时，必须考虑以下方面：

   1. [Amazon Route 53 如何确定运行状况检查是否正常](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-failover-determining-health-of-endpoints.html)

   1. [创建、更新和删除运行状况检查](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/health-checks-creating-deleting.html)

   1. [监控运行状况检查状态和获取通知](https://docs.aws.amazon.com/)

   1. [Amazon Route 53 DNS 的最佳实践](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/health-checks-monitor-view-status.html)

1. [将 DNS 服务连接到端点。](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/best-practices-dns.html)

   1.  使用弹性负载均衡作为流量目标时，请使用 Amazon Route 53 创建指向负载均衡器区域端点的[别名记录](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/resource-record-sets-choosing-alias-non-alias.html)。在创建别名记录期间，将评估目标运行状况选项设置为“是”。

   1.  对于使用 API Gateway 时的无服务器工作负载或私有 API，请使用 [Route 53 将流量路由到 API Gateway](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/routing-to-api-gateway.html)。

1.  决定内容分发网络。

   1.  要使用离用户更近的边缘站点分发内容，首先要了解 [CloudFront 如何分发内容](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/HowCloudFrontWorks.html)。

   1.  开始使用[简单 CloudFront 分发](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/GettingStarted.SimpleDistribution.html)。然后，CloudFront 知道您希望从何处分发内容，还知道有关如何跟踪和管理内容分发的详细信息。在设置 CloudFront 分发时，必须了解和考虑以下方面：

      1. [缓存如何用于 CloudFront 边缘站点](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cache-hit-ratio-explained.html)

      1. [增加直接从 CloudFront 缓存提供服务的请求的比例（缓存命中率）](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/cache-hit-ratio.html)

      1. [使用 Amazon CloudFront Origin Shield](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/origin-shield.html)

      1. [通过 CloudFront 源失效转移来优化高可用性](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/high_availability_origin_failover.html)

1.  设置应用程序层保护：AWS WAF 帮助您免受可能会影响可用性、危及安全性或消耗过多资源的常见 Web 漏洞和机器人的攻击。若要加深理解，请查看 [How AWS WAF works](https://docs.aws.amazon.com/waf/latest/developerguide/how-aws-waf-works.html)；若准备好实施针对应用层 HTTP POST AND GET 泛洪的保护，请查看 [Getting started with AWS WAF](https://docs.aws.amazon.com/waf/latest/developerguide/getting-started.html)。要将 AWS WAF 与 CloudFront 结合使用，请参阅有关 [How AWS WAF works with Amazon CloudFront features](https://docs.aws.amazon.com/waf/latest/developerguide/cloudfront-features.html) 的文档。

1.  设置额外的 DDoS 防护：默认情况下，所有 AWS 客户都可以免费使用 AWS Shield Standard 获得保护，防范针对您的网站或应用程序的常见、最常发生的网络和传输层 DDoS 攻击。要进一步保护在 Amazon EC2、弹性负载均衡、Amazon CloudFront、AWS Global Accelerator 和 Amazon Route 53 上运行的面向互联网的应用程序，可以考虑 [AWS Shield Advanced](https://docs.aws.amazon.com/waf/latest/developerguide/ddos-advanced-summary.html) 并查看 [Examples of DDoS resilient architectures](https://docs.aws.amazon.com/waf/latest/developerguide/ddos-resiliency.html)。要保护工作负载和公共端点免受 DDoS 攻击，请查看 [Getting started with AWS Shield Advanced](https://docs.aws.amazon.com/waf/latest/developerguide/getting-started-ddos.html)。

## 资源
<a name="resources"></a>

 **相关最佳实践：**
+  [REL10-BP01 将工作负载部署到多个位置](rel_fault_isolation_multiaz_region_system.md) 
+  [REL11-BP04 恢复期间依赖于数据面板而不是控制面板](rel_withstand_component_failures_avoid_control_plane.md) 
+  [REL11-BP06 当事件影响可用性时发送通知](rel_withstand_component_failures_notifications_sent_system.md) 

 **相关文档：**
+  [APN 合作伙伴：可帮助规划联网的合作伙伴](https://aws.amazon.com/partners/find/results/?keyword=network) 
+  [AWS Marketplace for Network Infrastructure](https://aws.amazon.com/marketplace/b/2649366011) 
+  [什么是 AWS Global Accelerator？](https://docs.aws.amazon.com/global-accelerator/latest/dg/what-is-global-accelerator.html) 
+  [What is Amazon CloudFront?](https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/Introduction.html)
+  [What is Amazon Route 53?](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/Welcome.html)
+  [什么是 Elastic Load Balancing？](https://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/what-is-load-balancing.html) 
+ [ Network Connectivity capability - Establishing Your Cloud Foundations](https://docs.aws.amazon.com/whitepapers/latest/establishing-your-cloud-foundation-on-aws/network-connectivity-capability.html)
+ [什么是 Amazon API Gateway？](https://docs.aws.amazon.com/apigateway/latest/developerguide/welcome.html)
+ [ What are AWS WAF, AWS Shield, and AWS Firewall Manager?](https://docs.aws.amazon.com/waf/latest/developerguide/what-is-aws-waf.html)
+ [What is Amazon Application Recovery Controller?](https://docs.aws.amazon.com/r53recovery/latest/dg/what-is-route53-recovery.html)
+ [配置针对 DNS 故障转移的自定义运行状况检查](https://docs.aws.amazon.com/apigateway/latest/developerguide/dns-failover.html)

 **相关视频：**
+ [AWS re:Invent 2022 - Improve performance and availability with AWS Global Accelerator](https://www.youtube.com/watch?v=s5sjsdDC0Lg)
+ [AWS re:Invent 2020: Global traffic management with Amazon Route 53](https://www.youtube.com/watch?v=E33dA6n9O7I)
+ [AWS re:Invent 2022 - Operating highly available Multi-AZ applications](https://www.youtube.com/watch?v=mwUV5skJJ0s)
+ [AWS re:Invent 2022 - Dive deep on AWS networking infrastructure](https://www.youtube.com/watch?v=HJNR_dX8g8c)
+ [AWS re:Invent 2022 - Building resilient networks](https://www.youtube.com/watch?v=u-qamiNgH7Q)

 **相关示例：**
+ [Disaster Recovery with Amazon Application Recovery Controller (ARC)](https://catalog.us-east-1.prod.workshops.aws/workshops/4d9ab448-5083-4db7-bee8-85b58cd53158/en-US/)
+ [AWS Global Accelerator 讲习会](https://catalog.us-east-1.prod.workshops.aws/workshops/effb1517-b193-4c59-8da5-ce2abdb0b656/en-US)

# REL02-BP02 为云环境和本地环境之间的私有网络预置冗余连接
<a name="rel_planning_network_topology_ha_conn_private_networks"></a>

 在云环境和本地环境中的专用网络之间实施冗余连接，以实现连接的韧性。这可以通过部署两条或更多链路和流量路径来实现，从而在网络出现故障时仍然保持连接。

 **常见反模式：**
+  仅依赖一个网络连接，这会造成单点故障。
+  仅使用一个 VPN 隧道，或者使用多个隧道，但是多个隧道又连接到同一个可用区。
+  依赖一家互联网服务提供商（ISP）来提供 VPN 连接，这会导致在 ISP 中断期间彻底故障。
+  未实施像 BGP 这样的动态路由协议，这些协议对于在网络中断期间重新路由流量至关重要。
+  忽略了 VPN 隧道的带宽限制，高估了 VPN 隧道的备份能力。

 **建立此最佳实践的好处：**通过在云环境和企业或本地环境之间实施冗余连接，两个环境之间的依赖服务就能够可靠通信。

 **在未建立这种最佳实践的情况下暴露的风险等级：**高 

## 实施指导
<a name="implementation-guidance"></a>

 使用 AWS Direct Connect 将您的本地网络连接到 AWS 时，如果使用不同的连接来连接到多个本地位置和多个 AWS Direct Connect 位置中的不同设备，则可以实现出色的网络韧性（SLA 为 99.99%）。这种拓扑结构可抵御设备故障、网络连接问题以及彻底的位置中断。或者，您可以通过使用两个单独的连接与多个位置相连（每个本地位置连接到一个 Direct Connect 位置）来实现较高的韧性（SLA 达到 99.9%）。这种方法可以防止因光纤中断或设备故障而导致的连接中断，并有助于缓解完全的位置故障。Direct Connect 韧性工具包有助于您设计 AWS Direct Connect 拓扑。

 您也可以考虑使用与 AWS Transit Gateway 相连的 AWS Site-to-Site VPN，以经济实惠的方式备份至主 AWS Direct Connect 连接。这种设置支持跨多个 VPN 隧道的等价多路径（ECMP）路由，即使每个 VPN 隧道的吞吐量上限为 1.25 Gbps，也能实现高达 50 Gbps 的吞吐量。但值得注意的是，AWS Direct Connect 仍然是大幅减少网络中断并实现稳定连接的极佳选择。

 在通过互联网使用 VPN 将您的云环境连接到本地数据中心时，将两个 VPN 隧道配置为单个 Site-to-Site VPN 连接的一部分。为了实现高可用性，每条隧道都应连接到不同的可用区，并使用冗余硬件来防止本地设备故障。此外，可以考虑使用不同互联网服务提供商（ISP）的多个互联网连接来连接到本地位置，避免因单个 ISP 中断而导致彻底中断 VPN 连接。选择具有不同路由和基础设施的 ISP，尤其是那些具有单独物理路径通往 AWS 端点的 ISP，可实现高连接可用性。

 除了通过多个 AWS Direct Connect 连接和/或多个 VPN 隧道实现物理冗余外，实施边界网关协议（BGP）动态路由也至关重要。动态 BGP 可根据实时网络状况和配置的策略，自动将流量从一条路径重新路由到另一条路径。这种动态行为特别有助于在链路或网络出现故障时，保持网络可用性和服务连续性，进而快速选择替代的路径，增强网络的韧性和可靠性。

### 实施步骤
<a name="implementation-steps"></a>
+  在 AWS 和本地环境之间获取高度可用的连接。
  +  在单独部署的专用网络之间使用多个 AWS Direct Connect 连接或 VPN 隧道。
  +  使用多个 Direct Connect 位置来实现高可用性。
  +  如果使用多个 AWS 区域，请至少在其中两个区域中创建冗余。
+  如果可能，请使用 AWS Transit Gateway 终止 [VPN 连接](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-vpn-attachments.html)。
+  评估 AWS Marketplace 设备以终止 VPN 或[将 SD-WAN 扩展到 AWS](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/aws-transit-gateway-sd-wan.html)。如果您使用 AWS Marketplace 设备，请在不同的可用区中部署冗余实例以实现高可用性。
+  提供面向本地环境的冗余连接。
  +  您可能需要面向多个 AWS 区域 的冗余连接来满足可用性需求。
  +  使用 [Direct Connect 韧性工具包](https://docs.aws.amazon.com/directconnect/latest/UserGuide/resilency_toolkit.html)开始操作。

## 资源
<a name="resources"></a>

 **相关文档：**
+  [AWS Direct Connect Resiliency Recommendations](https://aws.amazon.com/directconnect/resiliency-recommendation/) 
+  [Using Redundant Site-to-Site VPN Connections to Provide Failover](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPNConnections.html) 
+  [Routing policies and BGP communities](https://docs.aws.amazon.com/directconnect/latest/UserGuide/routing-and-bgp.html) 
+  [Active/Active and Active/Passive Configurations in AWS Direct Connect](https://docs.aws.amazon.com/architecture-diagrams/latest/active-active-and-active-passive-configurations-in-aws-direct-connect/active-active-and-active-passive-configurations-in-aws-direct-connect.html) 
+  [APN 合作伙伴：可帮助规划联网的合作伙伴](https://aws.amazon.com/partners/find/results/?keyword=network) 
+  [AWS Marketplace for Network Infrastructure](https://aws.amazon.com/marketplace/b/2649366011) 
+  [Amazon Virtual Private Cloud Connectivity Options](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/introduction.html) 白皮书 
+  [构建可扩展的安全多 VPC AWS 网络基础结构](https://docs.aws.amazon.com/whitepapers/latest/building-scalable-secure-multi-vpc-network-infrastructure/welcome.html) 
+  [Using redundant Site-to-Site VPN connections to provide failover](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPNConnections.html) 
+  [Using the Direct Connect Resiliency Toolkit to get started](https://docs.aws.amazon.com/directconnect/latest/UserGuide/resilency_toolkit.html) 
+  [VPC 端点和 VPC 端点服务（AWS PrivateLink）](https://docs.aws.amazon.com/vpc/latest/userguide/endpoint-services-overview.html) 
+  [什么是 Amazon VPC？](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) 
+  [What is a transit gateway?](https://docs.aws.amazon.com/vpc/latest/tgw/what-is-transit-gateway.html)
+  [什么是 AWS Site-to-Site VPN？](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_VPN.html) 
+  [Working with Direct Connect gateways](https://docs.aws.amazon.com/directconnect/latest/UserGuide/direct-connect-gateways.html) 

 **相关视频：**
+  [AWS re:Invent 2018: Advanced VPC Design and New Capabilities for Amazon VPC ](https://youtu.be/fnxXNZdf6ew) 
+  [AWS re:Invent 2019: AWS Transit Gateway reference architectures for many VPCs](https://youtu.be/9Nikqn_02Oc) 

# REL02-BP03 确保 IP 子网分配考虑扩展和可用性
<a name="rel_planning_network_topology_ip_subnet_allocation"></a>

 Amazon VPC IP 地址范围必须足够大，能够满足工作负载要求，包括考虑未来的扩展以及跨可用区为子网分配 IP 地址。这包括负载均衡器、EC2 实例和基于容器的应用程序。

 当您规划网络拓扑时，第一步是定义 IP 地址空间本身。应（按照 RFC 1918 准则）为每个 VPC 分配私有 IP 地址范围。作为此流程的一部分，要满足以下要求：
+ 在每个区域中为多个 VPC 留出 IP 地址空间。
+ 在 VPC 内，为多个子网留出空间，这样您就可以跨多个可用区。
+ 请考虑在 VPC 内保留未使用的 CIDR 块空间以用于未来扩展。
+ 确保 IP 地址空间足以满足可能使用的任何 Amazon EC2 实例临时性队列的需求，如适用于机器学习的竞价型实例集、Amazon EMR 集群或 Amazon Redshift 集群。若是 Amazon Elastic Kubernetes Service（Amazon EKS）等 Kubernetes 集群，也应考虑这些因素。因为默认情况下，每个 Kubernetes 容器组（pod）都会从 VPC CIDR 块中分配一个可路由的地址。
+ 注意，每个子网 CIDR 块中的前四个 IP 地址和最后一个 IP 地址将被预留，无法供您使用。
+ 注意，最初被分配到您 VPC 的 VPC CIDR 块无法被更改或删除，但可以向 VPC 添加额外的非重叠的 CIDR 块。虽然无法更改子网 IPv4 CIDR，但可以更改 IPv6 CIDR。
+ 可以使用的最大 VPC CIDR 块为 /16，最小为 /28。
+ 考虑其他互联网络（VPC、本地部署或其他云提供商），并确保 IP 地址空间不重叠。有关更多信息，请参阅 [REL02-BP05 在互相连接的所有私有地址空间中强制实施非重叠的私有 IP 地址范围。](https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/rel_planning_network_topology_non_overlap_ip.html)

 **期望结果：**可扩展的 IP 子网有助于您适应未来的增长，并避免不必要的浪费。

 **常见反模式：**
+ 没有考虑未来的增长，导致 CIDR 块过小且需要重新配置，这可能会造成停机。
+ 错误估计弹性负载均衡器可以使用的 IP 地址数量。
+ 在相同子网中部署多个高流量负载均衡器。
+ 使用自动扩缩机制，但未能监控 IP 地址使用情况。
+ 定义过大的 CIDR 范围，远远超出未来的增长预期，这会导致地址范围重叠，难以与其他网络建立对等连接。

 **建立此最佳实践的好处：**这可确保您能适应工作负载增长要求，并在纵向扩展过程中继续提供可用性。

 **在未建立这种最佳实践的情况下暴露的风险等级：**中 

## 实施指导
<a name="implementation-guidance"></a>

规划您的网络以适应增长、符合监管合规性以及实现与其他服务的集成。如果没有合理的规划，则增长可能会被低估、监管合规性可能会发生变化并且购置或私有网络连接可能难以实施。
+  根据您服务、延迟、法规和灾难恢复（DR）要求，选择相关 AWS 账户 和区域。
+  确定对区域 VPC 部署的需求。
+  确定 VPC 的大小。
  +  确定是否要部署多 VPC 连接。
    +  [What Is a Transit Gateway?](https://docs.aws.amazon.com/vpc/latest/tgw/what-is-transit-gateway.html)
    +  [Single Region Multi-VPC Connectivity](https://aws.amazon.com/answers/networking/aws-single-region-multi-vpc-connectivity/) 
  +  确定是否需要隔离网络来满足法规要求。
  + 使用适当大小的 CIDR 块创建 VPC，满足当前和未来的需求。
    + 如果增长预测不明朗，则可能需要偏向更大的 CIDR 块，降低未来重新配置的可能性
  + 在双堆栈 VPC 中，考虑对子网使用 [IPv6 寻址](https://aws.amazon.com/vpc/ipv6/)。IPv6 非常适合用于包含大量临时实例集或临时容器集的私有子网，因此需要大量 IPv4 地址。

## 资源
<a name="resources"></a>

 **相关的 Well-Architected 最佳实践：**
+  [REL02-BP05 在互相连接的所有私有地址空间中强制实施非重叠的私有 IP 地址范围](https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/rel_planning_network_topology_non_overlap_ip.html) 

 **相关文档：**
+  [APN 合作伙伴：可帮助规划联网的合作伙伴](https://aws.amazon.com/partners/find/results/?keyword=network) 
+  [AWS Marketplace for Network Infrastructure](https://aws.amazon.com/marketplace/b/2649366011) 
+  [Amazon Virtual Private Cloud Connectivity Options 白皮书](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/introduction.html) 
+  [多数据中心 HA 网络连接](https://aws.amazon.com/answers/networking/aws-multiple-data-center-ha-network-connectivity/) 
+  [Single Region Multi-VPC Connectivity](https://aws.amazon.com/answers/networking/aws-single-region-multi-vpc-connectivity/) 
+  [什么是 Amazon VPC？](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) 
+  [ 上的 IPv6AWS](https://aws.amazon.com/vpc/ipv6) 
+  [IPv6 on reference architectures](https://d1.awsstatic.com/architecture-diagrams/ArchitectureDiagrams/IPv6-reference-architectures-for-AWS-and-hybrid-networks-ra.pdf) 
+  [Amazon Elastic Kubernetes Service launches IPv6 support](https://aws.amazon.com/blogs/containers/amazon-eks-launches-ipv6-support/) 
+ [Recommendations for your VPC - Classic Load Balancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-backend-instances.html#set-up-ec2)
+ [Availability Zone subnets - Application Load Balancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/application-load-balancers.html#availability-zones)
+ [Availability Zones - Network Load Balancers](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancers.html#availability-zones)

 **相关视频：**
+  [AWS re:Invent 2018: Advanced VPC Design and New Capabilities for Amazon VPC (NET303)](https://youtu.be/fnxXNZdf6ew) 
+  [AWS re:Invent 2019: AWS Transit Gateway reference architectures for many VPCs (NET406-R1)](https://youtu.be/9Nikqn_02Oc) 
+  [AWS re:Invent 2023: AWS Ready for what's next? Designing networks for growth and flexibility (NET310)](https://www.youtube.com/watch?v=FkWOhTZSfdA) 

# REL02-BP04 轴辐式拓扑优先于多对多网格
<a name="rel_planning_network_topology_prefer_hub_and_spoke"></a>

 连接多个私有网络时，例如连接虚拟私有云（VPC）与本地网络，应优先选择轴辐式拓扑而不是网格拓扑。在网格拓扑中，每个网络直接连接到其他网络，这会增加复杂性和管理开销，而轴辐式拓扑则不同，这种拓扑架构通过单个中心枢纽来集中连接。这种集中式方法简化了网络结构，并且可以增强可操作性、可扩展性和控制能力。

 AWS Transit Gateway 是一项托管服务，可扩展且能够提供高可用性，专为在 AWS 上构建轴辐式网络而设计。该服务充当网络的中心枢纽，提供网络分段、集中路由功能，并可简化与云端以及与本地环境的连接。下图说明了如何使用 AWS Transit Gateway 来构建轴辐式拓扑。

![\[AWS Transit Gateway connecting various services like VPCs, Direct Connect, and third-party appliances.\]](http://docs.aws.amazon.com/zh_cn/wellarchitected/latest/reliability-pillar/images/hub-and-spoke.png)


 

 **期望结果：**您已通过中心枢纽连接虚拟私有云（VPC）和本地网络。可以通过此枢纽配置对等连接，该枢纽充当高度可扩展的云路由器。因为您不必处理复杂的对等关系，所以路由得以简化。网络之间的流量已加密，并且您可以隔离网络。

 **常见反模式：**
+  您构建复杂的网络对等规则。
+  您在不应彼此通信的网络之间提供路由（例如，没有相互依赖关系的独立工作负载）。
+  枢纽实例的治理效率低下。

 **建立此最佳实践的好处：**随着互联网络数量增加，网格连接的管理和扩展变得越来越有挑战性。网格架构会带来其它挑战，例如额外的基础设施组件、配置要求和部署注意事项。网格还为管理和监控数据面板和控制面板组件带来了额外的开销。您必须考虑如何提供网格架构的高可用性，如何监控网格运行状况和性能，以及如何处理网格组件的升级。

 另一方面，轴辐式模型可在多个网络之间建立集中式流量路由。它提供了一种更简单的方法来管理和监控数据面板和控制面板组件。

 **在未建立这种最佳实践的情况下暴露的风险等级：**中 

## 实施指导
<a name="implementation-guidance"></a>

 如果网络服务账户不存在，请创建一个此类账户。将枢纽置于组织的网络服务账户中。这种方法可让网络工程师对枢纽进行集中管理。

 轴辐式模型的枢纽充当虚拟路由器，用于路由在虚拟私有云（VPC）和本地网络之间流动的流量。这种方法降低了网络复杂性，并且可以更轻松地对网络问题进行故障排除。

 考虑您的网络设计，包括要互连的 VPC、AWS Direct Connect 和 Site-to-Site VPN 连接。

 考虑为每个中转网关 VPC 连接使用单独的子网。对于每个子网，请使用小型 CIDR（例如 /28），以便您有更多地址空间用于计算资源。此外，创建一个网络 ACL，并将其与已和枢纽关联的所有子网相关联。确保网络 ACL 在入站和出站方向打开。

 设计并实现路由表，以便仅在应进行通信的网络之间提供路由。忽略不应彼此通信的网络之间的路由（例如，在没有相互依赖关系的不同工作负载之间）。

### 实施步骤
<a name="implementation-steps"></a>

1.  规划网络。确定要连接的网络，并确认它们不共享重叠的 CIDR 范围。

1.  创建 AWS Transit Gateway 并连接您的 VPC。

1.  根据需要，创建 VPN 连接或 Direct Connect 网关，并将其与 Transit Gateway 关联。

1.  通过配置 Transit Gateway 路由表，定义如何在连接的 VPC 和其他连接之间路由流量。

1.  使用 Amazon CloudWatch 进行监控并根据需要调整配置，从而优化性能和成本。

## 资源
<a name="resources"></a>

 **相关最佳实践：**
+  [REL02-BP03 确保 IP 子网分配考虑扩展和可用性](https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/rel_planning_network_topology_ip_subnet_allocation.html) 
+  [REL02-BP05 在互相连接的所有私有地址空间中强制实施非重叠的私有 IP 地址范围](https://docs.aws.amazon.com/wellarchitected/latest/reliability-pillar/rel_planning_network_topology_non_overlap_ip.html) 

 **相关文档：**
+  [What Is a Transit Gateway?](https://docs.aws.amazon.com/vpc/latest/tgw/what-is-transit-gateway.html)
+  [中转网关设计最佳实践](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-best-design-practices.html) 
+  [构建可扩展的安全多 VPC AWS 网络基础结构](https://docs.aws.amazon.com/whitepapers/latest/building-scalable-secure-multi-vpc-network-infrastructure/welcome.html) 
+  [Building a global network using AWS Transit Gateway Inter-Region peering](https://aws.amazon.com/blogs/networking-and-content-delivery/building-a-global-network-using-aws-transit-gateway-inter-region-peering/) 
+  [Amazon Virtual Private Cloud Connectivity Options](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/introduction.html) 
+  [APN 合作伙伴：可帮助规划联网的合作伙伴](https://aws.amazon.com/partners/find/results/?keyword=network) 
+  [AWS Marketplace for Network Infrastructure](https://aws.amazon.com/marketplace/b/2649366011) 

 **相关视频：**
+  [AWS re:Invent 2023 – AWS networking foundations](https://www.youtube.com/watch?v=8nNurTFy-h4) 
+  [AWS re:Invent 2023 – Advanced VPC designs and new capabilities](https://www.youtube.com/watch?v=cRdDCkbE4es) 

 **相关讲习会：**
+  [AWS Transit Gateway Workshop](https://catalog.workshops.aws/trasitgw/en-US) 

# REL02-BP05 在互相连接的所有私有地址空间中强制实施非重叠的私有 IP 地址范围
<a name="rel_planning_network_topology_non_overlap_ip"></a>

当多个 VPC 对等连接、通过 Transit Gateway 连接或者通过 VPN 连接时，各个 VPC 的 IP 地址范围不得重叠。避免 VPC 与本地环境之间或者与所使用的其他云提供商之间出现 IP 地址冲突。您还必须能够在需要时分配私有 IP 地址范围。IP 地址管理（IPAM）系统有助于实现这一操作的自动化。

 **期望结果：**
+  VPC、本地环境或其他云提供商之间不存在 IP 地址范围冲突。
+  适当的 IP 地址管理支持更轻松地扩展网络基础设施来适应不断增长和变化的网络要求。

 **常见反模式：**
+  在 VPC 中使用与本地、企业网络或者其他云提供商相同的 IP 范围。
+  不追踪用于部署工作负载的 VPC 的 IP 范围。
+  依赖手动 IP 地址管理流程，例如电子表格。
+  CIDR 块过大或过小，这往往会导致 IP 地址浪费或地址空间不足以容纳您的工作负载。

 **建立此最佳实践的好处：**主动规划网络可确保您不会遇到互连网络中多次出现相同 IP 地址的情况。这可防止使用不同应用程序的工作负载部分出现路由问题。

 **在未建立这种最佳实践的情况下暴露的风险等级：**中 

## 实施指导
<a name="implementation-guidance"></a>

 使用 IPAM（例如 [Amazon VPC IP 地址管理器](https://docs.aws.amazon.com/vpc/latest/ipam/what-it-is-ipam.html)）来监控并管理 CIDR 使用情况。AWS Marketplace 也提供了几个 IPAM。评估您在 AWS 上的可能使用量、将 CIDR 范围添加到现有 VPC，并且在创建 VPC 时要考虑到计划的使用量增长情况。

### 实施步骤
<a name="implementation-steps"></a>
+  捕获当前的 CIDR 使用量数据（例如，VPC 和子网）。
  +  使用服务 API 操作收集当前的 CIDR 使用量数据。
  +  使用 Amazon VPC IP 地址管理器来[发现资源](https://docs.aws.amazon.com/vpc/latest/ipam/res-disc-work-with-view.html)。
+  捕获当前的子网使用量数据。
  +  使用服务 API 操作在每个区域中按 VPC [收集子网](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/API_DescribeSubnets.html)。
  +  使用 Amazon VPC IP 地址管理器来[发现资源](https://docs.aws.amazon.com/vpc/latest/ipam/res-disc-work-with-view.html)。
+  记录当前使用量数据。
+  确定是否创建了任何重叠的 IP 范围。
+  计算备用容量。
+  确定重叠的 IP 范围。您可以迁移到新的地址范围，也可以考虑在需要连接重叠范围时使用[私有 NAT 网关](https://docs.aws.amazon.com/whitepapers/latest/building-scalable-secure-multi-vpc-network-infrastructure/private-nat-gateway.html)或 [AWS PrivateLink](https://docs.aws.amazon.com/whitepapers/latest/building-scalable-secure-multi-vpc-network-infrastructure/aws-privatelink.html) 等技术。

## 资源
<a name="resources"></a>

 **相关最佳实践：**
+ [保护网络](https://docs.aws.amazon.com/wellarchitected/latest/security-pillar/protecting-networks.html)

 **相关文档：**
+  [APN 合作伙伴：可帮助规划联网的合作伙伴](https://aws.amazon.com/partners/find/results/?keyword=network) 
+  [AWS Marketplace for Network Infrastructure](https://aws.amazon.com/marketplace/b/2649366011) 
+  [Amazon Virtual Private Cloud Connectivity Options](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/introduction.html) 白皮书 
+  [多数据中心 HA 网络连接](https://aws.amazon.com/answers/networking/aws-multiple-data-center-ha-network-connectivity/) 
+ [ Connecting Networks with Overlapping IP Ranges ](https://aws.amazon.com/blogs/networking-and-content-delivery/connecting-networks-with-overlapping-ip-ranges/)
+  [什么是 Amazon VPC？](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html) 
+  [什么是 IPAM？](https://docs.aws.amazon.com/vpc/latest/ipam/what-it-is-ipam.html) 

 **相关视频：**
+ [AWS re:Invent 2023 - Advanced VPC designs and new capabilities ](https://www.youtube.com/watch?v=cRdDCkbE4es)
+  [AWS re:Invent 2019: AWS Transit Gateway reference architectures for many VPCs](https://youtu.be/9Nikqn_02Oc) 
+ [AWS re:Invent 2023 – Ready for what’s next? Designing networks for growth and flexibility ](https://www.youtube.com/watch?v=FkWOhTZSfdA)
+ [AWS re:Invent 2021 – \$1New Launch\$1 Manage your IP addresses at scale on AWS](https://www.youtube.com/watch?v=xtLJgJfhPLg)