

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 快照和还原
<a name="snapshots"></a>

MemoryDB 集群会自动将数据备份到多可用区事务日志，但您可以选择定期或按需创建集群 point-in-time快照。这些快照可用于重新创建之前某个时间点的集群或为全新集群做种。快照包含集群的元数据以及集群中的所有数据。所有快照都会写入 Amazon Simple Storage Service（Amazon S3），该服务提供持久存储。您随时可通过创建新的 MemoryDB 集群并向该集群填充快照中的数据来还原数据。使用 MemoryDB，你可以使用 AWS 管理控制台、 AWS Command Line Interface (AWS CLI) 和 MemoryDB API 来管理快照。

**Topics**
+ [快照约束](snapshots-constraints.md)
+ [快照费用](snapshots-costs.md)
+ [计划自动快照](snapshots-automatic.md)
+ [手动创建快照](snapshots-manual.md)
+ [生成最终快照](snapshots-final.md)
+ [描述快照](snapshots-describing.md)
+ [复制快照](snapshots-copying.md)
+ [导出快照](snapshots-exporting.md)
+ [从快照还原](snapshots-restoring.md)
+ [使用外部创建的快照为新集群做种](snapshots-seeding-redis.md)
+ [标记快照](snapshots-tagging.md)
+ [删除快照](snapshots-deleting.md)

# 快照约束
<a name="snapshots-constraints"></a>

在计划或创建快照时考虑以下约束：
+ 对于 MemoryDB 集群，为支持的所有节点类型提供快照和还原。
+ 在任何连续的 24 小时期间，针对每个集群所创建的手动快照不能超过 20 个。
+ MemoryDB 仅支持在集群级别拍摄快照。MemoryDB 不支持在分片或节点级别拍摄快照。
+ 在快照过程中，您无法在集群上运行任何其他 API 或 CLI 操作。
+ 如果您删除集群并请求最终快照，则 MemoryDB 始终从主节点创建快照。这可确保您在删除集群之前捕获最新的数据。

# 快照费用
<a name="snapshots-costs"></a>

使用 MemoryDB，您可以免费为每个活动 MemoryDB 集群存储一个快照。对于所有 AWS 区域，针对其他快照所用的存储空间按每月 0.085 美元/GB 的费率收费。对于创建快照或者将快照中的数据还原到 MemoryDB 集群，没有数据传输费。

# 计划自动快照
<a name="snapshots-automatic"></a>

对于任何 MemoryDB 集群，您可以启用自动快照。当启用自动快照时，MemoryDB 每天为集群创建一个快照。自动备份不会对集群产生任何影响，而且更改是即时发生的。有关更多信息，请参阅 [从快照还原](snapshots-restoring.md)。

当您计划自动快照时，应规划以下设置：
+ **快照时段** – MemoryDB 每天开始创建快照的时间段。快照时段的最小长度为 60 分钟。您可以将快照时段设置为自己最方便的任何时间，或设置为在一天中使用率特别高的时间段之外执行快照操作。

  如果您未指定快照时段，则 MemoryDB 会自动分配一个。
+ **快照保留期限** – 快照在 Amazon S3 中保留的天数。例如，如果您将保留期限设置为 5，则当天进行的快照将保留 5 天。保留期限过期时，会自动删除快照。

  最大快照保留期限为 35 天。如果快照保留期限设置为 0，则会为集群禁用自动快照。MemoryDB 数据仍完全耐用，即使禁用了自动快照。

