当企业不断出海拓展业务,面临的挑战之一就是如何高效迁移应用程序及数据库至云端。为解决这一问题,AWS云专门提供多种简单且高效的迁移方式,进行帮助企业实现应用程序的平稳迁移,从而降低迁移过程中的风险和成本。下面九河云将为大家介绍AWS针对redis迁移上云的详细过程。
- 前期准备
1.准备要迁移的源节点和目标节点
确定目标 ElastiCache 部署,并确保您可以迁移数据 到它。
现有或新创建的 ElastiCache 部署应满足以下条件 迁移要求:
- 它使用的是 Redis 引擎版本 5.0.6 或更高版本。
- 它既没有传输中加密,也没有加密 已启用静态状态。
- 它启用了多可用区。
- 它有足够的可用内存来容纳 Redis 中的数据 簇。要配置正确的预留内存设置,请参阅管理预留内存。
- 对于禁用集群模式,您可以直接从 Redis 版本迁移 2.8.21 及以上至 Redis 版本 5.0.6 及更高版本(如果使用 CLI 或 Redis 版本 5.0.6 及更高版本,使用 CLI 或控制台。对于集群 模式已启用,您可以直接从任何启用集群模式的 Redis 版本迁移 如果使用 CLI 或 Redis 版本,则到 Redis 版本 5.0.6 及更高版本 5.0.6 及更高版本,使用 CLI 或控制台。
- 源和目标匹配的分片数。
- 它不是全局数据存储的一部分。
- 它禁用了数据分层。
2.确保您的开源 Redis 和适用于 Redis 的 ElastiCache 部署的配置为 相容。
目标 ElastiCache 部署中的以下所有内容至少应与用于 Redis 复制的 Redis 配置兼容:
- 您的 Redis 集群不应启用 Redis AUTH。
- Redis 配置应设置为 。protected-modeno
- 如果您的 Redis 配置中有配置,则 应将其更新为允许来自 ElastiCache 节点的请求。bind
- ElastiCache 节点上的逻辑数据库数量应相同 和您的 Redis 集群。此值是在 Redis 配置中使用设置的。databases
- 执行数据修改的 Redis 命令不应重命名为 允许成功复制数据。例如 、 、 、 和 。Sync psync info config command cluster
- 要将数据从 Redis 集群复制到 ElastiCache,请确保 有足够的 CPU 和内存来处理这种额外的负载。这 load 来自 Redis集群创建的 RDB 文件,并且 通过网络传输到 ElastiCache 节点。
- 源集群中的所有 Redis 实例都应在同一端口。
3.确保您的实例可以与 ElastiCache 连接,方法是执行以下操作: 以后:
- 确保每个实例的 IP 地址都是私有的。
- 在同一虚拟私有中分配或创建 ElastiCache 部署 云 (VPC) 作为实例上的 Redis(推荐)。
- 如果 VPC 不同,请设置 VPC 对等连接以允许 节点。
- 附加到 Redis 实例的安全组应允许 来自 ElastiCache 节点的入站流量。
- 创建elasticcache for redis
将创建一个 ElastiCache 数据库集群。在使用 ElastiCache 在线迁移将您的现有数据复制到此集群中后,此集群将用作您的主数据库。
首先,到ElastiCache 控制台。在 Redis 页面上,选择 Create(创建)来创建一个新集群
在 ElastiCache 集群创建向导中,选择 Redis(Redis)作为您的 Cluster engine(集群
引擎)。请勿启用 Cluster Mode(集群模式),此次为单机迁移演示,如需开启集群模式,具体看上方约束条件。
为 Redis 集群提供名称和描述,然后为集群节点选择实例类型。
在 Advanced Redis settings(高级 Redis 设置)中,为 Redis 集群创建一个 Subnet group(子网组)。子网组是指您的 Amazon Virtual Private Cloud (Amazon VPC) 中的一组网络子网,您的 Redis 集群就放置在这些子网中。
在 Security(安全)部分,使用与 Amazon EC2 上用于源 Redis 数据库相同的安全组。
请勿启用 Encryption at-rest(静态加密)或 Encryption in-transit(传输中加密),因为在线迁移期间不支持。
其他默认设置适用于此迁移。滚动到底部,然后选择 Create(创建)
选择 Create(创建)后,您应该能在 ElastiCache 控制面板中看到您的集群。在初始化
时,其 Status(状态)显示为 creating(正在创建)。
等待 ElastiCache 集群创建期间,导航到 Amazon EC2 控制台的 Security Groups(安全
组)部分。找到用于ElastiCache和源端实例的安全组,然后选中该安全组,向安全组添加额外的入站规则,允许安全组中的所有实例在端口 6379 上的 TCP 流量。这允许你的ElastiCache 集群访问你自行管理的 Amazon EC2 实例。
- 从现有 Redis 实例迁移到 ElastiCache 实例
你将把 Redis 数据从您现有的自行管理的 Redis 实例在线迁移到你在ElastiCache 上完全托管的 Redis 实例。在线迁移过程会将其中一个 ElastiCache 节点配置为您自行管理的 Redis 集群的副本。复制完成后,您可以将应用程序切换为直接使用 ElastiCache 实例并停止迁移。
下面导航到 ElastiCache 控制台,开始在线迁移。选择 ElastiCache 集群,然后在Actions(操作)下拉列表中选择 Migrate Data from Endpoint(从终端节点迁移数据)。
在显示的配置窗口中,输入 Amazon EC2 实例的私有 IP 地址作为 Source Redis Endpoint(源 Redis 终端节点)。然后选择 Start Migration(开始迁移)。
当 Redis 集群开始迁移时,其 Status(状态)会显示为 modifying(正在修改),表示它正被添加到现有集群中。
后续等待迁移完成,可以进入机器查看数据是否都完整迁移。
也可以查看ElastiCache的Events(事件)了解迁移信息,Event(事件)页面将显示迁移相关信息,包括迁移开始时间、完成时间以及迁移是否失败。如果迁移失败,此页面将包含有关迁移失败的信息。