匯出備份 - Amazon ElastiCache (雷迪OSS斯)

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

匯出備份

Amazon ElastiCache 支持將 ElastiCache (Redis OSS)備份導出到 Amazon Simple Storage Service (Amazon S3) 存儲桶,您可以從外部訪問它。 ElastiCache您可以使用 ElastiCache 主控台 AWS CLI、或 ElastiCache API 匯出備份。

如果您需要在另一個 AWS 區域啟動叢集,匯出備份會很有幫助。您可以在一個 AWS 區域中匯出資料,將 .rdb 檔案複製到新的 AWS 區域,然後使用該 .rdb 檔案植入新的快取,而不是等待新叢集透過使用填入。如需植入新叢集的資訊,請參閱使用外部建立的備份植入新的自行設計叢集。您可能想要匯出快取資料的另一個原因是使用 .rdb 檔案進行離線處理。

重要
  • 您要複製到的 ElastiCache 備份和 Amazon S3 儲存貯體必須位於相同 AWS 區域。

    雖然複製到 Amazon S3 儲存貯體的備份已經過加密,但強烈建議您不要授權其他人存取要存放備份的 Amazon S3 儲存貯體。

  • 使用資料分層的叢集不支援將備份匯出到 Amazon S3。如需詳細資訊,請參閱 資料分層

  • 匯出備份適用於 Redis OSS 自行設計的叢集、無伺服器 Redis OSS 和無伺服器記憶體快取。匯出備份不適用於自行設計的 Memcached 叢集。

在將備份匯出到 Amazon S3 儲存貯體之前,您必須在與備份位於相同 AWS 區域的 Amazon S3 儲存貯體。授與值區的 ElastiCache 存取權。前兩個步驟示範如何執行此操作。

步驟 1:建立 Amazon S3 儲存貯體

下列步驟使用 Amazon S3 主控台建立 Amazon S3 儲存貯體,您可以在其中匯出和存放 ElastiCache 備份。

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

  2. 選擇 Create Bucket (建立儲存貯體)。

  3. Create a Bucket - Select a Bucket Name and Region (建立儲存貯體 - 選取儲存貯體名稱和區域) 中,執行下列動作:

    1. Bucket Name (儲存貯體名稱) 中,輸入 Amazon S3 儲存貯體的名稱。

      Amazon S3 儲存貯體的名稱必須具 DNS 合規性。否則,將 ElastiCache 無法訪問您的備份文件。DNS 合規的規則如下:

      • 名稱長度須為 3 到 63 個字元。

      • 名稱必須是一連串一或多個標籤,並以句號 (.) 分隔,其中每個標籤:

        • 以小寫字母或數字開頭。

        • 以小寫字母或數字結尾。

        • 僅包含小寫字母、數字和破折號。

      • 不得使用 IP 地址格式 (例如 192.0.2.0)。

    2. 區域清單中,為您的 Amazon S3 儲存貯體選擇一個 AWS 區域。此 AWS 區域必須與您要匯出的 ElastiCache 備份所在的 AWS 區域相同。

    3. 選擇建立

如需有關建立 Amazon S3 儲存貯體的詳細資訊,請參閱 Amazon Simple Storage Service 使用者指南中的建立儲存貯體

步驟 2:授予對您的 Amazon S3 儲 ElastiCache 存貯體的存取權

為了能 ElastiCache 夠將快照複製到 Amazon S3 儲存貯體,您必須更新儲存貯體政策以授予儲 ElastiCache 存貯體的存取權。

警告

即使複製到 Amazon S3 儲存貯體的備份已經過加密,有權存取 Amazon S3 儲存貯體的所有人還是可以存取您的資料。因此,我們強烈建議您設定 IAM 政策,以防止未經授權存取此 Amazon S3 儲存貯體。如需詳細資訊,請參閱《Amazon S3 使用者指南》中的管理存取權

若要在 Amazon S3 儲存貯體上建立適當許可,請執行下列步驟。

