

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

# 教學課程：使用外部建立的備份植入新的節點型叢集
<a name="backups-seeding-redis"></a>

當您建立新的 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 節點型叢集，請參閱 [從備份還原到新的快取](backups-restoring.md)。

當您使用 Valkey 或 Redis OSS .rdb 檔案植入新的節點型叢集時，您可以執行下列動作：
+ 從未分割叢集升級至執行 Redis OSS 3.2.4 版的 Valkey 或 Redis OSS （啟用叢集模式） 節點型叢集。
+ 在新的節點型叢集中指定多個碎片 （在 API 和 CLI 中稱為節點群組）。此數目可能與用來建立備份檔案的節點型叢集中的碎片數目不同。
+ 為新的節點型叢集指定不同的節點類型 - 大於或小於進行備份之叢集中使用的節點類型。如果您擴展到較小的節點類型，請確定新的節點類型有足夠的記憶體可供您的資料和 Valkey 或 Redis OSS 額外負荷使用。如需詳細資訊，請參閱[確保您有足夠的記憶體來建立 Valkey 或 Redis OSS 快照](BestPractices.BGSAVE.md)。
+ 將您的金鑰分佈在新 Valkey 或 Redis OSS （啟用叢集模式） 叢集的插槽，與用來建立備份檔案的叢集不同。

**注意**  
您無法從從 Valkey 或 Redis OSS （啟用叢集模式） 叢集建立的 .rdb 檔案植入 Valkey 或 Redis OSS （停用叢集模式） 叢集。

