

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

# 用于访问 Amazon VPC 中的 ElastiCache 缓存的访问模式
<a name="elasticache-vpc-accessing"></a>

Amazon ElastiCache 支持以下访问 Amazon VPC 中的缓存的场景：

**Contents**
+ [

## 当 ElastiCache 缓存和 Amazon EC2 实例位于同一 Amazon VPC 中时访问该缓存
](#elasticache-vpc-accessing-same-vpc)
+ [

## 当 ElastiCache 缓存和 Amazon EC2 实例位于不同的 Amazon VPC 中时访问该缓存
](#elasticache-vpc-accessing-different-vpc)
  + [在同一区域的不同 Amazon VPC 中](#elasticache-vpc-accessing-different-vpc-same-region)
    + [使用 Transit Gateway](#elasticache-vpc-accessing-using-transit-gateway)
  + [在不同区域的不同 Amazon VPC 中](#elasticache-vpc-accessing-different-vpc-different-region)
    + [使用 Transit VPC](#elasticache-vpc-accessing-different-vpc-different-region-using-transit-vpc)
+ [

## 从运行于客户数据中心中的应用程序访问 ElastiCache 缓存
](#elasticache-vpc-accessing-data-center)
  + [使用 VPN 连接](#elasticache-vpc-accessing-data-center-vpn)
  + [使用 Direct Connect](#elasticache-vpc-accessing-data-center-direct-connect)

## 当 ElastiCache 缓存和 Amazon EC2 实例位于同一 Amazon VPC 中时访问该缓存
<a name="elasticache-vpc-accessing-same-vpc"></a>

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

下图阐明了此方案。

![\[\]](http://docs.aws.amazon.com/zh_cn/AmazonElastiCache/latest/dg/images/ElastiCache-inVPC-AccessedByEC2-SameVPC.png)


通过执行以下操作，可以最轻松地管理同一 VPC 中的 EC2 实例与缓存之间的访问：

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

   Memcached 缓存的默认端口为 `11211`。

   Valkey 和 Redis OSS 缓存的默认端口为 `6379`。

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

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

**注意**  
如果您计划使用 [Local Zones](Local_zones.md)，请确保已将其启用。当您在该本地区域中创建子网组时，您的 VPC 也会扩展到该本地区域，并且您的 VPC 会将该子网视为任何其他可用区中的任何子网。所有相关网关和路由表都将自动调整。

**在 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. 对于**端口范围**，请指定在创建缓存时使用的端口。

      Memcached 缓存的默认端口为 `11211`。

      Valkey 和 Redis OSS 缓存和复制组的默认端口为 `6379`。

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

1. 完成后选择 **Save**。  
![\[\]](http://docs.aws.amazon.com/zh_cn/AmazonElastiCache/latest/dg/images/VPC-Rules.png)

## 当 ElastiCache 缓存和 Amazon EC2 实例位于不同的 Amazon VPC 中时访问该缓存
<a name="elasticache-vpc-accessing-different-vpc"></a>

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

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

 

### 当 ElastiCache 缓存和 Amazon EC2 实例位于同一区域的不同 Amazon VPC 中时访问缓存
<a name="elasticache-vpc-accessing-different-vpc-same-region"></a>

下图演示了当 Amazon EC2 实例与缓存位于同一区域的不同 Amazon VPC 中时，如何使用 Amazon VPC 对等连接访问缓存。

![\[\]](http://docs.aws.amazon.com/zh_cn/AmazonElastiCache/latest/dg/images/ElastiCache-inVPC-AccessedByEC2-DifferentVPC.png)


*缓存由同一区域的不同 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)。

**注意**  
对等 VPC 的 DNS 名称解析可能会失败，具体取决于应用于 ElastiCache VPC 的配置。要解决此问题，必须为 DNS 主机名和 DNS 解析启用两种 VPC。有关更多信息，请参阅[实现对 VPC 对等连接的 DNS 解析](https://docs.aws.amazon.com/vpc/latest/peering/modify-peering-connections.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)

   下面是上图中示例的路由表的形式。请注意，**pcx-a894f1c1** 是对等连接。  
![\[\]](http://docs.aws.amazon.com/zh_cn/AmazonElastiCache/latest/dg/images/VPC-RoutingTable.png)

   *VPC 路由表*

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

通过对等连接访问缓存会产生额外的数据传输费用。

#### 使用 Transit Gateway
<a name="elasticache-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)。

### 当 ElastiCache 缓存和 Amazon EC2 实例位于不同区域的不同 Amazon VPC 中时访问缓存
<a name="elasticache-vpc-accessing-different-vpc-different-region"></a>

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

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

![\[\]](http://docs.aws.amazon.com/zh_cn/AmazonElastiCache/latest/dg/images/ElastiCache-inVPC-AccessedByEC2-DifferentVPC-DifferentRegion-VPN.png)


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

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

**访问在不同 AWS 区域的不同 VPC 中的缓存**

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

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

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

跨区域访问缓存会引入网络连接延迟，而且会产生额外的跨区域数据传输费用。

## 从运行于客户数据中心中的应用程序访问 ElastiCache 缓存
<a name="elasticache-vpc-accessing-data-center"></a>

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

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

 

### 使用 VPN 连接从运行于客户数据中心的应用程序访问 ElastiCache 缓存
<a name="elasticache-vpc-accessing-data-center-vpn"></a>

下图说明如何使用 VPN 连接，从运行于企业网络中的应用程序访问 ElastiCache 缓存。

![\[\]](http://docs.aws.amazon.com/zh_cn/AmazonElastiCache/latest/dg/images/ElastiCache-inVPC-AccessedByAppInCustDataCenter-VPN.png)


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

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

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

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

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

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

 

### 使用 Direct Connect 从运行于客户数据中心中的应用程序访问 ElastiCache 缓存
<a name="elasticache-vpc-accessing-data-center-direct-connect"></a>

下图说明如何使用 Direct Connect，从运行于企业网络中的应用程序访问 ElastiCache 缓存。

![\[\]](http://docs.aws.amazon.com/zh_cn/AmazonElastiCache/latest/dg/images/ElastiCache-inVPC-AccessedByAppInCustDataCenter-DirectConnect.png)


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

**使用 Direct Connect 从在您网络中运行的应用程序访问 ElastiCache 缓存**

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

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

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