

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

# 使用全球数据存储跨AWS区域复制
<a name="Redis-Global-Datastore"></a>

**注意**  
全局数据存储目前仅适用于基于节点的集群。

通过使用全球数据存储功能，您可以跨区域进行完全托管、快速、可靠和安全的 Valkey 或 Redis OSS 集群复制。AWS使用此功能，您可以创建跨区域只读副本集群，以实现跨AWS区域的低延迟读取和灾难恢复。

在以下部分中，您可以找到有关如何使用全局数据存储的说明。

**Topics**
+ [

## 概述
](#Redis-Global-Data-Stores-Overview)
+ [

# 先决条件和限制
](Redis-Global-Datastores-Getting-Started.md)
+ [

# 使用全局数据存储（控制台）
](Redis-Global-Datastores-Console.md)
+ [

# 使用全局数据存储 (CLI)
](Redis-Global-Datastores-CLI.md)

## 概述
<a name="Redis-Global-Data-Stores-Overview"></a>

每个*全局数据存储* 是一个或多个相互复制的集群的集合。

全局数据存储包含以下项：
+ **主（主动）集群** – 主集群接受复制到全局数据存储中的所有集群的写入。主集群也接受读取请求。
+ **辅助（被动）集群** – 辅助集群仅接受读取请求并从主集群复制数据更新。辅助群集必须与主群集位于不同的AWS区域。

在中 ElastiCache 为 Valkey 或 Redis OSS 创建全局数据存储时，它会自动将您的数据从主集群复制到辅助集群。您可以选择应复制 Valkey 或 Redis OSS 数据的AWS区域，然后在该区域中创建辅助集群。AWS ElastiCache 然后设置并管理两个集群之间数据的自动、异步复制。

为 Valkey 或 Redis OSS 使用全局数据存储具有以下优势：
+ **地理本地性能**-通过在其他AWS区域设置远程副本集群并在它们之间同步数据，可以减少该AWS区域的数据访问延迟。全球数据存储可以通过提供跨区域的低延迟地理本地读取来帮助提高应用程序的响应能力。AWS
+ **灾难恢复** – 如果全局数据存储中的主集群出现性能降级，则可以将辅助集群提升为新的主集群。您可以通过连接到任何包含辅助群集的AWS区域来实现此目的。

下图显示了全局数据存储的工作方式。

![\[全局数据存储\]](http://docs.aws.amazon.com/zh_cn/AmazonElastiCache/latest/dg/images/Global-DataStore.png)


# 先决条件和限制
<a name="Redis-Global-Datastores-Getting-Started"></a>

开始使用全局数据存储之前，请注意以下事项：
+ 以下AWS 区域支持全局数据存储：
  + **非洲** - 开普敦
  + **亚太地区** - 香港、海得拉巴、雅加达、马来西亚、墨尔本、孟买、大阪、首尔、新加坡、悉尼、泰国和东京 
  + **加拿大** - 加拿大（中部）和加拿大西部（卡尔加里）
  + **中国**- 北京和宁夏
  + **欧洲** - 法兰克福、伦敦、爱尔兰、米兰、巴黎、西班牙、斯德哥尔摩和苏黎世
  + **AWSGovCloud** - 美国西部和美国东部
  + **以色列** - 特拉维夫
  + **中东** - 巴林和阿联酋
  + **美国** - 东部（弗吉尼亚州北部和俄亥俄州）和美国西部（北加利福尼亚和俄勒冈州）
  + **南美洲** - 墨西哥（中部）和圣保罗
+  全局数据存储中的所有集群（主集群和辅助集群）应具有相同数量的主节点、节点类型、引擎版本和分区数（如果启用了集群模式）。全局数据存储中的每个集群可以有不同数量的读取副本，以适应该集群本地的读取流量。

  如果您计划使用现有的单节点集群，则必须启用复制。
+ 大型及以上大小的实例支持全局数据存储。
+ 您可以设置从一个 AWS 区域中的主集群复制到最多两个其他 AWS 区域中的辅助集群。
**注意**  
中国（北京）区域和中国（宁夏）区域除外，只能在这两个区域之间进行复制。
+ 您只能在 VPC 集群中使用全局数据存储。有关更多信息，请参阅 [用于访问 Amazon VPC 中的 ElastiCache 缓存的访问模式](elasticache-vpc-accessing.md)。使用 EC2-Classic 时，不支持全局数据存储。有关更多信息，请参阅《Amazon EC2 用户指南》**中的 [EC2-Classic](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/ec2-classic-platform.html)。
**注意**  
目前，无法在 [将 Local Zones 与 ElastiCache 结合使用](Local_zones.md) 中使用全局数据存储。
+ ElastiCache 不支持从一个 AWS 区域到另一个区域的自动故障转移。如果需要，您可以手动提升辅助集群。有关示例，请参阅[将辅助集群提升为主集群](Redis-Global-Datastores-Console.md#Redis-Global-Datastores-Console-Promote-Secondary)。
+ 要从现有数据引导，请使用现有集群作为主集群来创建全局数据存储。我们不支持将现有集群添加为辅助集群。将集群添加为辅助集群的过程会擦除数据，这可能会导致数据丢失。
+ 当您修改属于全局数据存储的某个集群的本地参数组时，参数更新应用于所有集群。
+ 您可以垂直（向上扩展和向下扩展）和水平扩展（向内扩展和向外扩展）区域集群。您可以通过修改全局数据存储来扩展集群。然后，全局数据存储中的所有区域集群都会在不中断的情况下扩展。有关更多信息，请参阅 [缩放 ElastiCache](Scaling.md)。
+ 全局数据存储支持[静态加密](at-rest-encryption.md)、[传输中加密](in-transit-encryption.md)和 [AUTH](auth.md)。
+ 全局数据存储不支持 Internet 协议版本 6（IPv6）。
+  全局数据存储支持 AWS KMS 密钥。有关更多信息，请参阅 *AWS Key Management Service 开发人员指南*中的 [AWS 密钥管理服务概念](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys)。

**注意**  
全局数据存储支持[发布/订阅消息收发](https://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/elasticache-use-cases.html#elasticache-for-redis-use-cases-messaging)，且具有以下规定：  
如已禁用集群模式，则完全支持发布/订阅。在主 AWS 区域的主集群上发布的事件会传播到辅助 AWS 区域。
如已启用集群模式，则以下情况适用：  
对于不在键空间中的已发布事件，只有同一 AWS 区域中的订阅者才会收到事件。
对于已发布的键空间事件，所有 AWS 区域中的订阅者都会接收事件。

# 使用全局数据存储（控制台）
<a name="Redis-Global-Datastores-Console"></a>

要使用控制台创建全局数据存储，请遵循以下两步过程：

1. 通过使用现有集群或创建新集群来创建主集群。引擎必须是 Valkey 7.2 或更高版本，或者是 Redis OSS 5.0.6 或更高版本。

1. 在不同 AWS 区域中添加最多两个辅助集群（也必须使用 Valkey 7.2 或更高版本或者是 Redis 5.0.6 或更高版本）。

以下过程指导您如何为 Valkey 或 Redis OSS 创建全局数据存储以及使用 ElastiCache 控制台执行其他操作。

**Topics**
+ [

## 使用现有集群创建全局数据存储
](#Redis-Global-Datastores-Console-Create-Primary)
+ [

## 使用新主集群创建新的全局数据存储
](#Redis-Global-Datastores-Create-From-Scratch)
+ [

## 查看全局数据存储详细信息
](#Redis-Global-Datastores-Console-Details)
+ [

## 将区域添加到全局数据存储
](#Redis-Global-Datastores-Console-Create-Secondary)
+ [

## 修改全局数据存储
](#Redis-Global-Datastores-Console-Modify-Regional-Clusters)
+ [

## 将辅助集群提升为主集群
](#Redis-Global-Datastores-Console-Promote-Secondary)
+ [

## 从全局数据存储中删除区域
](#Redis-Global-Datastore-Console-Remove-Region)
+ [

## 删除全局数据存储
](#Redis-Global-Datastores-Console-Delete-GlobalDatastore)

## 使用现有集群创建全局数据存储
<a name="Redis-Global-Datastores-Console-Create-Primary"></a>

在这种情况下，使用现有集群作为新全局数据存储的主集群。然后，您可以在单独的 AWS 区域中创建辅助只读集群。此辅助集群接收来自主集群的自动和异步更新。

**重要**  
现有集群必须使用 Valkey 7.2 或更高版本，或者使用 Redis OSS 5.0.6 或更高版本。

**使用现有集群创建全局数据存储**

1. 登录 AWS 管理控制台 并打开 ElastiCache 控制台（[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)）。

1. 在导航窗格中，选择**全局数据存储**，然后选择**创建全局数据存储**。

1. 在**主集群设置**页面上，执行以下操作：
   + 在**全局数据存储信息**字段中，输入新的全局数据存储的名称。
   + （可选）输入 **Description（描述）**值。

1. 在**区域集群**下，选择**使用现有区域集群**。

1. 在**现有集群**下，选择要使用的现有集群。

1. 使以下选项保持不变。它们会预先填入以匹配主集群配置，您无法对其进行更改。
   + 引擎版本
   + 节点类型
   + 参数组
**注意**  
ElastiCache 根据提供的参数组的值自动生成新参数组，并将新参数组应用于集群。使用这个新参数组修改全局数据存储上的参数。每个自动生成的参数组与一个（且只有一个）集群关联，因此只有一个全局数据存储。
   + 分片数量
   + 静态加密 – 对磁盘上存储的数据启用加密。有关更多信息，请参阅[静态加密](at-rest-encryption.md)。
**注意**  
您可以通过选择 **Customer Managed AWS KMS key（客户托管式 Amazon KMS 密钥）**并选择该密钥来提供不同的加密密钥。有关更多信息，请参阅[使用客户托管式 AWS KMS 密钥](at-rest-encryption.md#using-customer-managed-keys-for-elasticache-security)。
   + 传输中加密 – 对传输中的数据启用加密。有关更多信息，请参阅[传输中加密](in-transit-encryption.md)。对于 Valkey 7.2 及更高版本或 Redis OSS 6.0 及更高版本，如果您启用了传输中加密，则系统会提示您指定以下**访问控制**选项中的一个：
     + **No Access Control（无访问控制）**– 此选项为默认设置。表示无任何限制。
     + **User Group Access Control List（用户组访问控制列表）**– 选择具有对可用操作定义有用户集和权限的用户组。有关更多信息，请参阅 [使用控制台和 CLI 管理用户组](Clusters.RBAC.md#User-Groups)。
     + **Redis AUTH 默认用户** – Valkey 或 Redis OSS 服务器的身份验证机制。有关更多信息，请参阅 [AUTH](auth.md)。

1. （可选）根据需要更新剩余的辅助集群设置。这些设置会预先填入与主集群相同的值，但您可以对其进行更新，以满足该集群的特定要求。
   + 端口
   + 副本数量
   + 子网组
   + 首选可用区
   + 安全组
   + 客户托管式（AWS KMS 密钥）
   + AUTH 令牌
   + 启用自动备份
   + 备份保留期
   + 备份时段
   + 维护时段
   + SNS 主题通知

1. 选择**创建**。这样做会将全局数据存储的状态设置为 **Creating（正在创建）**。在主集群与全局数据存储关联且辅助集群处于 **Associating（正在关联）**状态后，状态将转换为 **Modifying（正在修改）**。

   主集群和辅助集群与全局数据存储关联后，状态会更改为 **Available（可用）**。此时，您有一个接受读取和写入的主集群和接受从主集群复制的读取数据的辅助集群。

   页面更新为指示集群是否属于全局数据存储，包括：
   + **Global Datastore（全局数据存储）**– 集群所属的全局数据存储的名称。
   + **Global Datastore Role（全局数据存储角色）**– 主集群或辅助集群的角色。

在不同的 AWS 区域中最多可以添加一个额外的辅助集群。有关更多信息，请参阅 [将区域添加到全局数据存储](#Redis-Global-Datastores-Console-Create-Secondary)。

## 使用新主集群创建新的全局数据存储
<a name="Redis-Global-Datastores-Create-From-Scratch"></a>

如果选择使用新集群创建全局数据存储，请按照以下过程操作。

1. 登录 AWS 管理控制台 并打开 ElastiCache 控制台（[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)）。

1. 在导航窗格中，选择**全局数据存储**，然后选择**创建全局数据存储**。

1. 在 **Primary cluster settings**（主集群设置）中，执行以下操作：

   1. 对于 **Cluster mode**（集群模式），选择 **Enabled**（已启用）或 **Disabled**（已禁用）。

   1. 针对 **Global Datastore info**（全局数据存储信息），为 **Name**（名称）输入一个值。ElastiCache 使用后缀为全局数据存储生成唯一名称。您可以使用在此处指定的后缀搜索全局数据存储。

   1. （可选）为 **Global Datastore Description（全局数据存储描述）**输入一个值。

1. 在 **Regional cluster**（区域集群）中：

   1. 对于 **Region**（区域），选择一个可用的 AWS 区域。

   1. 选择 **Create new regional cluster**（创建新的区域集群）或 **Use existing regional cluster**（使用现有的区域集群）

   1. 如果选择 **Create new regional cluster**（创建新的区域集群），在 **Cluster info**（集群信息）下，输入集群的名称和可选描述。

   1. 在 **Location**（位置）下，我们建议您接受 **Multi-AZ**（多可用区）和 **Auto-failover**（自动失效转移）的默认设置。

1. 在 **Cluster settings**（集群设置）下

   1. 对于 **Engine version**（引擎版本），选择 5.0.6 或更高版本。

   1. 对于 **Port**（端口），使用默认端口 6379。如果您出于某个原因需要使用其他端口，请输入相应的端口号。

   1. 对于**参数组**，选择一个参数组或创建一个新参数组。参数组控制集群的运行时参数。有关参数组的更多信息，请参阅[Valkey 和 Redis OSS 参数](ParameterGroups.Engine.md#ParameterGroups.Redis) 和[创建 ElastiCache 参数组](ParameterGroups.Creating.md)。
**注意**  
当您选择要设置引擎配置值的参数组时，该参数组将应用于全局数据存储中的所有集群。在 **Parameter Groups（参数组）**页面上，是/否 **Global（全局）**属性指示参数组是否属于全局数据存储。

   1. 对于 **Node type（节点类型）**，请选择向下箭头（![\[Downward-pointing triangle icon, typically used to indicate a dropdown menu.\]](http://docs.aws.amazon.com/zh_cn/AmazonElastiCache/latest/dg/images/ElastiCache-DnArrow.png)）。在 **Change node type（更改节点类型）**对话框中，为所需节点类型选择 **Instance family（实例系列）**值。接着选择要用于此集群的节点类型，然后选择**保存**。

      有关更多信息，请参阅 [选择节点大小](CacheNodes.SelectSize.md)。

      如果您选择 r6gd 节点类型，则系统会自动启用数据分层。有关更多信息，请参阅 [ElastiCache 中的数据分层](data-tiering.md)。

   1. 如果您要创建 Valkey 或 Redis OSS（已禁用集群模式）集群：

      对于 **Number of replicas**（副本数量），为此集群选择所需的副本数。

   1. 如果您要创建 Valkey 或 Redis OSS（已启用集群模式）集群：

      1. 对于**分片数**，选择要用于此 Valkey 或 Redis OSS（已启用集群模式）集群的分片（分区/节点组）数。

         对于某些版本的 Valkey 或 Redis OSS（已启用集群模式），您可以动态更改集群中的分片数量：
         + **Redis OSS 3.2.10 及更高版本** – 如果您的集群运行 Redis OSS 3.2.10 或更高版本，则可以动态更改集群中的分片数量。有关更多信息，请参阅 [扩缩 Valkey 或 Redis OSS（已启用集群模式）集群](scaling-redis-cluster-mode-enabled.md)。
         + **其他 Redis OSS 版本** – 如果您的集群正在运行 3.2.10 版之前的 Redis OSS 版本，则还有另一种方法。在这种情况下，要更改集群中的分片数量，请使用新分片数量创建一个新集群。有关更多信息，请参阅 [从备份还原到新缓存](backups-restoring.md)。

      1. 对于**每个分片的副本数量**，请选择每个分片中需要的只读副本节点数。

         Valkey 或 Redis OSS（已启用集群模式）存在以下限制。
         + 如果启用了多可用区，请确保每个分片至少有一个副本。
         + 使用控制台创建集群时，每个分片的副本数相同。
         + 每个分片的只读副本数固定，无法更改。如果您需要增加或减少各分片（API/CLI：节点组）的副本数，您必须使用新的副本数量创建一个新集群。有关更多信息，请参阅 [教程：使用外部创建的备份为新的基于节点的集群制作种子](backups-seeding-redis.md)。

1. 对于 **Subnet group settings**（子网组设置），选择要应用到该集群的子网。ElastiCache 提供了一个默认 IPv4 子网组，或者您可以选择创建一个新的 IPv4 子网组。对于 IPv6，您需要创建一个带有 IPv6 CIDR 块的子网组。如果您选择**双堆栈**，则必须选择发现 IP 类型，即 IPv6 或 IPv4。

   有关更多信息，请参阅[在 VPC 中创建子网](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-vpcs.html#AddaSubnet)。

1. 对于 **Availability zone placements**（可用区位置），您有两种选择：
   + **No preference（无首选项）**– 由 ElastiCache 选择可用区。
   + **Specify availability zones（指定可用区）**– 您为各集群指定可用区。

     如果您选择指定可用区，则需从列表中为各分片中的每个集群选择可用区。

   有关更多信息，请参阅 [为 ElastiCache 选择区域和可用区](RegionsAndAZs.md)。  
![\[图像：指定键空间和可用区\]](http://docs.aws.amazon.com/zh_cn/AmazonElastiCache/latest/dg/images/ElastiCache-ClusterOn-Slots-AZs.png)

   *指定键空间和可用区*

1. 选择 **Next**（下一步）

1. 在**高级 Valkey 和 Redis OSS 设置**下

   1. 对于 **Security**（安全）：

     1. 要加密您的数据，您有以下选项：
        + **Encryption at rest（静态加密）**– 对磁盘上存储的数据启用加密。有关更多信息，请参阅[静态加密](at-rest-encryption.md)。
**注意**  
您可以通过选择 **Customer Managed AWS KMS key（客户自主管理型 Amazon KMS key）**并选择该密钥来提供不同的加密密钥。有关更多信息，请参阅[使用 AWS KMS 客户自主管理型密钥](at-rest-encryption.md#using-customer-managed-keys-for-elasticache-security)。
        + **Encryption in-transit（传输中加密）**– 对传输中数据启用加密。有关更多信息，请参阅[传输中加密](in-transit-encryption.md)。对于 Valkey 7.2 及更高版本或 Redis OSS 6.0 及更高版本，如果您启用了传输中加密，则系统会提示您指定以下**访问控制**选项中的一个：
          + **No Access Control（无访问控制）**– 此选项为默认设置。这表示对用户访问集群的权限没有任何限制。
          + **User Group Access Control List（用户组访问控制列表）**– 选择具有集群访问权限的已定义用户组。有关更多信息，请参阅 [使用控制台和 CLI 管理用户组](Clusters.RBAC.md#User-Groups)。
          + **Redis AUTH 默认用户** – Valkey 或 Redis OSS 服务器的身份验证机制。有关更多信息，请参阅 [AUTH](auth.md)。
        + **AUTH** – Valkey 或 Redis OSS 服务器的身份验证机制。有关更多信息，请参阅 [AUTH](auth.md)。
**注意**  
对于 Redis OSS 3.2.6 及更高版本（版本 3.2.10 除外），只能选择 AUTH。

     1. 对于**安全组**，选择要用于该集群的安全组。*安全组* 充当防火墙来控制对集群的网络访问。您可以为 VPC 使用默认安全组或创建新安全组。

        有关安全组的更多信息，请参阅 *Amazon VPC 用户指南*中的[您的 VPC 的安全组](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html)。

1. 如果需要定期计划自动备份，请选择**启用自动备份**，然后输入每个自动备份在被自动删除前保留的天数。如果您不希望定期计划自动备份，请清除 **Enable automatic backups** 复选框。不论是哪种情况，您始终可以选择创建手动备份。

   有关备份和还原的更多信息，请参阅[快照和还原](backups.md)。

1. （可选）指定维护时段。*maintenance window（维护时段）*是每周 ElastiCache 为您的集群计划系统维护的时间，通常以小时为时间长度。您可以允许 ElastiCache 选择维护时段的日期和时间 [*No preference*（无首选项）]，或者自行选择日期、时间和持续时间 [*Specify maintenance window*（指定维护时段）]。如果您从列表中选择了*指定维护时段*，请为您的维护时段选择*开始日期*、*开始时间*和*持续时间*（以小时为单位）。所有时间均为 UCT 时间。

   有关更多信息，请参阅 [管理 ElastiCache 集群维护](maintenance-window.md)。

1. （可选）对于 **Logs（日志）**：
   + 在 **Log format（日志格式）**下，选择 **Text（文本）**或 **JSON**。
   + 在 **Destination Type**（目标类型）下，选择 **CloudWatch Logs** 或 **Kinesis Firehose**。
   + 在**日志目标**下，选择**新建**，然后输入您的 CloudWatch Logs 日志组名称或 Firehose 流名称，或选择**选择现有**，然后选择您的 CloudWatch Logs 日志组名称或您的 Firehose 流名称，

1. 对于 **Tags**（标签），为了帮助您管理集群和其他 ElastiCache 资源，您可以标签的形式为每个资源分配您自己的元数据。有关更多信息，请参阅 [为资源添加 ElastiCache 标签](Tagging-Resources.md)。

1. 查看您的所有输入和选择，然后进行任意所需的更正。准备就绪后，选择 **Next**（下一步）。

1. 在前面步骤中配置集群后，您现在可以配置辅助集群详细信息。

1. 在 **Regional cluster**（区域集群）下，选择集群所在的 AWS 区域。

1. 在 **Cluster info**（集群信息）下，输入集群的名称和可选描述。

1. 以下选项已预先填入以匹配主集群配置，且无法更改：
   + 位置
   + 引擎版本
   + 实例类型
   + 节点类型
   + 分片数量
   + 参数组
**注意**  
ElastiCache 根据提供的参数组的值自动生成新参数组，并将新参数组应用于集群。使用这个新参数组修改全局数据存储上的参数。每个自动生成的参数组与一个（且只有一个）集群关联，因此只有一个全局数据存储。
   + 静态加密 – 对磁盘上存储的数据启用加密。有关更多信息，请参阅[静态加密](at-rest-encryption.md)。
**注意**  
您可以通过选择 **Customer Managed AWS KMS key（客户托管式 Amazon KMS 密钥）**并选择该密钥来提供不同的加密密钥。有关更多信息，请参阅[使用客户托管式 AWS KMS 密钥](at-rest-encryption.md#using-customer-managed-keys-for-elasticache-security)。
   + 传输中加密 – 对传输中的数据启用加密。有关更多信息，请参阅[传输中加密](in-transit-encryption.md)。对于 Valkey 7.2 及更高版本或 Redis OSS 6.4 及更高版本，如果您启用了传输中加密，则系统会提示您指定以下**访问控制**选项中的一个：
     + **No Access Control（无访问控制）**– 此选项为默认设置。这表示对用户访问集群的权限没有任何限制。
     + **User Group Access Control List（用户组访问控制列表）**– 选择具有集群访问权限的已定义用户组。有关更多信息，请参阅 [使用控制台和 CLI 管理用户组](Clusters.RBAC.md#User-Groups)。
     + **Redis AUTH 默认用户** – Valkey 或 Redis OSS 服务器的身份验证机制。有关更多信息，请参阅 [AUTH](auth.md)。
**注意**  
对于介于 4.0.2 和 6.0.4 之间的 Redis OSS 版本，当第一次支持传输中加密时，AUTH 是唯一的选择。

   剩下的辅助集群设置会预先填入与主集群相同的值，但您可以更新以下值来满足对该集群的特定要求：
   + 端口
   + 副本数量
   + 子网组
   + 首选可用区 
   + 安全组
   + 客户托管式（AWS KMS 密钥） 
   + AUTH 令牌
   + 启用自动备份
   + 备份保留期
   + 备份时段
   + 维护时段
   + SNS 主题通知

1. 选择**创建**。这会将全局数据存储的状态设置为 **Creating（正在创建）**。主集群和辅助集群与全局数据存储关联后，状态会更改为 **Available（可用）**。您有一个接受读取和写入的主集群和接受从主集群复制的读取数据的辅助集群。

   页面也会更新为指示集群是否属于全局数据存储，包括以下项：
   + **Global Datastore（全局数据存储）**– 集群所属的全局数据存储的名称。
   + **Global Datastore Role（全局数据存储角色）**– 主集群或辅助集群的角色。

在不同的 AWS 区域中最多可以添加一个额外的辅助集群。有关更多信息，请参阅 [将区域添加到全局数据存储](#Redis-Global-Datastores-Console-Create-Secondary)。

## 查看全局数据存储详细信息
<a name="Redis-Global-Datastores-Console-Details"></a>

您可以查看现有全局数据存储的详细信息，也可以在**全局数据存储**页面上对其进行修改。

**查看全局数据存储详细信息**

1. 登录 AWS 管理控制台 并打开 ElastiCache 控制台（[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)）。

1. 在导航窗格中，选择**全局数据存储**，然后选择可用的全局数据存储。

然后，您可以检查以下全局数据存储属性：
+ **全局数据存储名称：**全局数据存储的名称
+ **描述：**全局数据存储的描述
+ **状态：**选项包括：
  + 创建
  + 修改
  + 可用
  + Deleting（正在删除）
  + 仅主集群 - 此状态表示全局数据存储仅包含主集群。所有辅助集群均已删除，或者未成功创建。
+ **集群模式：**启用或禁用
+ **引擎版本：**运行全局数据存储的 Valkey 或 Redis OSS 引擎版本
+ **实例节点类型：**全局数据存储所用的节点类型
+ **静态加密：**启用或禁用
+ **传输中加密：**启用或禁用
+ **AUTH：**启用或禁用

您可以对全局数据存储进行以下更改：
+ [将区域添加到全局数据存储](#Redis-Global-Datastores-Console-Create-Secondary) 
+ [从全局数据存储中删除区域](#Redis-Global-Datastore-Console-Remove-Region) 
+ [将辅助集群提升为主集群](#Redis-Global-Datastores-Console-Promote-Secondary)
+ [修改全局数据存储](#Redis-Global-Datastores-Console-Modify-Regional-Clusters)

“Global Datastore（全局数据存储）”页面还列出组成全局数据存储的各个集群以及每个集群的以下属性：
+ **Region（区域）**– 存储集群的 AWS 区域
+ **Role（角色）**- 主集群或辅助集群
+ **Cluster name（集群名称）**- 集群的名称
+ **Status（状态）**- 选项包括：
  + **Associating（正在关联）**- 集群正在关联到全局数据存储
  + **Associated（已关联）**- 集群已与全局数据存储关联
  + **Disassociating（正在解除关联）**- 使用全局数据存储名称从全局数据存储中删除辅助集群的过程。此操作结束后，辅助集群不再接收来自主集群的更新，但它仍为该 AWS 区域中的独立集群。
  + **Disassociated（已取消关联）**– 辅助集群已从全局数据存储中删除，现为其 AWS 区域中的独立集群。
+ **Global Datastore Replica lag（全局数据存储副本滞后）**– 显示全局数据存储中每个辅助 AWS 区域一个值。此为辅助区域的主节点与主区域的主节点之间的滞后。对于已启用集群模式的 Valkey 或 Redis OSS，滞后表示分片之间的最大延迟（以秒为单位）。

## 将区域添加到全局数据存储
<a name="Redis-Global-Datastores-Console-Create-Secondary"></a>

您最多可以向现有全局数据存储添加一个额外 AWS 区域。在这种情况下，您将在单独的 AWS 区域中创建只读集群，该集群接收来自主集群的自动和异步更新。

**将 AWS 区域添加到全局数据存储**

1. 登录 AWS 管理控制台 并打开 ElastiCache 控制台（[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)）。

1. 在导航窗格中，选择**全局数据存储**，然后选择现有的全局数据存储。

1. 选择**添加区域集群**，然后选择辅助集群所在的 AWS 区域。

1. 在**集群信息**下面，输入集群的**名称**值和（可选）**描述**。

1. 使以下选项保持不变。它们会预先填入以匹配主集群配置，您无法对其进行更改。
   + 引擎版本
   + 实例类型
   + 节点类型
   + 分片数量
   + 参数组
**注意**  
ElastiCache 根据提供的参数组的值自动生成新参数组，并将新参数组应用于集群。使用这个新参数组修改全局数据存储上的参数。每个自动生成的参数组与一个（且只有一个）集群关联，因此只有一个全局数据存储。
   + 静态加密
**注意**  
您可以通过选择 **Customer Managed AWS KMS key（客户托管式 Amazon KMS 密钥）**并选择该密钥来提供不同的加密密钥。
   + 传输中加密
   + AUTH

1. （可选）更新剩余的辅助集群设置。这些设置会预先填入与主集群相同的值，但您可以对其进行更新，以满足该集群的特定要求：
   + 端口
   + 副本数量
   + 子网组
   + 首选可用区
   + 安全组
   + 客户托管式（AWS KMS 密钥） 
   + AUTH 令牌
   + 启用自动备份
   + 备份保留期
   + 备份时段
   + 维护时段
   + SNS 主题通知

1. 选择**添加**。

## 修改全局数据存储
<a name="Redis-Global-Datastores-Console-Modify-Regional-Clusters"></a>

您可以修改区域集群的属性。全局数据存储上只能进行一个修改操作，但将辅助集群提升为主集群除外。有关更多信息，请参阅 [将辅助集群提升为主集群](#Redis-Global-Datastores-Console-Promote-Secondary)。

**修改全局数据存储**

1. 登录 AWS 管理控制台 并打开 ElastiCache 控制台（[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)）。

1. 在导航窗格中，选择**全局数据存储**，然后在**全局数据存储名称**下选择一个全局数据存储。

1. 选择 **Modify（修改）**并在以下选项中进行选择：
   + **Modify description（修改描述）**– 更新全局数据存储的描述
   + **修改引擎版本** – 只有 Valkey 7.2 及更高版本或 Redis OSS 5.0.6 及更高版本才可用。
   + **Modify node type（修改节点类型）**– 纵向（扩展和缩减）和横向（扩展和缩减）扩展区域集群。选项包括 R5 和 M5 节点系列。有关节点类型的更多信息，请参阅[受支持的节点类型](CacheNodes.SupportedTypes.md)。
   + **Modify Automatic Failover（修改自动故障转移）**– 启用或禁用自动故障转移。当您启用故障转移并且区域集群中的主节点意外关闭时，ElastiCache 会将故障转移到其中一个区域副本。有关更多信息，请参阅[自动故障转移](AutoFailover.md)。

   对于 Valkey 或 Redis OSS（已启用集群模式）集群：
   + **Add shards（添加分片）**– 输入要添加的分片数量，并有选择地指定一个或多个可用区。
   + **Delete shards（删除分片）**– 选择要在每个 AWS 区域中删除的分片。
   + **Rebalance shards（重新平衡分片）**– 重新平衡插槽分配，以确保在集群中的现有分片之间均匀分配。

要修改全局数据存储的参数，请修改全局数据存储的任何成员集群的参数组。ElastiCache 会自动将此更改应用于该全局数据存储中的所有集群。若要修改该集群的参数组，请使用 Valkey 或 Redis OSS 控制台或 [ModifyCacheCluster](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ModifyCacheCluster.html) API 操作。有关更多信息，请参阅 [修改 ElastiCache 参数组](ParameterGroups.Modifying.md)。修改全局数据存储中包含的任何集群的参数组时，该参数组应用于该全局数据存储中的所有集群。

要重置整个参数组或特定参数，请使用 [ResetCacheParameterGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_ResetCacheParameterGroup.html) API 操作。

## 将辅助集群提升为主集群
<a name="Redis-Global-Datastores-Console-Promote-Secondary"></a>

如果主集群或 AWS 区域变得不可用或遇到性能问题，您可以将辅助集群提升为主集群。随时可进行提升，即使正在进行其他修改时也可以。您还可以并行进行多个提升，并且全局数据存储最终会解析为一个主集群。如果同时提升多个辅助集群，则 ElastiCache不保证哪个集群最终会解析为主集群。

**将辅助集群提升为主集群**

1. 登录 AWS 管理控制台 并打开 ElastiCache 控制台（[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)）。

1. 在导航窗格中，选择**全局数据存储**。

1. 选择全局数据存储名称以查看详细信息。

1. 选择 **Secondary（辅助）**集群。

1. 选择 **Promote to primary（提升为主集群）**。

   然后，系统会提示您确认您的决定，并显示以下警告：` Promoting a region to primary will make the cluster in this region as read/writable. Are you sure you want to promote the secondary cluster to primary?`

   `The current primary cluster in primary region will become secondary and will stop accepting writes after this operation completes. Please ensure you update your application stack to direct traffic to the new primary region.`

1. 如果您希望继续提升，请选择 **Confirm（确认）**，如果您不希望继续提升，请选择 **Cancel（取消）**。

如果选择确认，则全局数据存储会转换为 **Modifying（正在修改）**状态，并且在提升完成之前不可用。

## 从全局数据存储中删除区域
<a name="Redis-Global-Datastore-Console-Remove-Region"></a>

您可以按照以下过程从全局数据存储中删除 AWS 区域。

**从全局数据存储中删除 AWS 区域**

1. 登录 AWS 管理控制台 并打开 ElastiCache 控制台（[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)）。

1. 在导航窗格中，选择**全局数据存储**。

1. 选择一个全局数据存储。

1. 选择要删除的 **Region（区域）**。

1. 选择 **Remove region（删除区域）**。
**注意**  
此选项仅适用于辅助集群。

   然后，系统会提示您确认您的决定，并显示以下警告：` Removing the region will remove your only available cross region replica for the primary cluster. Your primary cluster will no longer be set up for disaster recovery and improved read latency in remote region. Are you sure you want to remove the selected region from the global datastore?`

1. 如果您希望继续提升，请选择 **Confirm（确认）**，如果您不希望继续提升，请选择 **Cancel（取消）**。

如果您选择确认，则会删除 AWS 区域，且辅助集群不再接收复制更新。

## 删除全局数据存储
<a name="Redis-Global-Datastores-Console-Delete-GlobalDatastore"></a>

要删除全局数据存储，请先删除所有辅助集群。有关更多信息，请参阅 [从全局数据存储中删除区域](#Redis-Global-Datastore-Console-Remove-Region)。这样做会使全局数据存储处于 **primary-only（仅主集群）**状态。

**删除全局数据存储**

1. 登录 AWS 管理控制台 并打开 ElastiCache 控制台（[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)）。

1. 在导航窗格中，选择**全局数据存储**。

1. 在 **Global Datastore Name（全局数据存储名称）**下，选择要删除的全局数据存储，然后选择 **Delete（删除）**。

   然后，系统会提示您确认您的决定，并显示以下警告：`Are you sure you want to delete this Global Datastore?`

1. 选择 **Delete（删除）**。

全局数据存储将转换为 **Deleting（正在删除）**状态。

# 使用全局数据存储 (CLI)
<a name="Redis-Global-Datastores-CLI"></a>

您可以使用 AWS Command Line Interface (AWS CLI) 从命令行管理多个 AWS 服务并通过脚本自动执行这些服务。您可以使用 AWS CLI 执行临时（一次性）操作。

## 下载和配置 AWS CLI
<a name="Redis-Global-Datastores-Downloading-CLI"></a>

AWS CLI 在 Windows、macOS 或 Linux 上运行。按照以下步骤下载和并对其进行配置。

**下载、安装和配置 CLI**

1. 在 [AWS Command Line Interface](https://aws.amazon.com/cli) 网页上下载 AWS CLI。

1. 按照 *AWS Command Line Interface 用户指南*中的说明安装 AWS CLI 和配置 AWS CLI。

## 将 AWS CLI 与全局数据存储结合使用
<a name="Redis-Global-Datastores-Using-CLI"></a>

使用以下 CLI 操作来处理全局数据存储：
+ [create-global-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-global-replication-group.html)

  ```
  aws elasticache create-global-replication-group \
     --global-replication-group-id-suffix my global datastore  \
     --primary-replication-group-id sample-repl-group  \
     --global-replication-group-description an optional description of the global datastore
  ```

  Amazon ElastiCache 会在全局数据存储 ID 被创建时自动对其应用前缀。每个 AWS 区域有自己的前缀。例如，在美国西部（北加利福尼亚）区域创建的全局数据存储 ID 以“virxk”和您提供的后缀名称开头。后缀与自动生成的前缀相结合，保证了全局数据存储名称在多个区域中的唯一性。

  下表列出了每个 AWS 区域及其全局数据存储 ID 前缀。

    
****    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/AmazonElastiCache/latest/dg/Redis-Global-Datastores-CLI.html)
+  [create-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-replication-group.html) – 使用此操作可通过向 `--global-replication-group-id` 参数提供全局数据存储的名称来创建全局数据存储的辅助集群。

  ```
  aws elasticache create-replication-group \
    --replication-group-id secondary replication group name \
    --replication-group-description “Replication group description" \
    --global-replication-group-id global datastore name
  ```

  当调用此操作并传入 `--global-replication-group-id` 值时，ElastiCache 会从全局复制组的主复制组中推断下列参数的值。请勿传入这些参数的值：

  `"PrimaryClusterId",`

  `"AutomaticFailoverEnabled",`

  ` "NumNodeGroups",`

  ` "CacheParameterGroupName",`

  ` "CacheNodeType",`

  ` "Engine",`

  ` "EngineVersion",`

  ` "CacheSecurityGroupNames",`

  ` "EnableTransitEncryption",`

  ` "AtRestEncryptionEnabled",`

  ` "SnapshotArns",`

  ` "SnapshotName"`
+ [describe-global-replication-groups](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-global-replication-groups.html)

  ```
  aws elasticache describe-global-replication-groups \
     --global-replication-group-id my global datastore  \
     --show-member-info an optional parameter that returns a list of the primary and secondary clusters that make up the global datastore
  ```
+ [modify-global-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/modify-global-replication-group.html)

  ```
  aws elasticache modify-global-replication-group \
     --global-replication-group-id my global datastore  \
     --automatic-failover-enabled \
     --cache-node-type node type \
     --cache-parameter-group-name parameter group name \ 
     --engine-version engine version \
     -—apply-immediately \
     --global-replication-group-description description
  ```

  **ElastiCache GlobalDataStore 的 Redis 到 OSS Valkey 跨引擎升级**

  您可以使用控制台、API 或 CLI 将现有 Redis OSS 全局复制组升级到 Valkey。

  如果您有现成的 Redis OSS 全局复制组，您可以使用 modify-global-replication-group API 指定新引擎和引擎版本，从而升级到 Valkey。

  对于 Linux、macOS 或 Unix：

  ```
  aws elasticache modify-global-replication-group \
     --global-replication-group-id myGlobalReplGroup \
     --engine valkey \
     --apply-immediately \
     --engine-version 8.0
  ```

  对于 Windows：

  ```
  aws elasticache modify-global-replication-group ^
     --global-replication-group-id myGlobalReplGroup ^
     --engine valkey ^
     --apply-immediately ^
     --engine-version 8.0
  ```

  如果您对要升级的现有 Redis OSS 全局复制组应用了自定义缓存参数组，则还需要在请求中传递自定义 Valkey 缓存参数组。输入 Valkey 自定义参数组必须具有与现有 Redis OSS 自定义参数组相同的 Redis OSS 静态参数值。

  对于 Linux、macOS 或 Unix：

  ```
  aws elasticache modify-global-replication-group \
     --global-replication-group-id myGlobalReplGroup \
     --engine valkey \
     --engine-version 8.0 \
     --apply-immediately \
     --cache-parameter-group-name myParamGroup
  ```

  对于 Windows：

  ```
  aws elasticache modify-global-replication-group ^
     --global-replication-group-id myGlobalReplGroup ^
     --engine valkey ^
     --engine-version 8.0 ^
     --apply-immediately ^
     --cache-parameter-group-name myParamGroup
  ```
+ [delete-global-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/delete-global-replication-group.html)

  ```
  aws elasticache delete-global-replication-group \
     --global-replication-group-id my global datastore  \
     --retain-primary-replication-group defaults to true
  ```
+ [disassociate-global-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/disassociate-global-replication-group.html)

  ```
  aws elasticache disassociate-global-replication-group \
     --global-replication-group-id my global datastore  \
     --replication-group-id my secondary cluster  \
     --replication-group-region the AWS Region in which the secondary cluster resides
  ```
+ [failover-global-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/failover-global-replication-group.html)

  ```
  aws elasticache failover-replication-group \
     --global-replication-group-id my global datastore \
     --primary-region The AWS Region of the primary cluster \  
     --primary-replication-group-id  The name of the global datastore, including the suffix.
  ```
+ [increase-node-groups-in-global-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/increase-node-groups-in-global-replication-group.html)

  ```
  aws elasticache increase-node-groups-in-global-replication-group \
     --apply-immediately yes \
     --global-replication-group-id global-replication-group-name \
     --node-group-count 3
  ```
+ [decrease-node-groups-in-global-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/decrease-node-groups-in-global-replication-group.html)

  ```
  aws elasticache decrease-node-groups-in-global-replication-group \
     --apply-immediately yes \
     --global-replication-group-id global-replication-group-name \
     --node-group-count 3
  ```
+ [rebalance-shards-in-global-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/rebalance-slots-in-global-replication-group.html)

  ```
  aws elasticache rebalance-shards-in-global-replication-group \
     --apply-immediately yes \
     --global-replication-group-id global-replication-group-name
  ```

使用 help 列出 ElastiCache for Valkey 或 ElastiCache for Redis OSS 的所有可用命令。

```
aws elasticache help
```

您还可以使用帮助来描述特定命令并了解有关其用法的详细信息：

```
aws elasticache create-global-replication-group help
```