用于 Redis 的 Amazon ElastiCache
ElastiCache for Redis 用户指南 (API 版本 2015-02-02)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

开始迁移

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

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

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

  • --customer-node-endpoint-list – 具有 DNS 或 IP 地址以及运行源 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 主节点配置自身以变为 Redis 实例的副本。ElastiCache 集群的状态将变为 migrating (正在迁移),并开始将数据从 Redis 实例迁移到 ElastiCache 主节点。根据 Redis 实例上的数据大小和负载,迁移可能需要一段时间才能完成。您可以在 Redis 实例和 ElastiCache 主节点上运行 redis-cli INFO 命令以检查迁移进度。

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

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

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

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

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

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

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