使用外部建立的快照植入新叢集 - Amazon MemoryDB for Redis

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

使用外部建立的快照植入新叢集

當您建立新的 MemoryDB 叢集時,您可以使用 Redis .rdb 快照集檔案中的資料植入叢集。

若要從 MemoryDB 快照集或 Redis 快照集植入新的記憶體資料庫叢集, ElastiCache 請參閱。從快照還原

當您使用 Redis .rdb 檔案植入新的 MemoryDB 叢集時,您可以執行下列動作:

  • 指定新叢集中的碎片數目。此數目可以與叢集中用來建立快照檔案的碎片數目不同。

  • 為新叢集指定不同的節點類型 — 大於或小於建立快照的叢集中使用的節點類型。若要縮減為更小的節點類型,請確定新的節點類型有足夠的記憶體,可供您的資料和 Redis 額外負荷使用。

重要
  • 您必須確保快照資料不會超過節點的資源。

    如果快照太大,則產生的叢集狀態為restore-failed。如果發生此情況,您必須刪除叢集並重新開始。

    如需節點類型與規格的完整清單,請參閱內存數據庫節點類型的特定參數

  • 您只能對使用 Amazon S3 伺服器端加密 (SSE-S3) 的 Redis .rdb 檔案進行加密。如需詳細資訊,請參閱使用伺服器端加密保護資料

第 1 步:在外部集群上創建 Redis 快照

若要建立快照以植入您的 MemoryDB 叢集
  1. 連線到您現有的 Redis 執行個體。

  2. 運行 Redis 的BGSAVESAVE操作來創建一個快照。記下您的 .rdb 檔案位置。

    BGSAVE 是非同步的,不會封鎖其他用戶端的處理。如需詳細資訊,請參閱 Redis 網站上的 BGSAVE

    SAVE 是同步的,並會封鎖其他處理序直到完成為止。如需詳細資訊,請參閱 Redis 網站上的 SAVE

如需有關建立快照的其他資訊,請參閱 Redis 網站上的 Redis 持續性

步驟 2:建立 Amazon S3 儲存貯體和資料夾

建立快照檔案後,您需要將其上傳到 Amazon S3 儲存貯體內的資料夾。若要執行此操作,您必須先擁有 Amazon S3 儲存貯體,且該儲存貯體中有資料夾。如果您已有具備適當許可的 Amazon S3 儲存貯體和資料夾,您可以跳到「步驟 3:將您的快照上傳到 Amazon S3」。

建立 Amazon S3 儲存貯體
  1. 登入 AWS Management Console 並開啟 Amazon S3 主控台,網址為 https://console.aws.amazon.com/s3/

  2. 依照 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 儲存貯體中新增資料夾
  1. 登入 AWS Management Console 並開啟 Amazon S3 主控台,網址為 https://console.aws.amazon.com/s3/

  2. 選擇您要上傳 .rdb 檔案的目的地儲存貯體名稱。

  3. 選擇 Create folder (建立資料夾)。

  4. 輸入您的新資料夾名稱。

  5. 選擇儲存

    記下儲存貯體名稱和資料夾名稱。

步驟 3:將您的快照上傳到 Amazon S3

現在,上傳您在第 1 步:在外部集群上創建 Redis 快照中建立的 .rdb 檔案 上傳到在 步驟 2:建立 Amazon S3 儲存貯體和資料夾 中建立的 Amazon S3 儲存貯體和資料夾。如需有關此工作的詳細資訊,請參閱上載物件。在步驟 2 到 3 之間,選擇您已建立的資料夾名稱。

將 .rdb 檔案上傳到 Amazon S3 資料夾
  1. 登入 AWS Management Console 並開啟 Amazon S3 主控台,網址為 https://console.aws.amazon.com/s3/

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

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

  4. 選擇上傳

  5. 選擇 Add files (新增檔案)

  6. 瀏覽至您要上傳的一或多個檔案,然後選擇一或多個檔案。若要選擇多個檔案,請按住 Ctrl 鍵並選擇每個檔案名稱。

  7. 選擇 Open (開啟)。

  8. 確認 [傳] 頁面中列出的檔案正確無誤,然後選擇 [上傳]。