授與 S3 儲 ElastiCache 存貯體的存取權
  1. 登入 AWS Management Console 並開啟 Amazon S3 主控台,網址為 https://console.aws.amazon.com/s3/

  2. 選擇您要複製備份的目的地 Amazon S3 儲存貯體名稱。這應該是您在步驟 1:建立 Amazon S3 儲存貯體中建立的 S3 儲存貯體。

  3. 選擇 Permissions (許可) 標籤,然後在 Permissions (許可) 中,選擇 Access control list (ACL) (存取控制清單 (ACL)),接著選擇 Edit (編輯)。

  4. 透過下列選項,新增承授者正規 ID 540804c33a284a299d2547575ce1010f2312ef3da9b3a053c8bc45bf233e4353

    • Objects (物件):List (列出)、Write (寫入)

    • Bucket ACL (儲存貯體 ACL):Read (讀取)、Write (寫入)

      注意
      • 對於 PDT GovCloud 區域,規範識別碼為。40fa568277ad703bd160f66ae4f83fc9dfdfd06c2f1b5060ca22442ac3ef8be6

      • 對於 OSU GovCloud 地區,規範 ID 為。c54286759d2a83da9c480405349819c993557275cf37d820d514b42da6893f5c

  5. 選擇儲存

步驟 3:匯出 ElastiCache 備份

現在,您已建立 S3 儲存貯體並授與存取它的 ElastiCache 權限。接下來,您可以使用 ElastiCache 控制台、 AWS CLI 或 ElastiCache API 將快照匯出到其中。以下範例假設發起者的 IAM 身分具有下列額外 S3 特定 IAM 許可。

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

針對選擇加入區域,以下是 S3 儲存貯體已更新政策可能有的外觀範例。(以下範例使用亞太區域 (香港) 區域。)

{ "Version": "2012-10-17", "Id": "Policy15397346", "Statement": [ { "Sid": "Stmt15399483", "Effect": "Allow", "Principal": { "Service": "elasticache.amazonaws.com" }, "Action": "s3:*", "Resource": [ "arn:aws:s3:::hkg-elasticache-backup", "arn:aws:s3:::hkg-elasticache-backup/*" ] }, { "Sid": "Stmt15399484", "Effect": "Allow", "Principal": { "Service": "ap-east-1.elasticache-snapshot.amazonaws.com" }, "Action": "s3:*", "Resource": [ "arn:aws:s3:::hkg-elasticache-backup", "arn:aws:s3:::hkg-elasticache-backup/*" ] } ] }

下列步驟使用主 ElastiCache 控台將備份匯出到 Amazon S3 儲存貯體,以便您可以從外部存取備份 ElastiCache。Amazon S3 儲存貯體必須與 ElastiCache 備份位於相同的 AWS 區域。

將 ElastiCache 備份匯出到 Amazon S3 儲存貯體
  1. 請登入 AWS Management Console 並開啟 ElastiCache 主控台,網址為 https://console.aws.amazon.com/elasticache/

  2. 若要查看您的備份清單,請從左側導覽窗格,選擇 Backups (備份)

  3. 從備份清單,選擇您要匯出之備份名稱左側的方塊。

  4. 請選擇 Copy (複製)。

  5. Create a Copy of the Backup? (是否建立備份複本?) 中,執行下列動作:

    1. New backup name (新的備份名稱) 方塊中,輸入新的備份名稱。

      該名稱必須介於 1 到 1,000 個字元之間,而且能夠以 UTF-8 編碼。

      ElastiCache 會新增執行個體識別碼,.rdb以及您在此輸入的值。例如,如果您輸入 my-exported-backup, ElastiCache 會建立 my-exported-backup-0001.rdb

    2. Target S3 Location (目標 S3 位置) 清單中,選擇您要複製備份的目的地 Amazon S3 儲存貯體名稱 (您在 步驟 1:建立 Amazon S3 儲存貯體 中建立的儲存貯體)。

      目標 S3 位置必須是備份 AWS 區域中具有以下許可的 Amazon S3 儲存貯體,匯出程序才能成功。

      • 物件存取權 - Read (讀取)Write (寫入)

      • 許可存取權 - Read (讀取)

      如需詳細資訊,請參閱 步驟 2:授予對您的 Amazon S3 儲 ElastiCache 存貯體的存取權

    3. 請選擇 Copy (複製)。

