教程:使用外部创建的备份为新的基于节点的集群制作种子
创建新的 Valkey 或 Redis OSS 基于节点的集群时,您可以使用 Valkey 或 Redis OSS .rdb 备份文件中的数据为其制作种子。如果您当前在 ElastiCache 外部管理 Valkey 或 Redis OSS 实例,并要使用现有 Valkey 或 Redis OSS 数据填充新的 ElastiCache for Redis OSS 基于节点的集群,则为集群制作种子会很有用。
要从在 Amazon ElastiCache 中创建的 Valkey 或 Redis OSS 备份为新的 Valkey 或 Redis OSS 基于节点的集群制作种子,请参阅从备份还原到新缓存。
使用 Valkey 或 Redis OSS .rdb 文件为新的基于节点的集群制作种子时,您可以执行以下操作:
-
从未分区的集群升级到运行 Redis OSS v3.2.4 的 Valkey 或 Redis OSS(已启用集群模式)基于节点的集群。
-
指定新的基于节点的集群中的分片(在 API 和 CLI 中称为节点组)数量。此数量可以与用于创建备份文件的基于节点的集群中的分片数量不同。
-
为新的基于节点的集群指定不同的节点类型 – 大于或小于创建备份的集群中使用的节点类型。如果您决定缩减到较小的节点类型,则必须确保新节点类型拥有足量内存以适应您的数据和 Valkey 或 Redis OSS 开销。有关更多信息,请参阅 确保具有用于创建 Valkey 或 Redis OSS 快照的足够内存。
-
以不同于创建备份文件时所用集群中的方法将您的键分发到新的 Valkey 或 Redis OSS(已启用集群模式)集群的槽中。
注意
无法从 Valkey 或 Redis OSS(已启用集群模式)集群中创建的 .rdb 文件为 Valkey 或 Redis OSS(已禁用集群模式)集群制作种子。
重要
-
您必须确保 Valkey 或 Redis OSS 备份数据不超过节点的资源容量。例如,您无法将具有 5GB Valkey 或 Redis OSS 数据的 .rdb 文件上传到具有 2.9GB 内存的 cache.m3.medium 节点。
如果备份太大,则所生成集群的状态将为
restore-failed。如果发生这种情况,您必须删除集群,从头再来。有关节点类型和规范的完整列表,请参阅 特定于 Redis OSS 节点类型的参数 和 Amazon ElastiCache 产品功能和详细信息
。 -
您只能使用 Amazon S3 服务器端加密(SSE-S3)对 Valkey 或 Redis OSS .rdb 文件进行加密。有关更多信息,请参阅使用服务器端加密保护数据。
在接下来的部分中,您可以找到一些主题,引导您将集群从 ElastiCache for Valkey 或 ElastiCache for Redis OSS 外部迁移到 ElastiCache for Redis OSS。
迁移到 ElastiCache for Redis OSS
从外部服务迁移到 ElastiCache for Redis OSS。
步骤 1:创建 Valkey 或 Redis OSS 备份
创建用于为 ElastiCache for Redis OSS 实例制作种子的 Valkey 或 Redis OSS 备份
有关创建备份的其他信息,请参阅 Valkey 网站上的持久化
步骤 2:创建 Amazon S3 存储桶和文件夹
创建备份文件后,您需要将其上传到 Amazon S3 存储桶中的文件夹。要执行该操作,您必须先拥有 Amazon S3 存储桶以及该存储桶中的文件夹。如果您已有 Amazon S3 存储桶和文件夹并具备相应权限,则可以跳到 步骤 3:将备份上传到 Amazon S3。
创建 Amazon S3 存储桶
-
登录到 Amazon Web Services 管理控制台,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/
。 -
按照 Amazon Simple Storage Service 用户指南中的创建存储桶的说明,创建 Amazon S3 存储桶。
Amazon S3 存储桶的名称必须符合 DNS 标准。否则,ElastiCache 无法访问您的备份文件。DNS 合规性规则包括:
-
名称的长度必须为至少 3 个字符,且不能超过 63 个字符。
-
名称必须是由句点(.)分隔的一个或多个标签组成的系列,其中每个标签:
-
以小写字母或数字开头。
-
以小写字母或数字结尾。
-
仅包含小写字母、数字和短划线。
-
-
名称不能采用 IP 地址格式(例如 192.0.2.0)。
您必须在与新的 ElastiCache for Redis OSS 集群所在同一个 Amazon 区域中创建 Amazon S3 存储桶。此方式可确保当 ElastiCache 从 Amazon S3 读取 .rdb 文件时,数据传输速度达到最高。
注意
为了使您的数据尽可能安全,请尽可能限制您的 Amazon S3 存储桶的权限。同时,权限仍然需要允许存储桶及其内容用于为新的 Valkey 或 Redis OSS 集群制作种子。
-
向 Amazon S3 存储桶添加文件夹
-
登录到 Amazon Web Services 管理控制台,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/
。 -
选择将 .rdb 文件上传到的存储桶的名称。
-
请选择 Create folder(创建文件夹)。
-
输入新文件夹的名称。
-
选择保存。
记录存储桶名称和文件夹名称。
步骤 3:将备份上传到 Amazon S3
现在,上传您在步骤 1:创建 Valkey 或 Redis OSS 备份中创建的 .rdb 文件。将其上传到您在 步骤 2:创建 Amazon S3 存储桶和文件夹 中创建的 Amazon S3 存储桶和文件夹。有关此任务的更多信息,请参阅将对象添加到存储桶。在步骤 2 和 3 之间,选择您创建的文件夹的名称。
将 .rdb 文件上传到 Amazon S3 文件夹
-
登录到 Amazon Web Services 管理控制台,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/
。 -
选择您在步骤 2 中创建的 Amazon S3 存储桶的名称。
-
选择您在步骤 2 中创建的文件夹的名称。
-
选择上传。
-
选择 Add files。
-
浏览查找要上传的一个或多个文件,然后选择文件。要选择多个文件,请在选择每个文件名时按住 Ctrl 键。
-
选择 Open(打开)。
-
确认 Upload 对话框中列出了正确的文件,然后选择 Upload。
记下 .rdb 文件的路径。例如,如果存储桶名称为 myBucket 并且路径为 myFolder/redis.rdb,请输入 myBucket/myFolder/redis.rdb。使用此备份中的数据为新集群做种时需要此路径。
有关更多信息,请参阅 Amazon Simple Storage Service 用户指南中的存储桶限制。
步骤 4:授予 ElastiCache 对 .rdb 文件的读取访问权限
现在,授予 ElastiCache 对 .rdb 备份文件的读取访问权限。您可以通过不同方式授予 ElastiCache 对备份文件的访问权限,具体取决于您的存储桶是位于默认 Amazon 区域还是选择加入的 Amazon 区域。
Amazon默认情况下,在 2019 年 3 月 20 日之前推出的 区域为已启用状态。您可以立即开始在这些 Amazon 区域中工作。2019 年 3 月 20 日之后推出的区域默认处于禁用状态,如亚太地区(香港)和中东(巴林)。您必须按照 Amazon Web Services 一般参考中的管理 Amazon 区域所述,先启用或选择加入这些区域,然后才能使用它们。
根据您的 Amazon 区域选择方法:
-
对于默认区域,请使用 授予 ElastiCache 对默认区域中 .rdb 文件的读取访问权限 中的过程。
-
对于选择加入的区域,请使用 授予 ElastiCache 对选择加入区域中 .rdb 文件的读取访问权限 中的过程。
授予 ElastiCache 对默认区域中 .rdb 文件的读取访问权限
Amazon默认情况下,在 2019 年 3 月 20 日之前推出的 区域为已启用状态。您可以立即开始在这些 Amazon 区域中工作。2019 年 3 月 20 日之后推出的区域默认处于禁用状态,如亚太地区(香港)和中东(巴林)。您必须按照 Amazon Web Services 一般参考中的管理 Amazon 区域所述,先启用或选择加入这些区域,然后才能使用它们。
授予 ElastiCache 对默认启用的 Amazon 区域中备份文件的读取访问权限
-
登录到 Amazon Web Services 管理控制台,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/
。 -
选择包含您 .rdb 文件的 S3 存储桶的名称。
-
选择包含 .rdb 文件的文件夹的名称。
-
选择 .rdb 备份文件的名称。所选文件的名称将显示在页面顶部的选项卡上方。
-
选择权限。
-
如果 aws-scs-s3-readonly 或以下列表中的规范 ID 之一未作为用户列出,请执行以下操作:
-
在 Access for other Amazon accounts(对其他亚马逊云科技账户的访问权限)下,选择 Add grantee(添加被授权者)。
-
在框中添加 Amazon 区域的规范 ID,如以下所示:
-
中国(北京)和中国(宁夏)区域:
b14d6a125bdf69854ed8ef2e71d8a20b7c490f252229b806e514966e490b8d83 -
Amazon GovCloud(美国西部)区域:
40fa568277ad703bd160f66ae4f83fc9dfdfd06c2f1b5060ca22442ac3ef8be6重要
备份必须位于 Amazon GovCloud (US) 中的 S3 存储桶内,以便您将它下载到 Amazon GovCloud (US) 中的 Valkey 或 Redis OSS 集群。
-
-
通过为以下对象选择 Yes(是)对存储桶设置权限:
-
List/write object(列出/写入对象)
-
Read/write object ACL permissions(读/写对象 ACL 权限)
-
-
选择保存。
-
-
选择 Overview(概述),然后选择 Download(下载)。
授予 ElastiCache 对选择加入区域中 .rdb 文件的读取访问权限
Amazon默认情况下,在 2019 年 3 月 20 日之前推出的 区域为已启用状态。您可以立即开始在这些 Amazon 区域中工作。2019 年 3 月 20 日之后推出的区域默认处于禁用状态,如亚太地区(香港)和中东(巴林)。您必须按照 Amazon Web Services 一般参考中的管理 Amazon 区域所述,先启用或选择加入这些区域,然后才能使用它们。
现在,授予 ElastiCache 对 .rdb 备份文件的读取访问权限。
授予 ElastiCache 对备份文件的读取访问权限
-
登录到 Amazon Web Services 管理控制台,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/
。 -
选择包含您 .rdb 文件的 S3 存储桶的名称。
-
选择包含 .rdb 文件的文件夹的名称。
-
选择 .rdb 备份文件的名称。所选文件的名称将显示在页面顶部的选项卡上方。
-
选择 Permissions(权限)选项卡。
-
在 Permissions(权限)下,选择 Bucket policy(存储桶策略),然后选择 Edit(编辑)。
-
更新策略以授予 ElastiCache 执行操作所需的权限:
将
[ "Service" : "添加到region-full-name.elasticache-snapshot.amazonaws.com" ]Principal。添加将快照导出到 Amazon S3 存储桶所需的以下权限:
"s3:GetObject""s3:ListBucket""s3:GetBucketAcl"
以下是更新策略具体形式的示例。
-
选择保存更改。
使用 .rdb 文件数据为 ElastiCache 集群制作种子
现在,您已准备好创建 ElastiCache 集群并使用 .rdb 文件中的数据为其设定种子。要创建集群,请按照创建 Valkey 或 Redis OSS 集群或从头开始创建 Valkey 或 Redis OSS 复制组中的说明操作。请确保选择 Valkey 或 Redis OSS 作为集群引擎。
您用来告知 ElastiCache 在何处查找已上传到 Amazon S3 的备份的方法取决于您创建集群时采用的方法:
使用 .rdb 文件数据为 ElastiCache for Redis OSS 集群或复制组制作种子
-
使用 ElastiCache 控制台
选择集群设置时,请选择 Restore from backups(从备份中恢复)作为集群创建方法,然后在 Backup source(备份源)部分中选择 Other backups(其他备份)作为您的 Source(源)。在 Seed RDB file S3 location(使用 RDB 文件 S3 位置设定种子)框中,键入文件的 Amazon S3 路径。如果您有多个 .rdb 文件,则以逗号分隔的列表形式键入各文件的路径。Amazon S3 路径类似于
。myBucket/myFolder/myBackupFilename.rdb -
使用 Amazon CLI
如果您使用
create-cache-cluster或create-replication-group操作,请使用参数--snapshot-arns为各 .rdb 文件指定完全限定的 ARN。例如arn:aws:s3:::。ARN 必须解析为您存储在 Amazon S3 中的备份文件。myBucket/myFolder/myBackupFilename.rdb -
使用 ElastiCache API
如果您使用
CreateCacheCluster或CreateReplicationGroupElastiCache API 操作,请使用参数SnapshotArns为各 .rdb 文件指定完全限定的 ARN。例如arn:aws:s3:::。ARN 必须解析为您存储在 Amazon S3 中的备份文件。myBucket/myFolder/myBackupFilename.rdb
重要
在为 Valkey 或 Redis OSS(已启用集群模式)集群制作种子时,您必须在新集群或复制组中配置每个节点组(分片)。为此,请使用参数 --node-group-configuration(API:NodeGroupConfiguration)。有关更多信息,请参阅下列内容:
-
CLI:Amazon CLI 参考中的 create-replication-group
-
API:ElastiCache API 参考中的 CreateReplicationGroup
在创建集群的过程中,Valkey 或 Redis OSS 备份中的数据将写入集群。您可通过查看 ElastiCache 事件消息来监控进度。为此,请参阅 ElastiCache 控制台,然后选择 Cache Events(缓存事件)。您还可以使用 Amazon ElastiCache 命令行界面或 ElastiCache API 获取事件消息。有关更多信息,请参阅 查看 ElastiCache 事件。