如何將我的 Amazon EBS 快照資料複製至 Amazon S3,並為 S3 中的自訂資料建立 EBS 磁碟區?
上次更新日期:2022 年 11 月 29 日
我想將 Amazon Elastic Block Store (Amazon EBS) 快照複製至我的 Amazon Simple Storage Service (Amazon S3) 儲存貯體。我還想從儲存於 S3 儲存貯體中的資料建立 Amazon EBS 磁碟區。但是,我不知道怎麼做。
簡短說明
當您建立 EBS 快照時,其會自動儲存於 Amazon Web Services (AWS) 所管理的 Amazon S3 儲存貯體中。您可在相同 AWS 區域內或從一個區域複製快照至另一個區域。但是,您無法將快照複製至您管理的 S3 儲存貯體。
如要儲存不常存取的快照,請考慮使用 Amazon EBS 快照封存。但是,若您仍然想要使用 Amazon S3 來儲存快照,則可使用下列因應措施。
解決方式
注意:如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤,請確保您使用的是最新版本的 AWS CLI。
您可從快照建立磁碟區,將快照的內容複製至 S3 儲存貯體。將磁碟區掛載至 Amazon Elastic Compute Cloud (Amazon EC2) Linux 執行個體。然後,使用 AWS CLI 或 S3 API,將資料複製至您的 S3 儲存貯體。
如要將 EBS 快照的內容複製至 Amazon S3 儲存貯體,請依照下列步驟執行:
1. 從快照建立 EBS 磁碟區。
2. 在與您所建立磁碟區相同的可用區域中,啟動 EC2 Linux 執行個體。
3. 將磁碟區附加至執行個體。
4. 連結至 Linux 執行個體。
5. 在 Linux 執行個體上安裝 AWS CLI。
6. 執行下列命令,以將磁碟區掛載至您的執行個體:
$ sudo mount /dev/xvdf /mnt
注意:裝置 (於上述範例中為 /dev/xvdf) 可能會連結至具有不同裝置名稱的執行個體。使用 lsblk 命令來檢視可用的磁碟裝置及其掛載點,以決定正確的裝置名稱。
7. 安裝 pv 封裝以監控 tar 封存建立期間的進度:
Amazon Linux 和 Red Hat Enterprise Linux (RHEL) 發行版
$ sudo yum install pv
注意:在安裝適用於 Amazon Linux 和 RHEL 發行版的 pv 封裝之前,您必須先開啟 Extra Packages for Enterprise Linux (EPEL) 儲存庫。請參閱如何為執行 CentOS、RHEL 或 Amazon Linux 的 Amazon EC2 執行個體開啟 EPEL 儲存庫?
Ubuntu 和 Debian 型的發行版
$ sudo apt install pv
8. 執行下列命令,以將 EBS 磁碟區資料複製至 S3 儲存貯體:
$ tar c /mnt | pv -s $(($(du -sk /mnt | awk '{print $1}') * 1024)) | gzip | aws s3 cp - "s3://my-bucket/backup1.tar.gz"
注意:上述命令會從 /mnt 目錄建立壓縮檔案,並將檔案上傳至名為 my-bucket 的 S3 儲存貯體。以你的 S3 儲存貯體名稱取代 my-bucket,然後以你的檔案名稱取帶 backup1。
9. 使用 Amazon S3 主控台來確認壓縮檔案已上傳至 S3 儲存貯體。
10. 執行下列命令,以卸載磁碟區:
$ sudo umount /mnt