注意

如果您的 S3 儲存貯體沒有將備份匯出 ElastiCache 到該儲存貯體所需的許可,您會收到下列其中一個錯誤訊息。請返回步驟 2:授予對您的 Amazon S3 儲 ElastiCache 存貯體的存取權,新增指定的許可並重新嘗試匯出您的備份。

  • ElastiCache 尚未被授與 S3 儲存貯體上的讀取權限 %s。

    解決方式:新增儲存貯體的 Read (讀取) 許可。

  • ElastiCache 尚未被授與 S3 儲存貯體上的寫入權限 %s。

    解決方式:新增儲存貯體的 Write (寫入) 許可。

  • ElastiCache 尚未被授與 S3 儲存貯體上的讀取 ACP 權限 %s。

    解決方式:新增儲存貯體的 Read (讀取) 許可存取。

如果要將備份複製到另一個 AWS 區域,請使用 Amazon S3 複製備份。如需詳細資訊,請參閱 Amazon Simple Storage Service 使用者指南中的複製物件

匯出無伺服器快取的備份

使用 export-serverless-cache-snapshot CLI 作業並指定下列參數,將備份匯出到 Amazon S3 儲存貯體:

參數
  • --serverless-cache-snapshot-name - 要複製的備份名稱。

  • --s3-bucket-name - 您要匯出備份的 Amazon S3 儲存貯體名稱。系統會在指定的儲存貯體中建立一個備份複本。

    --s3-bucket-name必須是備份 AWS 區域中具有下列許可的 Amazon S3 儲存貯體,匯出程序才能成功。

    • 物件存取權 - Read (讀取)Write (寫入)

    • 許可存取權 - Read (讀取)

下列操作會將備份複製到 my-s3-bucket。

若為 Linux、macOS 或 Unix:

aws elasticache export-serverless-cache-snapshot \ --serverless-cache-snapshot-name automatic.my-redis-2023-11-27 \ --s3-bucket-name my-s3-bucket

針對 Windows:

aws elasticache export-serverless-cache-snapshot ^ --serverless-cache-snapshot-name automatic.my-redis-2023-11-27 ^ --s3-bucket-name my-s3-bucket

匯出自行設計叢集的備份

使用 copy-snapshot CLI 作業並指定下列參數,將備份匯出到 Amazon S3 儲存貯體:

參數
  • --source-snapshot-name - 要複製的備份名稱。

  • --target-snapshot-name - 備份的複本名稱。

    該名稱必須介於 1 到 1,000 個字元之間,而且能夠以 UTF-8 編碼。

    ElastiCache 會新增執行個體識別碼,.rdb以及您在此輸入的值。例如,如果您輸入 my-exported-backup, ElastiCache 會建立 my-exported-backup-0001.rdb

  • --target-bucket - 您要匯出備份的 Amazon S3 儲存貯體名稱。系統會在指定的儲存貯體中建立一個備份複本。

    --target-bucket必須是備份 AWS 區域中具有下列許可的 Amazon S3 儲存貯體,匯出程序才能成功。

    • 物件存取權 - Read (讀取)Write (寫入)

    • 許可存取權 - Read (讀取)

    如需詳細資訊,請參閱 步驟 2:授予對您的 Amazon S3 儲 ElastiCache 存貯體的存取權

下列操作會將備份複製到 my-s3-bucket。

若為 Linux、macOS 或 Unix:

aws elasticache copy-snapshot \ --source-snapshot-name automatic.my-redis-primary-2016-06-27-03-15 \ --target-snapshot-name my-exported-backup \ --target-bucket my-s3-bucket

針對 Windows:

aws elasticache copy-snapshot ^ --source-snapshot-name automatic.my-redis-primary-2016-06-27-03-15 ^ --target-snapshot-name my-exported-backup ^ --target-bucket my-s3-bucket