記下 .rdb 檔案的路徑。例如,如果您的儲存貯體名稱為 myBucket 且路徑為 myFolder/redis.rdb,請輸入 myBucket/myFolder/redis.rdb。您需要此路徑才能使用此快照中的資料植入新叢集。

如需其他資訊,請參閱 Amazon 簡單儲存服務使用者指南中的儲存貯體命名規則

步驟 4:授與 .rdb 檔案的記憶體讀取存取權

AWS 2019 年 3 月 20 日之前引入的區域預設為啟用狀態。您可以立即開始在這些 AWS 區域中工作。2019 年 3 月 20 日之後引入的區域預設為停用狀態。您必須先啟用或選擇加入這些區域,才能使用這些區域,如管理 AWS 區域中所述。

授與 .rdb 檔案的記憶體資料庫讀取存取權

若要將 MemoryDB 讀取存取權授與快照檔
  1. 登入 AWS Management Console 並開啟 Amazon S3 主控台,網址為 https://console.aws.amazon.com/s3/

  2. 選擇包含您 .rdb 檔案的 S3 儲存貯體名稱。

  3. 選擇包含您 .rdb 檔案的資料夾名稱。

  4. 選擇 .rdb 快照檔案的名稱。所選檔案的名稱將會顯示在頁面頂端的標籤上方。

  5. 選擇許可索引標籤標籤。

  6. Permissions (許可) 中,選擇 Bucket policy (儲存貯體政策),然後選擇 Edit (編輯)。

  7. 更新政策以授予 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" ] } ] }
  8. 選擇儲存

第 5 步:使用 .rdb 文件數據種子內存數據庫集群

現在您已經準備好建立 MemoryDB 叢集,並使用 .rdb 檔案中的資料植入叢集。若要建立叢集,請遵循中的指示建立記憶體資料庫叢集

您用來告訴 MemoryDB 在哪裡可以找到您上傳到 Amazon S3 的 Redis 快照的方法取決於您用來建立叢集的方法:

使用 .rdb 檔案資料植入記憶體資料庫叢集
  • 使用記憶體資料庫主控台

    選擇 Redis 引擎之後,展開 Advanced Redis settings (進階 Redis 設定) 區段,並找到 Import data to cluster (將資料匯入叢集)。在 Seed RDB file S3 location (植入 RDB 檔案 S3 位置) 方塊中,輸入檔案的 Amazon S3 路徑。如果您有多個 .rdb 檔案,請以逗號分隔清單輸入每個檔案的路徑。Amazon S3 路徑看起來像 myBucket/myFolder/myBackupFilename.rdb

  • 使用 AWS CLI

    如果您使用 create-clustercreate-cluster 操作,請使用參數 --snapshot-arns 來指定每個 .rdb 檔案的完整 ARN。例如 arn:aws:s3:::myBucket/myFolder/myBackupFilename.rdb。ARN 必須解析為您存放在 Amazon S3 中的快照檔案。

  • 使用記憶體資料庫 API

    如果您使用CreateClusterCreateCluster MemoryDB API 作業,請使用參數SnapshotArns為每個 .rdb 檔案指定完整的 ARN。例如 arn:aws:s3:::myBucket/myFolder/myBackupFilename.rdb。ARN 必須解析為您存放在 Amazon S3 中的快照檔案。

在建立叢集的過程中,快照中的資料會寫入叢集。您可以透過檢視 MemoryDB 事件訊息來監視進度。若要這麼做,請參閱 MemoryDB 主控台並選擇事件。您也可以使用 AWS MemoryDB 命令列介面或記憶體資料庫 API 來取得事件訊息。