

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

# 用于访问 Amazon VPC 中 MemoryDB 集群的访问模式
<a name="memorydb-vpc-accessing"></a>

MemoryDB 支持以下场景来访问 Amazon VPC 中的集群：

**Contents**
+ [当 MemoryDB 集群和 Amazon EC2 实例位于同一 Amazon VPC 中时访问该集群](#memorydb-vpc-accessing-same-vpc)
+ [当 MemoryDB 集群和 Amazon EC2 实例位于不同 Amazon VPC 时访问该集群](#memorydb-vpc-accessing-different-vpc)
  + [在同一区域的不同 Amazon VPC 中](#memorydb-vpc-accessing-different-vpc-same-region)
    + [使用 Transit Gateway](#memorydb-vpc-accessing-using-transit-gateway)
  + [在不同区域的不同 Amazon VPC 中](#memorydb-vpc-accessing-different-vpc-different-region)
    + [使用 Transit VPC](#memorydb-vpc-accessing-different-vpc-different-region-using-transit-vpc)
+ [从在客户的数据中心中运行的应用程序访问 MemoryDB 集群](#memorydb-vpc-accessing-data-center)
  + [使用 VPN 连接](#memorydb-vpc-accessing-data-center-vpn)
  + [使用 Direct Connect](#memorydb-vpc-accessing-data-center-direct-connect)

## 当 MemoryDB 集群和 Amazon EC2 实例位于同一 Amazon VPC 中时访问该集群
<a name="memorydb-vpc-accessing-same-vpc"></a>

最常见的使用场景是，当 EC2 实例上部署的应用程序需要连接到同一 VPC 中的集群时。

要管理同一 VPC 中 EC2 实例与集群之间的访问，最简单方法如下所示：

1. 为集群创建 VPC 安全组。此安全组可用于限制对集群的访问权限。例如，可为此安全组创建自定义规则，允许使用您创建集群时分配给该集群的端口以及将用来访问集群的 IP 地址进行 TCP 访问。

   MemoryDB 集群的默认端口为 `6379`。

1. 为 EC2 实例（Web 和应用程序服务器）创建 VPC 安全组。如果需要，此安全组可允许通过 VPC 的路由表从 Internet 访问 EC2 实例。例如，您可设置此安全组的规则以允许通过端口 22 对 EC2 实例进行 TCP 访问。

1. 在集群的安全组中创建自定义规则，允许从为 EC2 实例创建的安全组连接。这将允许安全组的任何成员均可访问集群。

**在 VPC 安全组中创建允许从另一安全组连接的规则**

1. 登录 AWS 管理控制台并通过以下网址打开 Amazon VPC 控制台：[https://console.aws.amazon.com/vpc](https://console.aws.amazon.com/vpc)。

1. 在左侧导航窗格中，选择**安全组**。

1. 选择或创建一个要用于集群的安全组。在**入站规则**下，选择**编辑入站规则**，然后选择**添加规则**。此安全组将允许访问其他安全组的成员。

1. 从 **Type** 中选择 **Custom TCP Rule**。

   1. 对于 **Port Range**，指定在创建集群时使用的端口。

      MemoryDB 集群的默认端口为 `6379`。

   1. 在 **Source** 框中，开始键入安全组的 ID。从列表中选择要用于 Amazon EC2 实例的安全组。

1. 完成后选择 **Save**。

## 当 MemoryDB 集群和 Amazon EC2 实例位于不同 Amazon VPC 时访问该集群
<a name="memorydb-vpc-accessing-different-vpc"></a>

当您的集群与您用来访问它的 EC2 实例位于不同 VPC 中时，可通过多种方式访问集群。如果集群和 EC2 实例位于不同的 VPC 中但位于相同区域中，则可使用 VPC 对等。如果集群和 EC2 实例位于不同的区域中，您可以在两个区域之间创建 VPN 连接。

**Topics**
+ [在同一区域的不同 Amazon VPC 中](#memorydb-vpc-accessing-different-vpc-same-region)
+ [在不同区域的不同 Amazon VPC 中](#memorydb-vpc-accessing-different-vpc-different-region)

 

### 当 MemoryDB 集群和 Amazon EC2 实例位于同一区域的不同 Amazon VPC 时访问该集群
<a name="memorydb-vpc-accessing-different-vpc-same-region"></a>

*集群由同一区域中不同 Amazon VPC 中的 Amazon EC2 实例访问 – VPC 对等连接*

VPC 对等连接是两个 VPC 之间的网络连接，通过此连接，您可以使用私有 IP 地址在这两个 VPC 之间路由流量。这两个 VPC 中的实例可以彼此通信，就像它们在同一网络中一样。您可以在您自己的 Amazon VPC 之间创建 VPC 对等连接，也可以在它们与同一区域内其他 AWS 账户中的 Amazon VPC 之间创建该连接。要了解有关 Amazon VPC 对等连接的更多信息，请参阅 [VPC 文档](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpc-peering.html)。

**通过对等连接访问不同 Amazon VPC 中的集群**

1. 确保两个 VPC 的 IP 范围不重叠，否则无法使其对等。

1. 使两个 VPC 对等。有关更多信息，请参阅[创建并接受 Amazon VPC 对等连接](https://docs.aws.amazon.com/AmazonVPC/latest/PeeringGuide/create-vpc-peering-connection.html)。

1. 更新路由表。有关更多信息，请参阅[为 VPC 对等连接更新路由表](https://docs.aws.amazon.com/AmazonVPC/latest/PeeringGuide/vpc-peering-routing.html)

1. 修改 MemoryDB 集群的安全组，以允许来自对等 VPC 中的应用程序安全组的入站连接。有关更多信息，请参阅[引用对等 VPC 安全组](https://docs.aws.amazon.com/AmazonVPC/latest/PeeringGuide/vpc-peering-security-groups.html)。

通过对等连接访问集群将产生额外的数据传输费用。

 

#### 使用 Transit Gateway
<a name="memorydb-vpc-accessing-using-transit-gateway"></a>

通过中转网关，您可以连接同一 AWS 区域中的 VPC 与 VPN 连接并在它们之间路由流量。中转网关可跨 AWS 账户发挥作用，您可以使用 AWS Resource Access Manager 与其他账户共享您的中转网关。在您与另一个 AWS 账户共享中转网关后，账户拥有者可以将其 VPC 挂载到您的中转网关。任一账户的用户都可以随时删除此挂载。

您可以在中转网关上启用多播，然后创建一个中转网关多播域，允许通过与域关联的 VPC 挂载，将多播流量从多播源发送到多播组成员。

您还可以在不同 AWS 区域的中转网关之间创建对等连接挂载。这使您能够跨不同区域在中转网关的挂载之间路由流量。

有关更多信息，请参阅[中转网关](https://docs.aws.amazon.com/vpc/latest/tgw/tgw-transit-gateways.html)。

### 当 MemoryDB 集群和 Amazon EC2 实例位于不同区域的不同 Amazon VPC 时访问该集群
<a name="memorydb-vpc-accessing-different-vpc-different-region"></a>

#### 使用 Transit VPC
<a name="memorydb-vpc-accessing-different-vpc-different-region-using-transit-vpc"></a>

创建一个可充当全球网络中转中心的中转 VPC 是使用 VPC 对等连接的另一种方法，同时也是连接多个地理位置分散的 VPC 和远程网络的另一种常见策略。传输 VPC 可简化网络管理，并最大程度地减少连接多个 VPC 和远程网络时所需的连接数。此设计可以节省时间和工作量并降低成本，因为它的实施几乎消除了在托管传输中心建立实体办事处或部署物理网络设备时所需的传统费用。

*跨不同区域中的不同 VPC 进行连接*

建立 Transit Amazon VPC 后，在一个区域中的“辐射型”VPC 中部署的应用程序可以连接到另一个区域中的“辐射型”VPC 中的 MemoryDB 集群。

**访问在不同 AWS 区域的不同 VPC 中的集群**

1. 部署传输 VPC 解决方案。有关更多信息，请参阅 [AWS Transit Gateway](https://aws.amazon.com/transit-gateway/)。

1. 更新应用和 VPC 中的路由表，以通过 VGW（虚拟专用网关）和 VPN 设备路由流量。对于使用边界网关协议（BGP）的动态路由，可自动传播您的路由。

1. 修改 MemoryDB 集群的安全组，以允许来自该应用程序实例 IP 范围的入站连接。请注意，这种情况下，无法引用该应用程序服务器安全组。

跨区域访问集群将造成网络连接延迟并产生其他跨区域数据传输费用。

## 从在客户的数据中心中运行的应用程序访问 MemoryDB 集群
<a name="memorydb-vpc-accessing-data-center"></a>

另一种可能的方案是混合架构，客户数据中心内的客户端或应用程序可能需要访问 VPC 中的 MemoryDB 集群。此方案也受支持，前提是客户的 VPC 和数据中心之间已通过 VPN 或 Direct Connect 建立连接。

**Topics**
+ [使用 VPN 连接](#memorydb-vpc-accessing-data-center-vpn)
+ [使用 Direct Connect](#memorydb-vpc-accessing-data-center-direct-connect)

 

### 使用 VPN 连接从在客户的数据中心中运行的应用程序访问 MemoryDB 集群
<a name="memorydb-vpc-accessing-data-center-vpn"></a>

*从数据中心通过 VPN 连接到 MemoryDB*

**通过 VPN 连接从本地应用程序中访问 VPC 中的集群**

1. 通过向 VPC 中添加硬件虚拟专用网关来建立 VPN 连接。有关更多信息，请参阅[在您的 VPC 中添加硬件虚拟专用网关](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_VPN.html)。

1. 更新部署 MemoryDB 集群时所在子网的 VPC 路由表，以允许来自本地应用程序服务器的流量。对于使用 BGP 的动态路由，可自动传播您的路由。

1. 修改 MemoryDB 集群的安全组，以允许来自本地应用程序服务器的入站连接。

通过 VPN 连接访问集群将造成网络连接延迟并产生其他数据传输费用。

 

### 使用 Direct Connect 从在客户的数据中心中运行的应用程序访问 MemoryDB 集群
<a name="memorydb-vpc-accessing-data-center-direct-connect"></a>

*从数据中心或通过 Direct Connect 连接到 MemoryDB*

**使用 Direct Connect 从在您的网络中运行的应用程序访问 MemoryDB 集群**

1. 建立 Direct Connect 连接。有关更多信息，请参阅 [AWS Direct Connect 入门](https://docs.aws.amazon.com/directconnect/latest/UserGuide/getting_started.html)。

1. 修改 MemoryDB 集群的安全组，以允许来自本地应用程序服务器的入站连接。

通过 DX 连接访问集群可能会造成网络连接延迟并产生其他数据传输费用。