开始迁移 - 用于 Redis 的 Amazon ElastiCache
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

开始迁移

在满足所有先决条件后,您可以使用 AWS 管理控制台、ElastiCache API 或 AWS CLI 开始迁移数据。下面显示了使用 CLI 的示例。

可以使用以下参数调用 start-migration 命令以开始进行迁移:

  • --replication-group-id – 目标 ElastiCache 复制组的标识符

  • --customer-node-endpoint-list – 具有 DNS 或 IP 地址以及运行 EC2 集群上的 Redis 的端口的终端节点列表。由于 ElastiCache 当前仅支持禁用了集群模式的配置,因此,该列表应包含一个条目。如果启用了链式复制,则终端节点可能指向副本,而不是 Redis 集群中的主节点。

以下是一个使用 CLI 的示例。

aws elasticache start-migration --replication-group-id test-cluster --customer-node-endpoint-list "Address='10.0.0.241',Port=6379"

在运行该命令时,ElastiCache 主节点配置自身以变为 EC2 实例上 Redis 的副本。ElastiCache 集群的状态将变为 migrating (正在迁移),并开始将数据从 EC2 实例上的 Redis 迁移到 ElastiCache 主节点。根据 Redis 实例上的数据大小和负载,迁移可能需要一段时间才能完成。您可以在 EC2 实例上的 Redis 和 ElastiCache 主节点上运行 redis-cli INFO 命令以检查迁移进度。

在成功复制后,对 EC2 实例上的 Redis 的所有写入将传播到 ElastiCache 集群。您可以使用 ElastiCache 节点执行读取操作。不过,您无法写入到 ElastiCache 集群。如果 ElastiCache 主节点连接了其他副本节点,这些副本节点将继续从 ElastiCache 主节点中进行复制。这样,EC2 实例上的 Redis 中的所有数据将复制到 ElastiCache 集群中的所有节点。

如果 ElastiCache 主节点无法成为 EC2 实例上的 Redis 的副本,它将重试几次,然后再最终将自身重新提升为主节点。ElastiCache 集群的状态将变为 available (可用),并发送有关启动迁移失败的复制组事件。要解决此类故障,请检查以下内容:

  • 查看复制组事件。使用事件中的任何特定信息修复迁移失败。

  • 如果事件未提供任何特定信息,请确保您遵循准备源和目标 Redis 节点以进行迁移中的准则。

  • 确保 VPC 和子网的路由配置允许 ElastiCache 节点和 EC2 实例上的 Redis 之间的流量。

  • 确保附加到 EC2 实例上的 Redis 的安全组允许来自 ElastiCache 节点的入站流量。

  • 检查 EC2 实例上的 Redis 的 Redis 日志,以获取有关复制特定的失败的更多信息。