<!-- AI_TASK_START: AI标题翻译 -->
[解决方案] Amazon VPC Lattice 对 RDS Multi-AZ 的支持
<!-- AI_TASK_END: AI标题翻译 -->
<!-- AI_TASK_START: AI竞争分析 -->
# Amazon VPC Lattice 支持 RDS Multi-AZ 的竞争分析
## 解决方案概述
本文档详细介绍了 Amazon VPC Lattice 如何为 Amazon RDS Multi-AZ 部署提供简单、安全的访问。该解决方案针对多 VPC 环境中的数据库访问问题设计,主要解决跨 VPC 资源访问的复杂性问题,例如从 Amazon EKS 集群访问 RDS 数据库。**核心内容**包括使用 Amazon Resource Names (ARNs) 实现资源共享,适用于企业级网络架构,特别是在容器化应用(如 EKS)和数据库高可用性场景中。行业需求源于云计算的微服务化和网络隔离需求,技术原理基于 VPC Lattice 的服务网络和资源网关机制,利用 AWS PrivateLink 实现无公网暴露的私有连接,简化路由和 IP 管理。
## 实施步骤
1. **创建 Resource Gateway**
在 “rds-vpc” VPC 中创建资源网关,包括选择 IP 类型、可用区、子网和安全组。该步骤确保资源隔离并提供访问入口,逻辑上作为后续资源配置的基础。
2. **创建 Resource 配置并分配到 Resource Gateway**
定义资源组配置,选择先前创建的资源网关,并设置端口范围(如适用于 MySQL 的端口)。此步骤关联 RDS 集群 ARN,实现资源暴露,理由是它允许精确控制访问权限,避免直接网络暴露。
3. **将 Resource 配置添加到 Service 网络**
在 Service 网络中关联资源配置,包括读写 (RW) 和只读 (RO) 节点。该过程确保资源在服务网络中可用,衔接上一步的资源定义,提供跨 VPC 的统一访问。
4. **在 “eks-cluster-vpc” VPC 中创建端点**
指定 Service 网络、VPC、可用区和子网,并启用 DNS 名称。该步骤桥接消费者 VPC 和服务网络,理由是通过端点实现无缝连接,简化应用访问。
5. **DNS 验证**
启用 DNS 后,验证 DNS 解析(如使用 dig 命令),确保在不同 VPC 中正确解析 RDS 节点地址。该步骤确认连接可靠性,作为最终访问的前置检查。
6. **从测试 Pod 连接 RDS 集群**
在 EKS 集群中运行测试 Pod,使用 MySQL 客户端连接 RDS 端点。该步骤验证实际连接,逻辑上依赖前述 DNS 配置,确保端到端可达性。
## 方案客户价值
- **简化网络管理**:与传统方案相比,该解决方案减少 IP 地址管理和路由配置,允许客户专注于应用开发,而非基础设施维护,实现更高效的资源利用。
- **提升安全性和可用性**:通过 VPC Lattice 提供私有访问,避免公网暴露,与竞品(如 Azure Private Link 或 Google Cloud Private Service Connect)类似,但 AWS 集成更紧密,潜在收益包括降低安全风险和提高 RDS Multi-AZ 的高可用访问。
- **成本优化**:虽然原文未量化,但间接体现为减少手动配置开销,与传统跨 VPC 连接相比,可能实现间接成本降低(例如,通过自动化 DNS 减少运维工作量)。
- **业务灵活性**:适用于微服务架构的企业,支持从 EKS 等容器环境访问数据库,与传统方案的差异在于无缝集成 AWS 服务网络,增强了混合云场景的适应性。
## 涉及的相关产品
- **Amazon VPC Lattice**:作为核心产品,提供服务网络和资源网关功能,用于简化跨 VPC 连接和资源共享。
- **Amazon RDS Multi-AZ**:高可用数据库集群,支持自动故障转移,在方案中作为共享资源,提供读写和只读节点访问。
- **Amazon EKS**:容器编排服务,用于运行测试 Pod,在方案中作为消费者 VPC 的应用环境,实现数据库访问测试。
- **Amazon Virtual Private Cloud (VPC)**:基础网络隔离组件,“rds-vpc”和“eks-cluster-vpc”用于资源部署,确保安全边界。
## 技术评估
- **先进性**:该方案体现 AWS 在网络虚拟化和服务网格领域的领先,通过 ARN 和资源网关机制实现现代化企业网络架构,优势在于简化复杂连接并提升安全性;与竞品相比,AWS 的集成生态(如与 EKS 的无缝结合)更具竞争力。
- **可行性**:实施过程依赖 AWS 控制台和标准工具,适用于熟悉 AWS 的团队,但需注意依赖于现有 VPC 和服务网络配置,可能限制于 AWS 环境,无法直接移植到多云场景。
- **适用范围**:适合中大型企业的高可用数据库访问场景,优势包括自动 DNS 和私有连接;限制在于潜在的依赖性(如需额外配置安全组),以及如果服务网络未预先设置,可能增加初始复杂度。
- **优势与局限性**:优势是减少管理开销和提升连接可靠性;局限性包括 AWS 独占性,可能在多云策略中不如 Azure 或 GCP 的类似服务灵活。
<!-- AI_TASK_END: AI竞争分析 -->
<!-- AI_TASK_START: AI全文翻译 -->
# 亚马逊 VPC Lattice 对 RDS 多可用区的支持
**原始链接:** [https://aws.amazon.com/blogs/networking-and-content-delivery/amazon-vpc-lattice-support-for-rds-multi-az/](https://aws.amazon.com/blogs/networking-and-content-delivery/amazon-vpc-lattice-support-for-rds-multi-az/)
**发布时间:** 2025-07-08
**厂商:** AWS
**类型:** BLOG
---
在本帖中,我们回顾了如何使用 [Amazon VPC Lattice](https://aws.amazon.com/vpc/lattice/) 通过 [Amazon Resource Names](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html) (ARNs) 为 [Amazon RDS 多可用区](https://aws.amazon.com/rds/features/multi-az/) 部署提供简单且安全的访问。
### 先决条件
我们假设您熟悉 [Amazon Virtual Private Cloud](https://aws.amazon.com/vpc/) (VPC) 以及 VPC Lattice 的概念和功能。如果您不熟悉 VPC Lattice,请先查看 [Amazon VPC Lattice:现代化并简化企业网络架构](https://aws.amazon.com/blogs/networking-and-content-delivery/amazon-vpc-vattice-modernize-and-simplify-your-enterprise-network-architectures/) 再开始。
### Amazon RDS 多可用区集群资源
我们已在名为 “rds-vpc” 的 VPC 中配置了一个多可用区 MySQL 数据库集群。在这个假设用例中,我们希望从运行在 “eks-cluster-vpc” VPC 中的 [Amazon Elastic Kubernetes Service](https://aws.amazon.com/eks/) (Amazon EKS) Pod 访问该多可用区 MySQL 数据库。Amazon RDS 和 EKS 的配置信息可在 [多可用区 DB 集群部署](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/multi-az-db-clusters-concepts.html) 和创建 Amazon EKS 集群中找到。
我们将使用现有的 “dev” 服务网络,
图 1 显示了高层架构

*图 1: 用例:RDS 多可用区集群资源*
图 2 显示了 VPCs

*图 2: “rds-vpc” 和 “eks-cluster-vpc” VPCs*
图 3 显示了 Amazon RDS 节点

*图 3: Amazon RDS 控制台显示 Amazon RDS MySQL 多可用区集群*
### **我们将遵循以下步骤来配置 VPC Lattice:**
**1\. 为 “rds-vpc” VPC 创建资源网关**
**2\. 创建分配给资源网关的资源组配置**
**3\. 将资源配置添加到服务网络**
**4\. 在 “eks-cluster-vpc” VPC 中创建端点**
**5\. DNS 验证**
**6\. 从测试 Pod 通过 VPC Lattice 连接到 Amazon RDS 集群**
### 步骤 1: 为 “rds-vpc” VPC 创建资源网关
1. 打开 Amazon VPC 控制台。
2. 在导航窗格下,选择 **PrivateLink and Lattice**,然后选择 **Resource gateways**。
3. 选择 **Create resource gateway**。
4. 提供 **Resource gateway name**。
5. 选择 **IP address type**[IPv4/IPv6/Dualstack]。
6. 选择 **VPC**。
7. 选择 **Availability Zones** 和 **Subnets**。
8. 选择 **Security groups**。
9. 选择 **Create resource gateway**。

*图 4: 在 “rds-vpc” 中创建新资源网关*

*图 5: 已创建资源网关*
### **步骤 2: 创建分配给资源网关的资源配置**
1. 打开 Amazon VPC 控制台。
2. 在导航窗格下,选择 **PrivateLink and Lattice**,然后选择 **Resource configurations**。
3. 选择 **Create Resource configuration**。
4. 提供 **Name**。
5. 选中 **Resource group** 选项。
6. 从菜单中选择在步骤 1 中创建的 **Resource gateway**。
7. 编辑 **Port ranges** 以适应支持的应用程序。
8. 选择 **Create resource configuration**。

*图 6: 为资源配置创建选择 ARN 类型*

*图 7: 资源类型 Amazon Relational Database Service,然后添加 Amazon RDS 集群*

*图 8: 检查已为 Amazon RDS 节点添加的资源配置*
### 步骤 3: 将资源配置添加到服务网络
1. 打开 Amazon VPC 控制台。
2. 在导航窗格下,选择 **PrivateLink and Lattice**,然后选择 **Service networks**。
3. 选择 **Resource configuration associations** 标签。
4. 选择 **Create configuration**。
5. 选择 **Save changes**。

*图 9: 创建资源配置关联*

*图 10: 检查服务网络的资源配置关联*
资源关联存在于 Amazon RDS 集群的读写 (RW) 和只读 (RO) 节点。您可以在使用者 VPC 中通过 VPC Lattice 使用与 Amazon RDS 集群部署所在 VPC 相同的 DNS 名称访问这些节点。您的应用程序必须识别哪些节点是 RW,哪些是 RO。
### 步骤 4: 在 “eks-cluster-vpc” VPC 中创建端点
1. 打开 Amazon VPC 控制台。
2. 在导航窗格下,选择 **PrivateLink and Lattice**,然后选择 **Endpoints**。
3. 选择 **Create endpoint**。
4. 输入 **Name tag**。
5. 选择 **Service networks**。
6. 选择 **Service network**。
7. 指定 **VPC**。
8. 选择 **Availability Zone** 和 **Subnet ID**,以添加端点。

*图 11: 创建端点、指定服务网络和 “eks-cluster-vpc” VPC*

*图 12: **重要**:选中 Enable DNS name 框*

*图 13: 服务网络显示额外的端点关联*
### **步骤 5: DNS 验证**
我们已选中图 12 中显示的 **Enable DNS name** 框,因此 DNS 会自动创建,在使用者 VPC 中映射到共享的 TCP 资源。图 14 显示了 Amazon RDS 集群的 Writer 和 Reader (RO) 的 DNS 条目。图 15 和图 16 演示了在 “rds-vpc” 和 “eks-cluster-vpc” VPC 中解析 Reader 端点。

*图 14: RW 节点的 DNS,高亮显示,以及 RO Amazon RDS 节点*
您可以使用 dig 命令在 “rds-vpc” 和 “eks-cluster-vpc” VPC 中验证 RW URL 的 DNS 查询 (如图 15 和图 16 所示)。

*图 15: 从 “rds-vpc” VPC 中的客户端进行 DNS 解析*

*图 16: 从 “eks-cluster-vpc” VPC 中的客户端进行 DNS 解析,解析到 SN-E 地址*
### **步骤 6: 从测试 Pod 通过 VPC Lattice 连接到 Amazon RDS 集群**
1. 使用 kubectl 打开控制台,并访问 “eks-cluster-vpc” VPC 中的测试集群。
2. 运行带有 MySQL 客户端的测试 Pod。**mysql -u admin -p -h database-1.cluster-cthomaxlt0yi.us-west-2.rds.amazonaws.com**
3. 使用 MySQL 命令和 Amazon RDS 端点的 DNS 条目访问 RW 节点。
4. 当您看到 mysql> 提示时,表示已建立连接,如图 36 所示。
5. 退出以终止 Pod。

*图 17: 运行测试 Pod 以通过 VPC Lattice 访问 MySQL*
### 清理
为避免不必要的费用,请确保删除:
1. “eks-cluster-vpc” VPC 中的端点
2. 服务网络中的资源配置关联
3. 分配给资源网关的资源组配置
4. 资源网关
5. 任何创建的安全组
如果您为本次测试创建了数据库、集群和 VPCs,请确保删除:
6. Amazon RDS 集群
7. Amazon EKS 集群
8. VPCs
### 结论
本帖展示了如何使用 Amazon VPC Lattice 为多可用区 RDS 集群提供简单、安全的访问,利用您熟悉的 VPC Lattice 环境。它减少了 IP 地址管理,并避免了配置和管理路由,让您专注于应用程序开发。我们鼓励您在自己的环境中测试 VPC Lattice,以了解它如何简化您的应用程序网络。如果您对本帖有疑问,请在 [AWS re:Post](https://repost.aws/) 上启动新线程或联系 [AWS Support](https://docs.aws.amazon.com/awssupport/latest/user/getting-started.html)。

### Tim Dormer
Tim 是一位云网络倡导者,热衷于帮助客户导航数字化转型。他在网络、容器化和生成式 AI (Generative AI) 方面拥有专业知识,与新兴公司密切合作,构建可扩展、高性价比的云基础设施,以驱动竞争优势。除了架构云解决方案外,他还会与家人一起探索徒步路径,或在本地攀岩馆尝试攀岩问题——通常热情多于成功。

### Joe Flanagan
Joe 是 Amazon Web Services 的高级网络专家解决方案架构师,支持全球账户。他利用超过 20 年的网络和安全经验,帮助客户设计可扩展、弹性和安全的 AWS 云环境。工作之外,他会与家人一起在湖泊或海洋划船和露营。
<!-- AI_TASK_END: AI全文翻译 -->