如何将我的 Amazon EBS 快照数据复制到 Amazon S3 并为 S3 中的自定义数据创建 EBS 卷?

2 分钟阅读
0

我想要将 Amazon Elastic Block Store(Amazon EBS)快照复制到我的 Amazon Simple Storage Service(Amazon S3)桶。我还想根据存储在我的 S3 桶中的数据创建 Amazon EBS 卷。

简短描述

创建 EBS 快照时,它将自动存储在 AWS 管理的 Amazon S3 桶中。可在同一 AWS 区域内复制快照,也可以将快照从一个区域复制到另一个区域。但是,无法将快照复制到您管理的 S3 桶。

若要存储不经常访问的快照,请考虑使用 Amazon EBS 快照归档。但是,如果您仍然希望使用 Amazon S3 来存储快照,则可以使用以下解决方法。

解决方法

**注意:**如果在运行 AWS 命令行界面(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.    授予 Amazon EC2 实例访问您的 Amazon S3 桶的权限

7.    运行以下命令将卷装载到您的实例:

$ sudo mount /dev/xvdf /mnt

**注意:**设备(在前面的示例中为 /dev/xvdf)可能使用不同的设备名称连接到实例。使用 lsblk 命令查看可用的磁盘设备及其装载点,以确定正确的设备名称。

8.    安装 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

9.    运行以下命令,将 EBS 卷数据复制到 S3 桶:

$ tar c /mnt | pv -s $(($(du -sk /mnt | awk '{print $1}') \\\* 1024)) | gzip | aws s3 cp - "s3://my-bucket/backup1.tar.gz"

**注意:**将 my-bucket 替换为 S3 桶名称,将 backup1 替换为文件名。

此命令从 /mnt 目录创建压缩文件,并将该文件上传到名为 my-bucket 的 S3 桶。

10.   使用 Amazon S3 控制台确认压缩文件已上传到 S3 桶。

11.    运行以下命令以卸载该卷:

$ sudo umount /mnt

12.  将 EBS 卷与 Linux 实例分离

13.  删除卷终止实例

相关信息

复制 Amazon EBS 快照

如何授予我的 Amazon EC2 实例访问 Amazon S3 桶的权限?

AWS 官方
AWS 官方已更新 9 个月前
没有评论