在创建 MemoryDB 集群时，您可以使用 MemoryDB 控制台、或 MemoryDB API 启用或禁用自动快照。 AWS CLI您可在创建 MemoryDB 集群时启动自动快照，具体方法是选中**快照**部分中的**启动自动快照**复选框。有关更多信息，请参阅 [创建 MemoryDB 集群](getting-started.md#clusters.create)。

# 手动创建快照
<a name="snapshots-manual"></a>

除了自动快照以外，您还可以随时创建*手动*快照。与在指定保留期之后自动删除的自动快照不同，手动快照并没有在超过之后就会自动删除的保留期。您必须手动删除任何手动快照。即使您删除某个集群或节点，该集群或节点的所有手动快照都会保留。如果您不再需要保留某个手动快照，您必须自行显式删除它。

手动快照对于测试和存档非常有用。例如，假设您开发了一组基线数据用于测试。您可以创建这些数据的手动快照并在需要时还原数据。对用于修改数据的应用程序进行测试之后，您可通过创建新集群并从基线快照还原来重置数据。集群准备就绪后，您可以再次针对基线数据测试应用程序并且可根据需要随时重复此过程。

除了直接创建手动快照外，您还可以通过下列方法之一创建手动快照：
+ [复制快照](snapshots-copying.md) – 源快照是自动还是手动创建并不重要。
+ [生成最终快照](snapshots-final.md) – 创建快照，然后立即删除集群。

**其他重要性主题**
+ [快照约束](snapshots-constraints.md)
+ [快照费用](snapshots-costs.md)

您可以使用 AWS 管理控制台、或 MemoryDB API 创建节点的手动快照。 AWS CLI



## 创建手动快照（控制台）
<a name="snapshots-manual-CON"></a>

**创建集群的快照（控制台）**

1. 登录 AWS 管理控制台 并打开 MemoryDB 控制台，网址为。[https://console.aws.amazon.com/memorydb/](https://console.aws.amazon.com/memorydb/)

1. 在左侧导航窗格中，选择**集群**。

   此时会显示 MemoryDB 集群屏幕。

1. 选择要备份的 MemoryDB 集群名称左侧的单选按钮。

1. 选择**操作**，然后选择**拍摄快照**。

1. 在**快照**窗口，在**快照名称**框中键入快照名称。建议该名称指明所备份的集群以及进行快照的日期和时间。

   集群命名约束如下：
   + 必须包含 1 – 40 个字母数字字符或连字符。
   + 必须以字母开头。
   + 不能包含两个连续连字符。
   + 不能以连字符结束。

1. 在**加密**下，选择是使用默认加密密钥还是客户托管密钥。有关更多信息，请参阅 [MemoryDB 传输中加密（TLS）](in-transit-encryption.md)。

1. 在 “**标签**” 下，可以选择添加标签以搜索和筛选快照或跟踪 AWS 成本。

1. 选择**拍摄快照**。

   集群的状态将变为*快照*。当状态变回*可用*时，快照已完成。

## 创建手动快照 (AWS CLI)
<a name="snapshots-manual-CLI"></a>

要使用创建群集的手动快照 AWS CLI，请使用带有以下参数的`create-snapshot` AWS CLI 操作：
+ `--cluster-name` – 用作快照源的 MemoryDB 集群的名称。在备份 MemoryDB 集群时使用此参数。

  集群命名约束如下：
  + 必须包含 1 – 40 个字母数字字符或连字符。
  + 必须以字母开头。
  + 不能包含两个连续连字符。
  + 不能以连字符结束。

   
+ `--snapshot-name` – 要创建的快照的名称。

### 相关主题
<a name="snapshots-manual-CLI-see-also"></a>

有关更多信息，请参阅 *AWS CLI 命令参考* 中的 `create-snapshot`。

## 创建手动快照（MemoryDB API）
<a name="snapshots-manual-API"></a>

要使用 MemoryDB API 创建集群的手动快照，请使用带以下参数的 `CreateSnapshot` MemoryDB API 操作：
+ `ClusterName` – 用作快照源的 MemoryDB 集群的名称。在备份 MemoryDB 集群时使用此参数。

   

  集群命名约束如下：
  + 必须包含 1 – 40 个字母数字字符或连字符。
  + 必须以字母开头。
  + 不能包含两个连续连字符。
  + 不能以连字符结束。
+ `SnapshotName` – 要创建的快照的名称。

### 相关主题
<a name="snapshots-manual-api-see-also"></a>

有关更多信息，请参阅 [CreateSnapshot](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_CreateSnapshot.html)。

# 生成最终快照
<a name="snapshots-final"></a>

您可以使用 MemoryDB 控制台 AWS CLI、或 MemoryDB API 创建最终快照。

## 创建最终快照（控制台）
<a name="snapshots-final-CON"></a>

使用 MemoryDB 控制台删除 MemoryDB 集群时，您可以创建最终快照。

要在删除 MemoryDB 集群时创建最终快照，请在删除页面上选择**是**，并在 [步骤 5：删除集群](getting-started.md#clusters.delete) 上为快照提供一个名称。

## 创建最终快照 (AWS CLI)
<a name="snapshots-final-CLI"></a>

使用 AWS CLI删除 MemoryDB 集群时，您可以创建最终快照。

### 删除 MemoryDB 集群时
<a name="w2ab1c18c23c29b7b1b5"></a>

要在删除集群时创建最终快照，请使用带有以下参数的`delete-cluster` AWS CLI 操作：
+ `--cluster-name` – 要删除的集群的名称。
+ `--final-snapshot-name` – 最终快照的名称。

以下代码在删除集群 `myCluster` 时拍摄最终快照 `bkup-20210515-final`。

对于 Linux、macOS 或 Unix：

```
aws memorydb delete-cluster \
        --cluster-name myCluster \
        --final-snapshot-name bkup-20210515-final
```

对于 Windows：

```
aws memorydb delete-cluster ^
        --cluster-name myCluster ^
        --final-snapshot-name bkup-20210515-final
```

有关更多信息，请参阅*AWS CLI 命令参考*中的 [delete-cluster](https://docs.aws.amazon.com/cli/latest/reference/memorydb/delete-cluster.html)。

## 创建最终快照（MemoryDB API）
<a name="snapshots-final-API"></a>

使用 MemoryDB API 删除 MemoryDB 集群时，您可以创建最终快照。

### 删除 MemoryDB 集群时
<a name="snapshots-final-API-cluster"></a>

要创建最终快照，请使用带以下参数的 `DeleteCluster` MemoryDB API 操作。
+ `ClusterName` – 要删除的集群的名称。
+ `FinalSnapshotName` – 快照的名称。

以下 MemoryDB API 操作在`bkup-20210515-final`删除集群时`myCluster`创建快照。

```
https://memory-db.us-east-1.amazonaws.com/
    ?Action=DeleteCluster
    &ClusterName=myCluster
    &FinalSnapshotName=bkup-20210515-final
    &Version=2021-01-01
    &SignatureVersion=4
    &SignatureMethod=HmacSHA256
    &Timestamp=20210515T192317Z
    &X-Amz-Credential=<credential>
```

有关更多信息，请参阅 [DeleteCluster](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_DeleteCluster.html)。

# 描述快照
<a name="snapshots-describing"></a>

以下过程演示如何显示快照列表。如果需要，您还可以查看特定快照的详细信息。

## 描述快照（控制台）
<a name="snapshots-describing-CON"></a>

**要显示快照，请使用 AWS 管理控制台**

1. 登录控制台

1. 在左侧导航窗格中，选择**快照**。

1. 使用搜索筛选**手动**、**自动**或**所有**快照。

1. 要查看特定快照的详细信息，请选中快照名称左侧的单选按钮。选择**操作**，然后选择**查看详细信息**。

1. 或者，在**查看详细信息**页面中执行其他快照操作，例如**复制**、**恢复**或**删除**。您还可以为快照添加标签 

## 描述快照 (AWS CLI)
<a name="snapshots-describing-CLI"></a>

要显示快照列表及特定快照的可选详情，请使用 `describe-snapshots` CLI 操作。

**示例**

以下操作使用参数 `--max-results` 列出与您的账户关联的最多 20 个快照。忽略参数 `--max-results` 最多可列出 50 个快照。

```
aws memorydb describe-snapshots --max-results 20
```

以下操作使用参数 `--cluster-name` 仅列出与集群 `my-cluster` 关联的快照。

```
aws memorydb describe-snapshots --cluster-name my-cluster
```

以下操作使用参数 `--snapshot-name` 显示快照 `my-snapshot` 的详细信息。

```
aws memorydb describe-snapshots --snapshot-name my-snapshot
```

有关更多信息，请参阅 [describe-snapshots](https://docs.aws.amazon.com/cli/latest/reference/memorydb/describe-snapshots.html)。

## 描述快照（MemoryDB API）
<a name="snapshots-describing-API"></a>

要显示快照列表，请使用 `DescribeSnapshots` 操作。

**示例**

以下操作使用参数 `MaxResults` 列出与您的账户关联的最多 20 个快照。忽略参数 `MaxResults` 最多可列出 50 个快照。

```
https://memory-db.us-east-1.amazonaws.com/
    ?Action=DescribeSnapshots
    &MaxResults=20
    &SignatureMethod=HmacSHA256
    &SignatureVersion=4
    &Timestamp=20210801T220302Z
    &Version=2021-01-01
    &X-Amz-Algorithm=Amazon4-HMAC-SHA256
    &X-Amz-Date=20210801T220302Z
    &X-Amz-SignedHeaders=Host
    &X-Amz-Expires=20210801T220302Z
    &X-Amz-Credential=<credential>
    &X-Amz-Signature=<signature>
```

以下操作使用参数 `ClusterName` 列出与集群 `MyCluster` 关联的所有快照。

```
https://memory-db.us-east-1.amazonaws.com/
    ?Action=DescribeSnapshots
    &ClusterName=MyCluster
    &SignatureMethod=HmacSHA256
    &SignatureVersion=4
    &Timestamp=20210801T220302Z
    &Version=2021-01-01
    &X-Amz-Algorithm=Amazon4-HMAC-SHA256
    &X-Amz-Date=20210801T220302Z
    &X-Amz-SignedHeaders=Host
    &X-Amz-Expires=20210801T220302Z
    &X-Amz-Credential=<credential>
    &X-Amz-Signature=<signature>
```

以下操作使用参数 `SnapshotName` 显示快照 `MyBackup` 的详细信息。

```
https://memory-db.us-east-1.amazonaws.com/
    ?Action=DescribeSnapshots
    &SignatureMethod=HmacSHA256
    &SignatureVersion=4
    &SnapshotName=MyBackup
    &Timestamp=20210801T220302Z
    &Version=2021-01-01
    &X-Amz-Algorithm=Amazon4-HMAC-SHA256
    &X-Amz-Date=20210801T220302Z
    &X-Amz-SignedHeaders=Host
    &X-Amz-Expires=20210801T220302Z
    &X-Amz-Credential=<credential>
    &X-Amz-Signature=<signature>
```

有关更多信息，请参阅 [DescribeSnapshots](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_DescribeSnapshots.html)。

# 复制快照
<a name="snapshots-copying"></a>

您可以复制任何快照，无论它是自动还是手动创建的。当复制快照时，除非明确覆盖，否则目标将使用与源相同的 KMS 加密密钥。您还可以导出自己的快照，以便从 MemoryDB 外部访问它。有关导出快照的指南，请参阅 [导出快照](snapshots-exporting.md)。

以下过程演示如何复制快照。

## 复制快照（控制台）
<a name="snapshots-copying-CON"></a>

**复制快照（控制台）**

1. 登录 AWS 管理控制台 并打开 MemoryDB 控制台，网址为。[https://console.aws.amazon.com/memorydb/](https://console.aws.amazon.com/memorydb/)

1. 要查看您的快照列表，请从左侧导航窗格中，选择**快照**。

1. 在快照列表中，选择要复制的快照的名称左侧的单选按钮。

1. 选择**操作**，然后选择**复制**。

1. 在**复制快照**页面中，执行以下操作：

   1. 在**新快照名称**框中，输入新快照的名称。

   1. 将可选 **Target S3 Bucket** 框留空。该字段只能用于导出快照，它需要特殊的 S3 权限。有关导出快照的信息，请参阅 [导出快照](snapshots-exporting.md)。

   1. 选择是使用默认 AWS KMS 加密密钥还是使用自定义密钥。有关更多信息，请参阅 [MemoryDB 传输中加密（TLS）](in-transit-encryption.md)。

   1. 或者，为快照副本添加标签。

   1. 选择**复制**。

## 复制快照 (AWS CLI)
<a name="snapshots-copying-CLI"></a>

要复制快照，请使用 `copy-snapshot` 操作。

**参数**
+ `--source-snapshot-name` – 要复制的快照的名称。
+ `--target-snapshot-name` – 快照副本的名称。
+ `--target-bucket` – 为导出快照预留。在复制快照时，请勿使用此参数。有关更多信息，请参阅 [导出快照](snapshots-exporting.md)。

以下示例复制自动快照。

对于 Linux、macOS 或 Unix：

```
aws memorydb copy-snapshot \
    --source-snapshot-name automatic.my-primary-2021-03-27-03-15 \
    --target-snapshot-name my-snapshot-copy
```

对于 Windows：

```
aws memorydb copy-snapshot ^
    --source-snapshot-name automatic.my-primary-2021-03-27-03-15 ^
    --target-snapshot-name my-snapshot-copy
```

有关更多信息，请参阅 [copy-snapshot](https://docs.aws.amazon.com/cli/latest/reference/memorydb/copy-snapshot.html)。

## 复制快照（MemoryDB API）
<a name="snapshots-copying-API"></a>

要复制快照，请使用带有以下参数的 `copy-snapshot` 操作：

**参数**
+ `SourceSnapshotName` – 要复制的快照的名称。
+ `TargetSnapshotName` – 快照副本的名称。
+ `TargetBucket` – 为导出快照预留。在复制快照时，请勿使用此参数。有关更多信息，请参阅 [导出快照](snapshots-exporting.md)。

以下示例复制自动快照。

**Example**  

```
https://memory-db.us-east-1.amazonaws.com/
    ?Action=CopySnapshot
    &SourceSnapshotName=automatic.my-primary-2021-03-27-03-15
    &TargetSnapshotName=my-snapshot-copy
    &SignatureVersion=4
    &SignatureMethod=HmacSHA256
    &Timestamp=20210801T220302Z
    &Version=2021-01-01
    &X-Amz-Algorithm=Amazon4-HMAC-SHA256
    &X-Amz-Date=20210801T220302Z
    &X-Amz-SignedHeaders=Host
    &X-Amz-Expires=20210801T220302Z
    &X-Amz-Credential=<credential>
    &X-Amz-Signature=<signature>
```

有关更多信息，请参阅 [CopySnapshot](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_CopySnapshot.html)。

# 导出快照
<a name="snapshots-exporting"></a>

MemoryDB 支持将 MemoryDB 快照导出到 Amazon Simple Storage Service（Amazon S3）存储桶，这让您可以从 MemoryDB 之外访问它。导出的 MemoryDB 快照完全符合 Valkey 和开源 Redis OSS，并且可以使用适当的版本或工具进行加载。您可以使用 MemoryDB 控制台 AWS CLI、或 MemoryDB API 导出快照。

如果您需要在其他 AWS 区域启动集群，则导出快照会很有帮助。您可以将数据导出到一个 AWS 区域，将.rdb 文件复制到新 AWS 区域，然后使用该.rdb 文件为新集群做种子，而不必等待新集群通过使用进行填充。有关为新集群做种的信息，请参阅 [使用外部创建的快照为新集群做种](snapshots-seeding-redis.md)。您可能希望导出集群数据的另一个原因是将 .rdb 文件用于脱机处理。

**重要**  
 MemoryDB 快照和您要将其复制到的 Amazon S3 存储桶必须位于同一 AWS 区域。  
尽管复制到 Amazon S3 存储桶的快照已加密，但我们强烈建议您不要将要存储快照的 Amazon S3 存储桶的访问权限授予他人。
使用数据分层功能的集群不支持将快照导出到 Amazon S3。有关更多信息，请参阅 [数据分层](data-tiering.md)。

在将快照导出到 Amazon S3 存储桶之前，您必须将 Amazon S3 存储桶与快照位于同一 AWS 区域。向 MemoryDB 授予对存储桶的访问权限。前两个步骤向您演示了如何执行此操作。

**警告**  
以下方案会以您可能不希望的方式公开您的数据：  
**其他人具有您将快照导出到其中的 Amazon S3 存储桶的访问权限时。**  
要控制对快照的访问权限，请将对 Amazon S3 存储桶的访问权限仅授予您允许访问数据的人员。有关管理对 Amazon S3 存储桶的访问权限的信息，请参阅 *Amazon S3 开发人员指南*中的[管理访问权限](https://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html)。
**当其他人有权使用 CopySnapshot API 操作时。**  
有权限使用 `CopySnapshot` API 操作的用户或组可以创建自己的 Amazon S3 存储桶并将快照复制到其中。要控制对快照的访问权限，请使用 AWS Identity and Access Management (IAM) 策略来控制谁有权使用 `CopySnapshot` API。有关使用 IAM 控制 MemoryDB API 操作使用的更多信息，请参阅 *MemoryDB 用户指南*中的 [MemoryDB 中的身份和访问管理](iam.md)。

**Topics**
+ [步骤 1：创建 Amazon S3 存储桶](#snapshots-exporting-create-s3-bucket)
+ [步骤 2：授予 MemoryDB 对 Amazon S3 存储桶的访问权限](#snapshots-exporting-grant-access)
+ [步骤 3：导出 MemoryDB 快照](#snapshots-exporting-procedures)

## 步骤 1：创建 Amazon S3 存储桶
<a name="snapshots-exporting-create-s3-bucket"></a>

以下过程使用 Amazon S3 控制台创建您可以在其中导出和存储 MemoryDB 快照的 Amazon S3 存储桶。

**创建 Amazon S3 存储桶**

1. 登录 AWS 管理控制台 并打开 Amazon S3 控制台，网址为[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 选择**创建存储桶**。

1. 在 **Create a Bucket - Select a Bucket Name and Region** 中，执行以下操作：

   1. 在 **Bucket Name（存储桶名称）**中键入 Amazon S3 存储桶的名称。

   1. 从**区域**列表中，为您的 Amazon S3 存储桶选择一个 AWS 区域。此 AWS 区域必须与您要导出的 MemoryDB 快照位于同一 AWS 区域。

   1. 选择**创建**。

有关创建 Amazon S3 存储桶的更多信息，请参阅 *Amazon Simple Storage Service 用户指南*中的[创建存储桶](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)。

## 步骤 2：授予 MemoryDB 对 Amazon S3 存储桶的访问权限
<a name="snapshots-exporting-grant-access"></a>

AWS 2019 年 3 月 20 日之前推出的区域默认处于启用状态。您可以立即开始在这些 AWS 地区工作。2019 年 3 月 20 日之后推出的区域默认情况下处于禁用状态。您必须按照[管理 AWS 区域](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html)所述，先启用或选择加入这些区域，然后才能使用它们。

### 授予 MemoryDB 访问某个区域内您的 S3 存储桶的权限 AWS
<a name="snapshots-exporting-region"></a>

要在某个 AWS 区域的 Amazon S3 存储桶上创建适当的权限，请执行以下步骤。

**向 MemoryDB 授予对 S3 存储桶的访问权限**

1. 登录 AWS 管理控制台 并打开 Amazon S3 控制台，网址为[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 选择要将快照复制到其中的 Amazon S3 存储桶的名称。这应该是您在[步骤 1：创建 Amazon S3 存储桶](#snapshots-exporting-create-s3-bucket)中创建的 S3 存储桶。

1. 选择**权限**选项卡，在**权限**下面，选择**存储桶策略**。

1. 更新策略以授予 MemoryDB 执行操作所需的权限：
   + 将 `[ "Service" : "region-full-name.memorydb-snapshot.amazonaws.com" ]` 添加到 `Principal`。
   + 添加将快照导出到 Amazon S3 存储桶所需的以下权限。
     + `"s3:PutObject"`
     + `"s3:GetObject"`
     + `"s3:ListBucket"`
     + `"s3:GetBucketAcl"`
     + `"s3:ListMultipartUploadParts"`
     + `"s3:ListBucketMultipartUploads"`

   以下是更新策略具体形式的示例。

------
#### [ JSON ]

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Id": "Policy15397346",
       "Statement": [
           {
               "Sid": "Stmt15399483",
               "Effect": "Allow",
               "Principal": {
                   "Service": "aws-region.memorydb-snapshot.amazonaws.com"
               },
               "Action": [
                   "s3:PutObject",
                   "s3:GetObject",
                   "s3:ListBucket",
                   "s3:GetBucketAcl",
                   "s3:ListMultipartUploadParts",
                   "s3:ListBucketMultipartUploads"
               ],
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket",
                   "arn:aws:s3:::amzn-s3-demo-bucket/*"
               ]
           }
       ]
   }
   ```

------

## 步骤 3：导出 MemoryDB 快照
<a name="snapshots-exporting-procedures"></a>

现在您已经创建了 S3 存储桶并向 MemoryDB 授予了访问它的权限。将 S3 对象所有权更改为*ACLs 已启用-首选存储桶所有者*。接下来，你可以使用 MemoryDB 控制台、CL AWS I 或 MemoryDB API 将快照导出到控制台。下面假设您拥有以下附加的 S3 特定 IAM 权限。

------
#### [ JSON ]

****  

```
{
	"Version":"2012-10-17",		 	 	 
	"Statement": [{
		"Effect": "Allow",
		"Action": [
			"s3:GetBucketLocation",
			"s3:ListAllMyBuckets",
			"s3:PutObject",
			"s3:GetObject",
			"s3:DeleteObject",
			"s3:ListBucket"
		],
		"Resource": "arn:aws:s3:::*"
	}]
}
```

------

### 导出 MemoryDB 快照（控制台）
<a name="snapshots-exporting-CON"></a>

以下步骤使用 MemoryDB 控制台将备份导出到 Amazon S3 存储桶，以便从 MemoryDB 外部访问它。Amazon S3 存储桶必须与 MemoryDB 快照位于同一 AWS 区域。

**将 MemoryDB 快照导出到 Amazon S3 桶**

1. 登录 AWS 管理控制台 并打开 MemoryDB 控制台，网址为。[https://console.aws.amazon.com/memorydb/](https://console.aws.amazon.com/memorydb/)

1. 要查看您的快照列表，请从左侧导航窗格中，选择**快照**。

1. 在快照列表中，选择要导出的快照名称左侧的单选按钮。

1. 选择**复制**。

1. 在 **Create a Copy of the Backup?（创建备份副本?）**中，执行以下操作：

   1. 在**新快照名称**框中，输入新快照的名称。

      名称必须在 1 到 1000 个字符之间，并能够以 UTF-8 编码。

      MemoryDB 对您在此处输入的值添加分片标识符和 `.rdb`。例如，如果您输入 `my-exported-snapshot`，则 MemoryDB 创建 `my-exported-snapshot-0001.rdb`。

   1. 从**目标 S3 位置**列表中，选择要将快照复制到其中的 Amazon S3 存储桶（您在 [步骤 1：创建 Amazon S3 存储桶](#snapshots-exporting-create-s3-bucket) 中创建的存储桶）的名称。

      **目标 S3 位置**必须是快照 AWS 区域中具有以下权限的 Amazon S3 存储桶，导出过程才能成功。
      + 对象访问 – **Read（读取）**和 **Write（写入）**。
      + 权限访问 – **Read（读取）**。

      有关更多信息，请参阅 [步骤 2：授予 MemoryDB 对 Amazon S3 存储桶的访问权限](#snapshots-exporting-grant-access)。

   1. 选择**复制**。

**注意**  
如果您的 S3 存储桶没有供 MemoryDB 将快照导出到其中所需的权限，则您将收到以下某个错误消息。返回到 [步骤 2：授予 MemoryDB 对 Amazon S3 存储桶的访问权限](#snapshots-exporting-grant-access)，添加指定权限并重试导出快照的操作。  
未授予 MemoryDB 在 S3 存储桶上的 READ 权限 %s。  
**解决方案：**在存储桶上添加 Read 权限。
未授予 MemoryDB 在 S3 存储桶上的 WRITE 权限 %s。  
**解决方案：**在存储桶上添加 Write 权限。
未授予 MemoryDB 在 S3 存储桶上的 READ\$1ACP 权限 %s。  
**解决方案：**为存储桶的权限访问添加 **Read**。

如果您想将快照复制到其他 AWS 区域，请使用 Amazon S3 将其复制。有关更多信息，请参阅 *Amazon Simple Storage Service 用户指南*中的[复制对象](https://docs.aws.amazon.com/AmazonS3/latest/userguide/copy-object.html)。

### 导出 MemoryDB 快照 (CLI AWS )
<a name="snapshots-exporting-CLI"></a>

使用带有以下参数的 `copy-snapshot` CLI 操作将快照导出到 Amazon S3 存储桶：

**参数**
+ `--source-snapshot-name` – 要复制的快照的名称。
+ `--target-snapshot-name` – 快照副本的名称。

  名称必须在 1 到 1000 个字符之间，并能够以 UTF-8 编码。

  MemoryDB 对您在此处输入的值添加分片标识符和 `.rdb`。例如，如果您输入 `my-exported-snapshot`，则 MemoryDB 创建 `my-exported-snapshot-0001.rdb`。
+ `--target-bucket` – 您要将快照导出到其中的 Amazon S3 存储桶的名称。在指定存储桶中生成快照的副本。

  `--target-bucket`必须是快照 AWS 所在区域中具有以下权限的 Amazon S3 存储桶，导出过程才能成功。
  + 对象访问 – **Read（读取）**和 **Write（写入）**。
  + 权限访问 – **Read（读取）**。

  有关更多信息，请参阅 [步骤 2：授予 MemoryDB 对 Amazon S3 存储桶的访问权限](#snapshots-exporting-grant-access)。

以下操作将快照复制到 amzn-s3-demo-bucket。

对于 Linux、macOS 或 Unix：

```
aws memorydb copy-snapshot \
    --source-snapshot-name automatic.my-primary-2021-06-27-03-15 \
    --target-snapshot-name my-exported-snapshot \
    --target-bucket amzn-s3-demo-bucket
```

对于 Windows：

```
aws memorydb copy-snapshot ^
    --source-snapshot-name automatic.my-primary-2021-06-27-03-15 ^
    --target-snapshot-name my-exported-snapshot ^
    --target-bucket amzn-s3-demo-bucket
```

**注意**  
如果您的 S3 存储桶没有供 MemoryDB 将快照导出到其中所需的权限，则您将收到以下某个错误消息。返回到 [步骤 2：授予 MemoryDB 对 Amazon S3 存储桶的访问权限](#snapshots-exporting-grant-access)，添加指定权限并重试导出快照的操作。  
未授予 MemoryDB 在 S3 存储桶上的 READ 权限 %s。  
**解决方案：**在存储桶上添加 Read 权限。
未授予 MemoryDB 在 S3 存储桶上的 WRITE 权限 %s。  
**解决方案：**在存储桶上添加 Write 权限。
未授予 MemoryDB 在 S3 存储桶上的 READ\$1ACP 权限 %s。  
**解决方案：**为存储桶的权限访问添加 **Read**。

有关更多信息，请参阅《AWS CLI 命令参考》**中的 `copy-snapshot`。

如果您想将快照复制到其他 AWS 区域，请使用 Amazon S3 副本。有关更多信息，请参阅 *Amazon Simple Storage Service 用户指南*中的[复制对象](https://docs.aws.amazon.com/AmazonS3/latest/userguide/copy-object.html)。

### 导出 MemoryDB 快照（MemoryDB API）
<a name="snapshots-exporting-API"></a>

使用带有以下参数的 `CopySnapshot` API 操作将快照导出到 Amazon S3 存储桶。

**参数**
+ `SourceSnapshotName` – 要复制的快照的名称。
+ `TargetSnapshotName` – 快照副本的名称。

  名称必须在 1 到 1000 个字符之间，并能够以 UTF-8 编码。

  MemoryDB 对您在此处输入的值添加分片标识符和 `.rdb`。例如，如果您输入 `my-exported-snapshot`，则将获得 `my-exported-snapshot-0001.rdb`。
+ `TargetBucket` – 您要将快照导出到其中的 Amazon S3 存储桶的名称。在指定存储桶中生成快照的副本。

  `TargetBucket`必须是快照 AWS 所在区域中具有以下权限的 Amazon S3 存储桶，导出过程才能成功。
  + 对象访问 – **Read（读取）**和 **Write（写入）**。
  + 权限访问 – **Read（读取）**。

  有关更多信息，请参阅 [步骤 2：授予 MemoryDB 对 Amazon S3 存储桶的访问权限](#snapshots-exporting-grant-access)。

以下示例演示将自动快照复制到 Amazon S3 存储桶 `amzn-s3-demo-bucket`。

**Example**  

```
https://memory-db.us-east-1.amazonaws.com/
    ?Action=CopySnapshot
    &SourceSnapshotName=automatic.my-primary-2021-06-27-03-15
    &TargetBucket=&example-s3-bucket;
    &TargetSnapshotName=my-snapshot-copy
    &SignatureVersion=4
    &SignatureMethod=HmacSHA256
    &Timestamp=20210801T220302Z
    &Version=2021-01-01
    &X-Amz-Algorithm=Amazon4-HMAC-SHA256
    &X-Amz-Date=20210801T220302Z
    &X-Amz-SignedHeaders=Host
    &X-Amz-Expires=20210801T220302Z
    &X-Amz-Credential=<credential>
    &X-Amz-Signature=<signature>
```

**注意**  
如果您的 S3 存储桶没有供 MemoryDB 将快照导出到其中所需的权限，则您将收到以下某个错误消息。返回到 [步骤 2：授予 MemoryDB 对 Amazon S3 存储桶的访问权限](#snapshots-exporting-grant-access)，添加指定权限并重试导出快照的操作。  
未授予 MemoryDB 在 S3 存储桶上的 READ 权限 %s。  
**解决方案：**在存储桶上添加 Read 权限。
未授予 MemoryDB 在 S3 存储桶上的 WRITE 权限 %s。  
**解决方案：**在存储桶上添加 Write 权限。
未授予 MemoryDB 在 S3 存储桶上的 READ\$1ACP 权限 %s。  
**解决方案：**为存储桶的权限访问添加 **Read**。

有关更多信息，请参阅 [CopySnapshot](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_CopySnapshot.html)。

如果您想将快照复制到其他 AWS 区域，请使用 Amazon S3 副本将导出的快照复制到另一个 AWS 区域的 Amazon S3 存储桶。有关更多信息，请参阅 *Amazon Simple Storage Service 用户指南*中的[复制对象](https://docs.aws.amazon.com/AmazonS3/latest/userguide/copy-object.html)。

# 从快照还原
<a name="snapshots-restoring"></a>

您可以随时将数据从 MemoryDB 或 ElastiCache (Redis OSS) .rdb 快照文件恢复到新集群。

MemoryDB 还原流程支持以下操作：
+ 从您从 ElastiCache (Redis OSS) 创建的一个或多个.rdb 快照文件迁移到 MemoryDB 集群。

  .rdb 文件必须放在 S3 中来执行还原。
+ 在新集群中指定多个分片，其数量不同于创建快照文件时所用集群中分片的数量。
+ 为新集群指定不同节点类型 – 较大或更小的节点类型。如果要缩减到较小的节点类型，则必须确保新节点类型拥有足量内存以适应您的数据和引擎开销。
+ 以不同于创建快照文件时所用集群中的方法，配置新 MemoryDB 集群的槽。

**重要**  
MemoryDB 集群不支持多个数据库。因此，还原到 MemoryDB 时，如果 .rdb 文件引用多个数据库，还原将会失败。
您不能将使用数据分层功能的集群（例如，r6gd 节点类型的集群）快照还原到不使用数据分层功能的集群（例如，r6g 节点类型的集群）。

从快照还原集群时是否进行任何更改取决于您所做的选择。您可以在**还原集群**页面中使用 MemoryDB 控制台进行还原。在使用 AWS CLI 或 MemoryDB API 进行还原时，您可以通过设置参数值来做出这些选择。

在还原操作过程中，MemoryDB 会创建新集群，然后使用快照文件中的数据填充。此过程完成后，集群即完成预热，准备好接受请求。

**重要**  
在继续之前，请确保您已创建要从中进行还原的集群快照。有关更多信息，请参阅 [手动创建快照](snapshots-manual.md)。  
如果要从外部创建的快照进行还原，请参阅 [使用外部创建的快照为新集群做种](snapshots-seeding-redis.md)。

以下过程向您展示了如何使用 MemoryDB 控制台、或 MemoryDB API 将 AWS CLI快照还原到新集群。

## 从快照还原（控制台）
<a name="snapshots-restoring-CON"></a>

**将快照还原到新集群（控制台）**

1. 登录 AWS 管理控制台 并打开 MemoryDB 控制台，网址为。[https://console.aws.amazon.com/memorydb/](https://console.aws.amazon.com/memorydb/)

1. 在导航窗格中，选择**快照**。

1. 在快照列表中，选中要还原的快照名称旁边的按钮。

1. 选择**操作**，然后选择**还原**

1. 在**集群配置**下，输入以下内容：

   1. **集群名称**– 必填。新集群的名称。

   1. **描述** – 可选。新集群的描述。

1. 完成**子网组**部分：

   1. 对于**子网组**，创建新的子网组，或从可用列表中选择要应用于此集群的现有子网组。如果要创建一个新的：
     + 输入**名称**
     + 输入**描述**
     + 如果启用了多可用区，则子网组必须至少包含两个位于不同可用区中的子网。有关更多信息，请参阅 [子网和子网组](subnetgroups.md)。
     + 如果要创建新的子网组但不具有现有 VPC，则系统会要求您创建 VPC。有关更多信息，请参阅《Amazon VPC 用户指南》**中的[什么是 Amazon VPC？](https://docs.aws.amazon.com/vpc/latest/userguide/what-is-amazon-vpc.html)。

1. 完成**集群设置**部分：

   1. 为了实现 **Valkey 版本兼容性**或 **Redis OSS 版本兼容性**，请接受默认 `6.0`。

   1. 对于**端口**，请接受默认端口 6379，或者，如果您出于某个原因需要使用其他端口，请输入相应的端口号。

   1. 对于**参数组**，请接受 `default.memorydb-redis6` 参数组。

      参数组控制集群的运行时参数。有关参数组的更多信息，请参阅 [引擎特定参数](parametergroups.redis.md)。

   1. 对于**节点类型**，请为所需节点类型（及其关联的内存大小）选择一个值。

      如果您选择 r6gd 系列的节点类型，则系统会自动在集群中启用数据分层。有关更多信息，请参阅 [数据分层](data-tiering.md)。

   1. 对于**分片数**，选择要用于此集群的分片数。

      您可以动态更改集群中的分片数量。有关更多信息，请参阅 [扩展 MemoryDB 集群](scaling-cluster.md)。

   1. 对于**每个分片的副本数量**，请选择每个分片中需要的只读副本节点数。

      存在以下限制；。
      + 如果启用了多可用区，请确保每个分片至少有一个副本。
      + 使用控制台创建集群时，每个分片的副本数相同。

   1. 选择**下一步**。

   1. 完成**高级设置**部分：

      1. 对于**安全组**，选择要用于该集群的安全组。*安全组* 充当防火墙来控制对集群的网络访问。您可以使用 VPC 的默认安全组或创建一个新的安全组。

         有关安全组的更多信息，请参阅 *Amazon VPC 用户指南*中的[您的 VPC 的安全组](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html)。

      1. 数据通过以下方式加密：
         + **Encryption at rest（静态加密）**– 对磁盘上存储的数据启用加密。有关更多信息，请参阅[静态加密](https://docs.aws.amazon.com/memorydb/latest/devguide/at-rest-encryption.html)。
**注意**  
您可以选择提供不同的加密密钥，方法是选择 “**客户托管 AWS KMS 密钥**” 并选择密钥。
         + **Encryption in-transit（传输中加密）**– 对传输中数据启用加密。默认为启用状态。有关更多信息，请参阅[传输中加密](https://docs.aws.amazon.com/memorydb/latest/devguide/in-transit-encryption.html)。

         如果您选择不加密，则系统将使用默认用户创建一个名为“开放访问”的开放访问控制列表。有关更多信息，请参阅 [使用访问控制列表对用户进行身份验证 () ACLs](clusters.acls.md)。

      1. 对于**快照**，请选择性地指定快照保留期和快照时段。默认情况下，**启用自动快照**处于选中状态。

      1. 对于**维护时段**，请选择性地指定维护时段。*维护时段*是每周中 MemoryDB 为您的集群计划系统维护的时间，通常以小时为时间长度。您可以允许 MemoryDB 选择维护时段的日期和时间（*无首选项*），或者自行选择日期、时间和持续时间（*指定维护时段*）。如果您从列表中选择*指定维护时段*，请选择维护时段的*起始日*、*起始时间*和*持续时间*（以小时为单位）。所有时间均为 UCT 时间。

         有关更多信息，请参阅 [管理维护](maintenance-window.md)。

      1. 对于 **通知**，选择现有 Amazon Simple Notiﬁcation Service (Amazon SNS) 主题，或选择手动 ARN 输入，然后输入主题的 Amazon 资源名称（ARN）。Amazon SNS 允许您向联网的智能设备推送通知。默认设置为禁用通知。有关更多信息，请参阅 [https://aws.amazon.com/sns/](https://aws.amazon.com/sns/)。

   1. 对于**标签**，您可以选择应用标签来搜索和筛选集群或跟踪 AWS 成本。

   1. 查看您的所有输入和选择，然后进行任意所需的更正。准备就绪后，请选择**创建集群**启动集群或选择**取消**取消操作。

   当您的集群状态为 *available* 时，您可向其授予 EC2 访问权限，连接到集群并开始使用它。有关更多信息，请参阅[步骤 3：授予对集群的访问权限](getting-started.md#getting-started.authorizeaccess)和[步骤 4：连接到集群](getting-started.md#getting-startedclusters.connecttonode)。
**重要**  
一旦您的集群变为可用状态，您便需要为集群处于活动状态的每个小时或分钟支付费用（即使您并未主动使用集群）。要停止此集群产生的费用，您必须将其删除。请参阅[步骤 5：删除集群](getting-started.md#clusters.delete)。

## 从快照恢复 (AWS CLI)
<a name="snapshots-restoring-CLI"></a>

使用 `create-cluster` 操作时，请确保包括参数 `--snapshot-name` 或 `--snapshot-arns`，以使用来自快照的数据为新集群做种。

有关更多信息，请参阅下列内容：
+ [创建集群 (AWS CLI)](getting-started.md#clusters.create.cli) 在 *MemoryDB 用户指南*中。
+ 在《 AWS CLI 命令@@ [参考》中创建集群](https://docs.aws.amazon.com/cli/latest/reference/memorydb/create-cluster.html)。

## 从快照还原（MemoryDB API）
<a name="snapshots-restoring-API"></a>

您可以使用 MemoryDB API 操作 `CreateCluster` 还原 MemoryDB 快照。

使用 `CreateCluster` 操作时，请确保包括参数 `SnapshotName` 或 `SnapshotArns`，以使用来自快照的数据为新集群做种。

有关更多信息，请参阅下列内容：
+ [创建集群（MemoryDB API）](getting-started.md#clusters.create.api) 在 *MemoryDB 用户指南*中。
+ [CreateCluster](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_CreateCluster.html)在 *MemoryDB API 参考*中。

# 使用外部创建的快照为新集群做种
<a name="snapshots-seeding-redis"></a>

创建新 MemoryDB 集群时，可以使用 Valkey 或 Redis OSS .rdb 快照文件中的数据来作为种子。

要从 MemoryDB 快照或 ElastiCache (Redis OSS) 快照中播种新的 MemoryDB 集群，请参阅。[从快照还原](snapshots-restoring.md)

使用 .rdb 文件为新 MemoryDB 集群做种时，您可以执行以下操作：
+ 指定新集群中的分片数量。此数量可以与用于创建快照文件的集群中的分片数量不同。
+ 为新集群指定不同的节点类型 – 大于或小于创建快照的集群中使用的节点类型。如果您决定缩减到较小的节点类型，则必须确保新节点类型拥有足量内存以适应您的数据和引擎开销。

**重要**  
您必须确保快照数据不超过节点的资源容量。  
如果快照太大，则所生成集群的状态将为 `restore-failed`。如果发生这种情况，您必须删除集群，从头再来。  
有关节点类型和规范的完整列表，请参阅 [MemoryDB 节点类型特定的参数](parametergroups.redis.md#parametergroups.redis.nodespecific)。
您只能使用 Amazon S3 服务器端加密（SSE-S3）对 .rdb 文件进行加密。有关更多信息，请参阅[使用服务器端加密保护数据](https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html)。

## 步骤 1：在外部集群上创建快照
<a name="snapshots-seeding-create-snapshot"></a>

**创建快照为您的 MemoryDB 集群做种**

1. 连接到现有 Valkey 或 Redis OSS 实例。

1. 运行 `BGSAVE` 或 `SAVE` 操作以创建快照。记录 .rdb 文件的位置。

   `BGSAVE` 是异步的，在处理期间不阻止其他客户端。有关更多信息，请参阅 [BGSAVE](http://valkey.io/commands/bgsave)。

   `SAVE` 同步的，在完成之前会阻止其他进程。有关更多信息，请参阅 [SAVE](http://valkey.io/commands/save)。

有关创建快照的其他信息，请参阅[持久化](http://valkey.io/topics/persistence)。

## 步骤 2：创建 Amazon S3 存储桶和文件夹
<a name="snapshots-seeding-create-s3-bucket"></a>

创建快照文件后，您需要将其上传到 Amazon S3 存储桶中的文件夹。要执行该操作，您必须先拥有 Amazon S3 存储桶以及该存储桶中的文件夹。如果您已有 Amazon S3 存储桶和文件夹并具备相应权限，则可以跳到 [步骤 3：将快照上传到 Amazon S3](#snapshots-seeding-upload)。

**创建 Amazon S3 存储桶**

1. 登录 AWS 管理控制台 并打开 Amazon S3 控制台，网址为[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 按照 *Amazon Simple Storage Service 用户指南*中的[创建存储桶](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)的说明，创建 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 存储桶添加文件夹**

1. 登录 AWS 管理控制台 并打开 Amazon S3 控制台，网址为[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 选择将 .rdb 文件上传到的存储桶的名称。

1. 请选择 **Create folder**（创建文件夹）。

1. 输入新文件夹的名称。

1. 选择**保存**。

   记录存储桶名称和文件夹名称。

## 步骤 3：将快照上传到 Amazon S3
<a name="snapshots-seeding-upload"></a>

现在，上传您在[步骤 1：在外部集群上创建快照](#snapshots-seeding-create-snapshot)中创建的 .rdb 文件。将其上传到您在 [步骤 2：创建 Amazon S3 存储桶和文件夹](#snapshots-seeding-create-s3-bucket) 中创建的 Amazon S3 存储桶和文件夹。有关该任务的更多信息，请参阅[上传对象](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html)。在步骤 2 和 3 之间，选择您创建的文件夹的名称。

**将 .rdb 文件上传到 Amazon S3 文件夹**

1. 登录 AWS 管理控制台 并打开 Amazon S3 控制台，网址为[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 选择您在步骤 2 中创建的 Amazon S3 存储桶的名称。

1. 选择您在步骤 2 中创建的文件夹的名称。

1. 选择**上传**。

1. 选择**添加文件**。

1. 浏览查找要上传的一个或多个文件，然后选择文件。要选择多个文件，请在选择每个文件名时按住 Ctrl 键。

1. 选择 **Open（打开）**。

1. 确认**上传**页面中列出了正确的文件，然后选择**上传**。

记下 .rdb 文件的路径。例如，如果存储桶名称为 `amzn-s3-demo-bucket` 并且路径为 `myFolder/redis.rdb`，请输入 `amzn-s3-demo-bucket/myFolder/redis.rdb`。使用此快照中的数据为新集群做种时需要此路径。

有关更多信息，请参阅 *Amazon Simple Storage Service 用户指南*中的[存储桶命名规则](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html)。

## 步骤 4：授予 MemoryDB 对 .rdb 文件的读取访问权限
<a name="snapshots-seeding-grant-access"></a>

AWS 2019 年 3 月 20 日之前推出的区域默认处于启用状态。您可以立即开始在这些 AWS 地区工作。2019 年 3 月 20 日之后推出的区域默认情况下处于禁用状态。您必须按照[管理 AWS 区域](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html)所述，先启用或选择加入这些区域，然后才能使用它们。

### 授予 MemoryDB 对 .rdb 文件的读取访问权限
<a name="snapshots-seeding"></a>

**向 MemoryDB 授予对快照文件的读取访问权限**

1. 登录 AWS 管理控制台 并打开 Amazon S3 控制台，网址为[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。

1. 选择包含您 .rdb 文件的 S3 存储桶的名称。

1. 选择包含 .rdb 文件的文件夹的名称。

1. 选择 .rdb 快照文件的名称。所选文件的名称将显示在页面顶部的选项卡上方。

1. 选择**权限**选项卡。

1. 在 **Permissions**（权限）下，选择 **Bucket policy**（存储桶策略），然后选择 **Edit**（编辑）。

1. 更新策略以授予 MemoryDB 执行操作所需的权限：
   + 将 `[ "Service" : "region-full-name.memorydb-snapshot.amazonaws.com" ]` 添加到 `Principal`。
   + 添加将快照导出到 Amazon S3 存储桶所需的以下权限：
     + `"s3:GetObject"`
     + `"s3:ListBucket"`
     + `"s3:GetBucketAcl"`

   以下是更新策略具体形式的示例。

------
#### [ JSON ]

****  

   ```
   {
       "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:::amzn-s3-demo-bucket",
                   "arn:aws:s3:::amzn-s3-demo-bucket/snapshot1.rdb",
                   "arn:aws:s3:::amzn-s3-demo-bucket/snapshot2.rdb"
               ]
           }
       ]
   }
   ```

------

1. 选择**保存**。

## 步骤 5：使用 .rdb 文件数据为 MemoryDB 集群做种
<a name="snapshots-seeding-seed-cluster"></a>

现在，您已准备好创建 MemoryDB 集群并使用 .rdb 文件中的数据为其做种。要创建集群，请按照 [创建 MemoryDB 集群](getting-started.md#clusters.create) 中的说明操作。

当告知 MemoryDB 在何处查找已上传到 Amazon S3 的快照时所采用的方法取决于您创建集群时采用的方法：

**使用 .rdb 文件数据为 MemoryDB 集群做种**
+ **使用 MemoryDB 控制台**

  选择引擎之后，展开**高级设置**部分，然后找到**将数据导入集群**。在 **Seed RDB file S3 location（使用 RDB 文件 S3 位置设定种子）**框中，键入文件的 Amazon S3 路径。如果您有多个 .rdb 文件，则以逗号分隔的列表形式键入各文件的路径。Amazon S3 路径类似于 `amzn-s3-demo-bucket/myFolder/myBackupFilename.rdb`。
+ **使用 AWS CLI**

  如果您使用 `create-cluster` 或 `create-cluster` 操作，请使用参数 `--snapshot-arns` 为各 .rdb 文件指定完全限定的 ARN。例如 `arn:aws:s3:::amzn-s3-demo-bucket/myFolder/myBackupFilename.rdb`。ARN 必须解析为您存储在 Amazon S3 中的快照文件。
+ **使用 MemoryDB API**

  如果您使用 `CreateCluster` 或 `CreateCluster` MemoryDB API 操作，请使用参数 `SnapshotArns` 为各 .rdb 文件指定完全限定的 ARN。例如 `arn:aws:s3:::amzn-s3-demo-bucket/myFolder/myBackupFilename.rdb`。ARN 必须解析为您存储在 Amazon S3 中的快照文件。

在创建集群的过程中，快照中的数据将写入集群。您可通过查看 MemoryDB 事件消息来监控进度。为此，请参阅 MemoryDB 控制台，然后选择**事件**。您也可以使用 M AWS emoryDB 命令行界面或 MemoryDB API 来获取事件消息。

# 标记快照
<a name="snapshots-tagging"></a>

您可以标签形式将自己的元数据分配给各个快照。标签可让您按各种标准（例如用途、所有者或环境）对快照进行分类。这在您具有相同类型的很多资源时会很有用 – 您可以根据分配给特定资源的标签快速识别该资源。有关更多信息，请参阅 [您可以为之添加标签的资源](tagging-resources.md#tagging-your-resources)。

成本分配标签是一种通过标签值对发票上的费用进行分组来跟踪多项 AWS 服务成本的方法。要了解有关成本分配标签的更多信息，请参阅[使用成本分配标签](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html)。

使用 MemoryDB 控制台 AWS CLI、或 MemoryDB API，您可以在快照上添加、列出、修改、移除或复制成本分配标签。有关更多信息，请参阅 [使用成本分配标签监控成本](tagging.md)。

# 删除快照
<a name="snapshots-deleting"></a>

自动快照会在其保留期限过期时自动删除。如果您删除某个集群，则会删除其所有的自动快照。

MemoryDB 提供了一个删除 API 操作，可用于随时删除快照，无论快照是自动还是手动创建的。由于手动快照没有保留期限，所以手动删除是移除备份的唯一方法。

您可以使用 MemoryDB 控制台 AWS CLI、或 MemoryDB API 删除快照。

## 删除快照（控制台）
<a name="snapshots-deleting-CON"></a>

以下过程使用 MemoryDB 控制台删除快照。

**删除快照**

1. 登录 AWS 管理控制台 并打开 MemoryDB 控制台，网址为。[https://console.aws.amazon.com/memorydb/](https://console.aws.amazon.com/memorydb/)

1. 在左侧导航窗格中，选择**快照**。

   此时会显示“快照”屏幕，其中包含您的快照列表。

1. 选择要删除的快照名称左侧的单选按钮。

1. 选择**操作**，然后选择**删除**。

1. 如果要删除此快照，请在文本框中输入 `delete`，然后选择**删除**。要取消删除，请选择**取消**。状态将变为*正在删除*。

## 删除快照 (AWS CLI)
<a name="snapshots-deleting-CLI"></a>

使用带有以下参数的删除快照 AWS CLI 操作来删除快照。
+ `--snapshot-name` – 要删除的快照名称。

以下代码删除快照 `myBackup`。

```
aws memorydb delete-snapshot --snapshot-name myBackup
```

有关更多信息，请参阅 *AWS CLI 命令参考*中的 [delete-snapshot](https://docs.aws.amazon.com/cli/latest/reference/memorydb/delete-snapshot.html)。

## 删除快照（MemoryDB API）
<a name="snapshots-deleting-API"></a>

使用带以下参数的 `DeleteSnapshot` API 操作删除快照。
+ `SnapshotName` – 要删除的快照名称。

以下代码删除快照 `myBackup`。

```
https://memory-db.us-east-1.amazonaws.com/
   ?Action=DeleteSnapshot
   &SignatureVersion=4
   &SignatureMethod=HmacSHA256
   &SnapshotName=myBackup
   &Timestamp=20210802T192317Z
   &Version=2021-01-01
   &X-Amz-Credential=<credential>
```

有关更多信息，请参阅 [DeleteSnapshot](https://docs.aws.amazon.com/memorydb/latest/APIReference/API_DeleteSnapshot.html)。