**重要**  
您必須確保您的 Valkey 或 Redis OSS 備份資料不超過節點的資源。例如，您無法將具有 5 GB Valkey 或 Redis OSS 資料的 .rdb 檔案上傳至具有 2.9 GB 記憶體的 cache.m3.medium 節點。  
如果備份太大，產生的叢集狀態會是 `restore-failed`。如果發生此情況，您必須刪除叢集並重新開始。  
如需完整的節點類型和規格清單，請參閱「[Redis OSS 節點類型特定參數](ParameterGroups.Engine.md#ParameterGroups.Redis.NodeSpecific)」和 [Amazon ElastiCache 產品功能和詳細資訊](https://aws.amazon.com/elasticache/details/)。
您只能使用 Amazon S3 伺服器端加密 (SSE-S3) 來加密 Valkey 或 Redis OSS .rdb 檔案。如需詳細資訊，請參閱[使用伺服器端加密保護資料](https://docs.aws.amazon.com/AmazonS3/latest/dev/serv-side-encryption.html)。

以下主題會逐步引導您從 ElastiCache for Valkey 或 Redis OSS 外部遷移叢集至 ElastiCache for Redis OSS。

**Topics**
+ [步驟 1：建立 Valkey 或 Redis OSS 備份](#backups-seeding-redis-create-backup)
+ [步驟 2：建立 Amazon S3 儲存貯體和資料夾](#backups-seeding-redis-create-s3-bucket)
+ [步驟 3：將備份上傳到 Amazon S3](#backups-seeding-redis-upload)
+ [步驟 4：授予 .rdb 檔案的讀取存取權給 ElastiCache](#backups-seeding-redis-grant-access)

**Topics**
+ [步驟 1：建立 Valkey 或 Redis OSS 備份](#backups-seeding-redis-create-backup)
+ [步驟 2：建立 Amazon S3 儲存貯體和資料夾](#backups-seeding-redis-create-s3-bucket)
+ [步驟 3：將備份上傳到 Amazon S3](#backups-seeding-redis-upload)
+ [步驟 4：授予 .rdb 檔案的讀取存取權給 ElastiCache](#backups-seeding-redis-grant-access)

## 步驟 1：建立 Valkey 或 Redis OSS 備份
<a name="backups-seeding-redis-create-backup"></a>

**建立 Valkey 或 Redis OSS 備份以植入 ElastiCache for Redis OSS 執行個體**

1. 連線到您現有的 Valkey 或 Redis OSS 執行個體。

1. 執行 `BGSAVE`或 `SAVE`操作以建立備份。記下您的 .rdb 檔案位置。

   `BGSAVE` 是非同步的，不會封鎖其他用戶端的處理。如需詳細資訊，請參閱 Valkey 網站上的 [BGSAVE](https://valkey.io/commands/bgsave)。

   `SAVE` 是同步的，並會封鎖其他處理序直到完成為止。如需詳細資訊，請參閱 Valkey 網站上的[儲存](https://valkey.io/commands/save)。

如需建立備份的詳細資訊，請參閱 Valkey 網站上的[持續性](https://valkey.io/topics/persistence)。

## 步驟 2：建立 Amazon S3 儲存貯體和資料夾
<a name="backups-seeding-redis-create-s3-bucket"></a>

建立備份檔案之後，您需要將它上傳到 Amazon S3 儲存貯體中的資料夾。若要執行此操作，您必須先擁有 Amazon S3 儲存貯體，且該儲存貯體中有資料夾。如果您已有具備適當許可的 Amazon S3 儲存貯體和資料夾，您可以跳到「[步驟 3：將備份上傳到 Amazon S3](#backups-seeding-redis-upload)」。

**建立 Amazon S3 儲存貯體**

1. 登入AWS 管理主控台，並在 [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.html)提供的指引操作，建立 Amazon S3 儲存貯體。

   Amazon S3 儲存貯體的名稱必須具 DNS 合規性。否則，ElastiCache 無法存取您的備份檔案。DNS 合規的規則如下：
   + 名稱長度須為 3 到 63 個字元。
   + 名稱必須是一連串一或多個標籤，並以句號 (.) 分隔，其中每個標籤：
     + 以小寫字母或數字開頭。
     + 以小寫字母或數字結尾。
     + 僅包含小寫字母、數字和破折號。
   + 不得使用 IP 地址格式 (例如 192.0.2.0)。

   您必須在與新 ElastiCache for Redis OSS 叢集相同的AWS區域中建立 Amazon S3 儲存貯體。此方法將會確保 ElastiCache 從 Amazon S3 讀取您的 .rdb 檔案時，資料傳輸速度達到最快。
**注意**  
為了讓您的資料盡可能保持安全，請盡可能限制您 Amazon S3 儲存貯體的許可。同時，許可仍然需要允許儲存貯體及其內容用於植入新的 Valkey 或 Redis OSS 叢集。

**在 Amazon S3 儲存貯體中新增資料夾**

1. 登入AWS 管理主控台，並在 [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="backups-seeding-redis-upload"></a>

現在，上傳您在[步驟 1：建立 Valkey 或 Redis OSS 備份](#backups-seeding-redis-create-backup)中建立的 .rdb 檔案 上傳到在 [步驟 2：建立 Amazon S3 儲存貯體和資料夾](#backups-seeding-redis-create-s3-bucket) 中建立的 Amazon S3 儲存貯體和資料夾。如需此任務的詳細資訊，請參閱[將物件新增至儲存貯體](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html)。在步驟 2 到 3 之間，選擇您已建立的資料夾名稱。

**將 .rdb 檔案上傳到 Amazon S3 資料夾**

1. 登入AWS 管理主控台，並在 [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. 確認 **Upload (上傳)** 對話方塊中所列的一或多個檔案正確，然後選擇 **Upload (上傳)**。

記下 .rdb 檔案的路徑。例如，如果您的儲存貯體名稱為 `myBucket` 且路徑為 `myFolder/redis.rdb`，請輸入 `myBucket/myFolder/redis.rdb`。您需要此路徑，才能將此備份資料植入新叢集。

如需詳細資訊，請參閱 *Amazon Simple Storage Service 使用者指南*中的[儲存貯體限制與局限](https://docs.aws.amazon.com/AmazonS3/latest/userguide/BucketRestrictions.html)。

## 步驟 4：授予 .rdb 檔案的讀取存取權給 ElastiCache
<a name="backups-seeding-redis-grant-access"></a>

現在，授予 .rdb 備份檔案的讀取存取權給 ElastiCache。您可以根據儲存貯體位於預設AWS區域或選擇加入AWS區域，以不同的方式授予 ElastiCache 對備份檔案的存取權。

AWS 2019 年 3 月 20 日之前推出的區域預設為啟用。您可以立即開始在這些AWS區域中工作。2019 年 3 月 20 日之後推出的區域 (例如亞太區域 (香港) 和 中東 (巴林)) 預設為停用。您必須先啟用或選擇加入這些區域才能使用它們，如 *AWS 一般參考* 中的[管理AWS區域](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html)所說明。

根據您的AWS區域選擇您的方法：
+ 對於預設區域，請使用[授予預設區域中 .rdb 檔案的讀取存取權給 ElastiCache](#backups-seeding-redis-default-region)中的程序。
+ 對於選擇加入區域，請使用[授予 選擇加入區域中 .rdb 檔案的讀取存取權給 ElastiCache](#backups-seeding-opt-in-region)中的程序。

### 授予預設區域中 .rdb 檔案的讀取存取權給 ElastiCache
<a name="backups-seeding-redis-default-region"></a>

AWS 2019 年 3 月 20 日之前推出的區域預設為啟用。您可以立即開始在這些AWS區域中工作。2019 年 3 月 20 日之後推出的區域 (例如亞太區域 (香港) 和 中東 (巴林)) 預設為停用。您必須先啟用或選擇加入這些區域才能使用它們，如 *AWS 一般參考* 中的[管理AWS區域](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html)所說明。

**授予 ElastiCache 預設啟用AWS之 區域中備份檔案的讀取存取權**

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. 如果 **aws-scs-s3-readonly** 或下列清單中的其中一個正式 ID 不會列為使用者，請執行下列動作：

   1. 在**存取其他AWS帳戶**下，選擇**新增承授者**。

   1. 在方塊中，新增AWS區域的正式 ID，如下所示：
      + AWS GovCloud （美國西部） 區域：

        ```
        40fa568277ad703bd160f66ae4f83fc9dfdfd06c2f1b5060ca22442ac3ef8be6
        ```
**重要**  
備份必須位於 中的 S3 儲存貯體中，AWS GovCloud (US)才能下載到 中的 Valkey 或 Redis OSS 叢集AWS GovCloud (US)。
      + AWS預設啟用的區域：

        ```
        540804c33a284a299d2547575ce1010f2312ef3da9b3a053c8bc45bf233e4353
        ```

   1. 針對下列項目選擇 **Yes (是)** 以設定儲存貯體的許可：
      + **列出/寫入物件**
      + **讀取/寫入物件 ACL 許可**

   1. 選擇**儲存**。

1. 選擇 **Overview (概觀)**，然後選擇 **Download (下載)**。

### 授予 選擇加入區域中 .rdb 檔案的讀取存取權給 ElastiCache
<a name="backups-seeding-opt-in-region"></a>

AWS 2019 年 3 月 20 日之前推出的區域預設為啟用。您可以立即開始在這些AWS區域中工作。2019 年 3 月 20 日之後推出的區域 (例如亞太區域 (香港) 和 中東 (巴林)) 預設為停用。您必須先啟用或選擇加入這些區域才能使用它們，如 *AWS 一般參考* 中的[管理AWS區域](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html)所說明。

現在，授予 .rdb 備份檔案的讀取存取權給 ElastiCache。

**授予 ElastiCache 對備份檔案的讀取存取**

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. 更新政策以授予 ElastiCache 執行作業所需的許可：
   + 將 `[ "Service" : "region-full-name.elasticache-snapshot.amazonaws.com" ]` 新增至 `Principal`。
   + 新增下列將快照匯出至 Amazon S3 儲存貯體所需的許可：
     + `"s3:GetObject"`
     + `"s3:ListBucket"`
     + `"s3:GetBucketAcl"`

   以下是已更新政策可能有的外觀範例。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Id": "Policy15397346",
       "Statement": [
           {
               "Sid": "Stmt15399483",
               "Effect": "Allow",
               "Action": [
                   "s3:GetObject",
                   "s3:ListBucket",
                   "s3:GetBucketAcl"
               ],
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket",
                   "arn:aws:s3:::amzn-s3-demo-bucket/backup1.rdb",
                   "arn:aws:s3:::amzn-s3-demo-bucket/backup2.rdb"
               ]
           }
       ]
   }
   ```

------

1. 選擇**儲存變更**。

### 使用 .rdb 檔案資料種子 ElastiCache 叢集
<a name="backups-seeding-redis-seed-cluster"></a>

現在，您已準備好建立 ElastiCache 叢集，並將 .rdb 檔案資料植入其中。若要建立叢集，請依照[為 Valkey 或 Redis OSS 建立叢集](Clusters.Create.md)或[從頭開始建立 Valkey 或 Redis OSS 複寫群組](Replication.CreatingReplGroup.NoExistingCluster.md)中的指示進行。請務必選擇 Valkey 或 Redis OSS 做為叢集引擎。

您用來告訴 ElastiCache 在何處尋找您上傳到 Amazon S3 的備份的方法，取決於您用來建立叢集的方法：

**使用 .rdb 檔案資料種子 ElastiCache for Redis OSS 叢集或複寫群組**
+ **使用 ElastiCache 主控台**

  選取 **Cluster settings** (叢集設定) 時，請選擇 **Restore from backups** (從備份還原) 做為叢集建立方法，然後在 **Backup source** (備份來源) 區段中，選擇 **Other backups** (其他備份) 做為您的 **Source** (來源)。在 **Seed RDB file S3 location (植入 RDB 檔案 S3 位置)** 方塊中，輸入檔案的 Amazon S3 路徑。如果您有多個 .rdb 檔案，請以逗號分隔清單輸入每個檔案的路徑。Amazon S3 路徑看起來像 `myBucket/myFolder/myBackupFilename.rdb`。
+ **使用AWS CLI**

  如果您使用 `create-cache-cluster` 或 `create-replication-group` 操作，請使用參數 `--snapshot-arns` 來指定每個 .rdb 檔案的完整 ARN。例如 `arn:aws:s3:::myBucket/myFolder/myBackupFilename.rdb`。此 ARN 必須解析為您存放在 Amazon S3 中的備份檔案。
+ **使用 ElastiCache API**

  如果您使用 `CreateCacheCluster` 或 `CreateReplicationGroup` ElastiCache API 作業，請使用參數 `SnapshotArns` 來指定每個 .rdb 檔案的完整 ARN。例如 `arn:aws:s3:::myBucket/myFolder/myBackupFilename.rdb`。此 ARN 必須解析為您存放在 Amazon S3 中的備份檔案。

**重要**  
植入 Valkey 或 Redis OSS （啟用叢集模式） 叢集時，您必須在新的叢集或複寫群組中設定每個節點群組 （碎片）。請使用參數 `--node-group-configuration` (API：`NodeGroupConfiguration`) 來執行此操作。如需詳細資訊，請參閱下列內容：  
CLI：AWS CLI參考中的 [create-replication-group](https://docs.aws.amazon.com/cli/latest/reference/elasticache/create-replication-group.html) 
API：「ElastiCache API 參考」中的 [CreateReplicationGroup](https://docs.aws.amazon.com/AmazonElastiCache/latest/APIReference/API_CreateReplicationGroup.html)

在建立叢集的過程中，Valkey 或 Redis OSS 備份中的資料會寫入叢集。您可以檢視 ElastiCache 事件訊息以監控進度。若要執行此操作，請查看 ElastiCache 主控台，並選擇 **Cache Events (快取事件)**。您也可以使用AWS ElastiCache 命令列界面或 ElastiCache API 來取得事件訊息。如需詳細資訊，請參閱[檢視 ElastiCache 事件](ECEvents.Viewing.md)。