

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

# MemoryDB 和 Amazon VPC
<a name="vpcs"></a>

Amazon Virtual Private Cloud（Amazon VPC）服务定义一个与传统数据中心非常相似的虚拟网络。在通过 Amazon VPC 配置您的虚拟私有云（VPC）时，您可以选择它的 IP 地址范围、创建子网并配置路由表、网关和安全设置。您还可以将集群添加到虚拟网络，并使用 Amazon VPC 安全组控制对集群的访问。

本部分说明如何在 VPC 中手动配置 MemoryDB 集群。这些信息适用于希望更深入地了解 MemoryDB 和 Amazon VPC 如何协同工作的用户。

**Topics**
+ [了解 MemoryDB 和 VPC](vpcs.mdb.md)
+ [用于访问 Amazon VPC 中 MemoryDB 集群的访问模式](memorydb-vpc-accessing.md)
+ [创建虚拟私有云（VPC）](VPCs.creatingVPC.md)

# 了解 MemoryDB 和 VPC
<a name="vpcs.mdb"></a>

MemoryDB 已与 Amazon VPC 完全集成。对于 MemoryDB 用户，这具有以下意义：
+ MemoryDB 始终在 VPC 中启动您的集群。
+ 如果您不熟悉 AWS，则系统将为您自动创建一个默认 VPC。
+ 如果您有默认 VPC 并且在启动集群时未指定子网，该集群会启动到您的默认 Amazon VPC 中。

