

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用外部建立的快照植入新叢集
<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` 是同步的，並會封鎖其他處理序直到完成為止。如需詳細資訊，請參閱[儲存](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 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 的 Amazon 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 管理主控台 ，並在 https：//[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 開啟 Amazon 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 管理主控台 ，並在 https：//[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 開啟 Amazon S3 主控台。

1. 選擇您在步驟 2 中建立的 Amazon S3 儲存貯體名稱。

1. 選擇您在步驟 2 中建立的資料夾名稱。

1. 選擇**上傳**。

1. 選擇 **Add files (新增檔案)**。

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 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/) 的 Amazon 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 主控台，然後選擇**事件**。您也可以使用 AWS MemoryDB 命令列界面或 MemoryDB API 來取得事件訊息。