本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用外部创建的快照为新集群做种
创建新 MemoryDB 集群时,可以使用 Valkey 或 Redis OSS .rdb 快照文件中的数据来作为种子。
要从 MemoryDB 快照或 ElastiCache(Redis OSS)快照为新 MemoryDB 集群做种,请参阅 从快照还原。
使用 .rdb 文件为新 MemoryDB 集群做种时,您可以执行以下操作:
-
指定新集群中的分片数量。此数量可以与用于创建快照文件的集群中的分片数量不同。
-
为新集群指定不同的节点类型 – 大于或小于创建快照的集群中使用的节点类型。如果您决定缩减到较小的节点类型,则必须确保新节点类型拥有足量内存以适应您的数据和引擎开销。
重要
-
您必须确保快照数据不超过节点的资源容量。
如果快照太大,则所生成集群的状态将为
restore-failed
。如果发生这种情况,您必须删除集群,从头再来。有关节点类型和规范的完整列表,请参阅 MemoryDB 节点类型特定的参数。
-
您只能使用 Amazon S3 服务器端加密(SSE-S3)对 .rdb 文件进行加密。有关更多信息,请参阅使用服务器端加密保护数据。
步骤 1:在外部集群上创建快照
创建快照为您的 MemoryDB 集群做种
有关创建快照的其他信息,请参阅持久化
步骤 2:创建 Amazon S3 存储桶和文件夹
创建快照文件后,您需要将其上传到 Amazon S3 存储桶中的文件夹。要执行该操作,您必须先拥有 Amazon S3 存储桶以及该存储桶中的文件夹。如果您已有 Amazon S3 存储桶和文件夹并具备相应权限,则可以跳到 步骤 3:将快照上传到 Amazon S3。
创建 Amazon S3 存储桶
-
登录到AWS Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/
。 -
按照 Amazon Simple Storage Service 用户指南中的创建存储桶的说明,创建 Amazon S3 存储桶。
Amazon S3 存储桶的名称必须符合 DNS 标准。否则,MemoryDB 无法访问您的备份文件。DNS 合规性规则包括:
-
名称的长度必须为至少 3 个字符,且不能超过 63 个字符。
-
名称必须是由句点(.)分隔的一个或多个标签组成的系列,其中每个标签:
-
以小写字母或数字开头。
-
以小写字母或数字结尾。
-
仅包含小写字母、数字和短划线。
-
-
名称不能采用 IP 地址格式(例如 192.0.2.0)。
我们强烈建议您在与新 MemoryDB 集群相同的 AWS 区域创建 Amazon S3 存储桶。此方式可确保当 MemoryDB 从 Amazon S3 读取 .rdb 文件时,数据传输速度达到最高。
注意
为了使您的数据尽可能安全,请尽可能限制您的 Amazon S3 存储桶的权限。同时,权限仍然需要允许存储桶及其内容用于为新的 MemoryDB 集群设定种子。
-
向 Amazon S3 存储桶添加文件夹
-
登录到AWS Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/
。 -
选择将 .rdb 文件上传到的存储桶的名称。
-
请选择 Create folder(创建文件夹)。
-
输入新文件夹的名称。
-
选择保存。
记录存储桶名称和文件夹名称。
步骤 3:将快照上传到 Amazon S3
现在,上传您在步骤 1:在外部集群上创建快照中创建的 .rdb 文件。将其上传到您在 步骤 2:创建 Amazon S3 存储桶和文件夹 中创建的 Amazon S3 存储桶和文件夹。有关该任务的更多信息,请参阅上传对象。在步骤 2 和 3 之间,选择您创建的文件夹的名称。
将 .rdb 文件上传到 Amazon S3 文件夹
-
登录到AWS Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/
。 -
选择您在步骤 2 中创建的 Amazon S3 存储桶的名称。
-
选择您在步骤 2 中创建的文件夹的名称。
-
选择上传。
-
选择 Add files。
-
浏览查找要上传的一个或多个文件,然后选择文件。要选择多个文件,请在选择每个文件名时按住 Ctrl 键。
-
选择 Open(打开)。
-
确认上传页面中列出了正确的文件,然后选择上传。
记下 .rdb 文件的路径。例如,如果存储桶名称为 myBucket
并且路径为 myFolder/redis.rdb
,请输入 myBucket/myFolder/redis.rdb
。使用此快照中的数据为新集群做种时需要此路径。
有关更多信息,请参阅 Amazon Simple Storage Service 用户指南中的存储桶命名规则。
步骤 4:授予 MemoryDB 对 .rdb 文件的读取访问权限
默认情况下,在 2019 年 3 月 20 日之前推出的 AWS 区域为已启用状态。您可以立即开始在这些 AWS 区域中工作。2019 年 3 月 20 日之后推出的区域默认情况下处于禁用状态。您必须按照管理 AWS 区域所述,先启用或选择加入这些区域,然后才能使用它们。
授予 MemoryDB 对 .rdb 文件的读取访问权限
向 MemoryDB 授予对快照文件的读取访问权限
-
登录到AWS Management Console,然后通过以下网址打开 Amazon S3 控制台:https://console.aws.amazon.com/s3/
。 -
选择包含您 .rdb 文件的 S3 存储桶的名称。
-
选择包含 .rdb 文件的文件夹的名称。
-
选择 .rdb 快照文件的名称。所选文件的名称将显示在页面顶部的选项卡上方。
-
选择权限选项卡。
-
在 Permissions(权限)下,选择 Bucket policy(存储桶策略),然后选择 Edit(编辑)。
-
更新策略以授予 MemoryDB 执行操作所需的权限:
将
[ "Service" : "
添加到region-full-name
.memorydb-snapshot.amazonaws.com" ]Principal
。添加将快照导出到 Amazon S3 存储桶所需的以下权限:
"s3:GetObject"
"s3:ListBucket"
"s3:GetBucketAcl"
以下是更新策略具体形式的示例。
{ "Version": "2012-10-17", "Id": "Policy15397346", "Statement": [ { "Sid": "Stmt15399483", "Effect": "Allow", "Principal": { "Service": "us-east-1.memorydb-snapshot.amazonaws.com" }, "Action": [ "s3:GetObject", "s3:ListBucket", "s3:GetBucketAcl" ], "Resource": [ "arn:aws:s3:::example-bucket", "arn:aws:s3:::example-bucket/snapshot1.rdb", "arn:aws:s3:::example-bucket/snapshot2.rdb" ] } ] }
选择保存。
步骤 5:使用 .rdb 文件数据为 MemoryDB 集群做种
现在,您已准备好创建 MemoryDB 集群并使用 .rdb 文件中的数据为其做种。要创建集群,请按照 创建 MemoryDB 集群 中的说明操作。
当告知 MemoryDB 在何处查找已上传到 Amazon S3 的快照时所采用的方法取决于您创建集群时采用的方法:
使用 .rdb 文件数据为 MemoryDB 集群做种
-
使用 MemoryDB 控制台
选择引擎之后,展开高级设置部分,然后找到将数据导入集群。在 Seed RDB file S3 location(使用 RDB 文件 S3 位置设定种子)框中,键入文件的 Amazon S3 路径。如果您有多个 .rdb 文件,则以逗号分隔的列表形式键入各文件的路径。Amazon S3 路径类似于
。myBucket
/myFolder
/myBackupFilename
.rdb -
使用 AWS CLI
如果您使用
create-cluster
或create-cluster
操作,请使用参数--snapshot-arns
为各 .rdb 文件指定完全限定的 ARN。例如,arn:aws:s3:::
。ARN 必须解析为您存储在 Amazon S3 中的快照文件。myBucket
/myFolder
/myBackupFilename
.rdb -
使用 MemoryDB API
如果您使用
CreateCluster
或CreateCluster
MemoryDB API 操作,请使用参数SnapshotArns
为各 .rdb 文件指定完全限定的 ARN。例如,arn:aws:s3:::
。ARN 必须解析为您存储在 Amazon S3 中的快照文件。myBucket
/myFolder
/myBackupFilename
.rdb
在创建集群的过程中,快照中的数据将写入集群。您可通过查看 MemoryDB 事件消息来监控进度。为此,请参阅 MemoryDB 控制台,然后选择事件。您还可以使用 AWS MemoryDB 命令行界面或 MemoryDB API 获取事件消息。