有关更多信息，请参阅[检测支持的平台以及是否具有默认 VPC](https://docs.aws.amazon.com/vpc/latest/userguide/default-vpc.html#detecting-platform)。

使用 Amazon VPC，您可以在非常类似于传统数据中心的 AWS 云中创建虚拟网络。您可以配置您的 VPC，包括选择其 IP 地址范围、创建子网以及配置路由表、网关和安全设置。

MemoryDB 可以管理软件升级、修补、故障检测和恢复。

## VPC 中的 MemoryDB 概述
<a name="memorydbandvpc.overview"></a>
+ VPC 是 AWS 云的一个独立部分，分配有自己的 IP 地址数据块。
+ 互联网网关将您的 VPC 直接连接到互联网，并提供对其他 AWS 资源 [例如在 VPC 外部运行的 Amazon Simple Storage Service（Amazon S3）] 的访问。
+ Amazon VPC 子网是 VPC 的 IP 地址范围的一部分，在其中您可以根据您的安全和操作需求隔离 AWS 资源。
+ Amazon VPC 安全组可以控制 MemoryDB 集群和 Amazon EC2 实例的入站和出站流量。
+ 您可以在子网中启动 MemoryDB 集群。节点具有子网地址范围内的私有 IP 地址。
+ 您也可以在子网中启动 Amazon EC2 实例。每个 Amazon EC2 实例都具有一个在子网地址范围内的私有 IP 地址。Amazon EC2 实例可以连接到同一子网中的任何节点。
+ 要可以从互联网访问您的 VPC 中的 Amazon EC2 实例，您需要为此实例分配静态公有地址（称为弹性 IP 地址）。

## 先决条件
<a name="memorydbandvpc.prereqs"></a>

要在 VPC 中创建 MemoryDB 集群，您的 VPC 必须满足下列要求：
+ 您的 VPC 必须允许非专用 Amazon EC2 实例。不能在为专用实例租赁配置的 VPC 中使用 MemoryDB。
+ 必须为您的 VPC 定义子网组。MemoryDB 使用该子网组选择与节点关联的子网和子网中的 IP 地址。
+ 必须为您的 VPC 定义一个安全组，或者您可以使用提供的默认缓存安全组。
+ 每个子网的 CIDR 块必须足够大，以便为 MemoryDB 提供可在维护活动期间使用的备用 IP 地址。

## 路由和安全性
<a name="memorydbandvpc.routingandsecurity"></a>

您可以在 VPC 中配置路由，以控制流量的流向（例如，流向互联网网关或虚拟私有网关）。使用互联网网关，您的 VPC 可以直接访问不在您的 VPC 中运行的其他 AWS 资源。如果您选择只使用一个虚拟专用网关连接至贵组织的本地网络，那么您可以通过 VPN 设置您的互联网入口流量路由，并使用本地安全策略和防火墙来控制出口。在此种情况下，当您通过互联网访问 AWS 资源时，便会产生额外的带宽费用。

您可以使用 Amazon VPC 安全组来帮助保护 Amazon VPC 中的 MemoryDB 集群和 Amazon EC2 实例。安全组在实例级上（而非子网级上）与防火墙的功能类似。

**注意**  
我们强烈建议您使用 DNS 名称连接到您的节点，因为基础 IP 地址可能会随时间而改变。

## Amazon VPC 文档
<a name="memorydbandvpc.vpcdocs"></a>

Amazon VPC 有一套专门文档，介绍如何创建和使用您的 Amazon VPC。下表显示了在 Amazon VPC 指南何处查找信息。


| 描述 | 文档 | 
| --- | --- | 
| 如何开始使用 Amazon VPC | [Amazon VPC 入门](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-getting-started.html) | 
| 如何通过 AWS 管理控制台 使用 Amazon VPC | [Amazon VPC User Guide](https://docs.aws.amazon.com/vpc/latest/userguide/) | 
| 所有 Amazon VPC 命令的完整描述 | [Amazon EC2 命令行参考](https://docs.aws.amazon.com/AWSEC2/latest/CommandLineReference/)（Amazon VPC 命令可在 Amazon EC2 参考中找到） | 
| Amazon VPC API 操作、数据类型和错误的完整描述 | [Amazon EC2 API 参考](https://docs.aws.amazon.com/AWSEC2/latest/APIReference/)（Amazon VPC API 操作可在 Amazon EC2 参考中找到） | 
| 关于需要在您终止可选的 IPsec VPN 连接时对网关进行配置的网络管理员之信息 | [AWS Site-to-Site VPN 是什么？](https://docs.aws.amazon.com/vpn/latest/s2svpn/VPC_VPN.html) | 

有关 Amazon Virtual Private Cloud 的更多详细信息，请参阅 [Amazon Virtual Private Cloud](https://aws.amazon.com/vpc/)。

# 用于访问 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 连接访问集群可能会造成网络连接延迟并产生其他数据传输费用。

# 创建虚拟私有云（VPC）
<a name="VPCs.creatingVPC"></a>

在本示例中，您基于 Amazon VPC 服务创建一个 虚拟私有云（VPC），其中每个可用区域都有一个私有子网。

## 创建 VPC（控制台）
<a name="VPCs.creatingVPCclusters.viewdetails"></a>

**在 Amazon Virtual Private Cloud 内部创建 MemoryDB 集群**

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

1. 在 VPC 控制面板上，选择 **Create VPC**（创建 VPC）。

1. 在要创建的 **Resources**（资源）下，选择 **VPC and more**（VPC 等）。

1. 在**可用区（AZ）数量**下，选择要在其中启动子网的可用区数量。

1. 在 **Number of public subnets**（公有子网数量）下，选择要添加到 VPC 的公有子网数量。

1. 在 **Number of private subnets**（私有子网数量）下，选择要添加到 VPC 的私有子网数量。
**提示**  
记录您的子网标识符，以及哪个是公有的，哪个是私有的。稍后，当您启动集群以及向 Amazon VPC 添加 Amazon EC2 实例时，您将需要此类信息。

1. 创建 Amazon VPC 安全组。您将对集群和 Amazon EC2 实例使用此安全组。

   1. 在 AWS 管理控制台 的左侧导航窗格中，选择**安全组**。

   1. 选择**创建安全组**。

   1. 在相应的框内，为您的安全组输入名称和描述。对于 **VPC**，选择 VPC 标识符。

   1. 根据需要完成所有设置后，选择 **Yes, Create**。

1. 为您的安全组定义一个网络入口规则。此规则将允许您使用 Secure Shell（SSH）连接至 Amazon EC2 实例。

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

   1. 在列表中找到您的安全组，然后选择它。

   1. 在 **Security Group** 下，选择 **Inbound** 选项卡。在 **Create a new rule** 框中，选择 **SSH**，然后选择 **Add Rule**。

      为新入站规则设置以下值以允许 HTTP 访问：
      + 类型：HTTP
      + 来源：0.0.0.0/0

   1. 为新入站规则设置以下值以允许 HTTP 访问：
      + 类型：HTTP
      + 来源：0.0.0.0/0

      选择 **Apply Rule Changes**。

现在，您已准备就绪，可在 VPC 中创建[子网组](https://docs.aws.amazon.com/memorydb/latest/devguide/subnetgroups.html)并[创建集群](https://docs.aws.amazon.com/memorydb/latest/devguide/getting-started.createcluster.html)。