如何将 AMI 导出到 Amazon S3 存储桶?

1 分钟阅读
0

我想将亚马逊机器映像(AMI)的副本导出到 Amazon Simple Storage Service(Amazon S3)存储桶以供离线修改或存储。

解决方案

**注意:**如果在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI

将 AMI 导出到 Amazon S3 存储桶

要将 AMI 导出到 Amazon S3 存储桶,您必须创建一个存储映像任务。

**先决条件:**您用于运行命令的 AWS Identity and Access Management(IAM)主体必须具有相应的权限。Amazon S3 存储桶策略必须允许 IAM 角色具有将 AMI 上传到存储桶的权限。要创建或编辑 S3 存储桶策略,请参阅使用 Amazon S3 控制台添加存储桶策略

运行 create-store-image-task 命令以原始格式将 AMI 导出到 Amazon S3 存储桶:

aws ec2 create-store-image-task \
    --image-id AMI_ID \
    --bucket BUCKET_NAME

**注意:**将 AMI_ID 替换为您的 AMI ID,将 BUCKET_NAME 替换为您的存储桶的名称。

检查导出任务的进度

导出任务启动后,运行 describe-store-image-tasks 命令来检查任务的状态:

aws ec2 describe-store-image-tasks

从 Amazon S3 下载导出的 AMI

导出完成后,从 Amazon S3 存储桶下载原始映像文件。使用 AWS CLI,或者从 Amazon S3 控制台手动下载相关对象。

要下载导出的 AMI,请运行以下命令:

aws s3 cp s3://my-ami-exports/ami-backups/image.bin ./image.bin

image.bin 原始文件是从名为 my-ami-exports 的存储桶中的 ami-backups 前缀位置导出的。

**注意:**您无法直接修改 AMI。您必须下载原始映像文件,然后进行更改。

从 Amazon S3 还原映像

要将映像从 Amazon S3 还原到您的 Amazon Elastic Compute Cloud(Amazon EC2)实例,请运行 create-restore-image-task 命令:

aws ec2 create-restore-image-task \
--object-key image.bin \
--bucket BUCKET_NAME \
--name "New AMI Name"

**注意:**将 image.bin 替换为您的映像名称,将 BUCKET_NAME 替换为您的存储桶名称。

如果您修改原始映像文件,则将该文件还原为一个新 AMI,以便在您的 AWS 环境中使用。

有关使用案例和限制的信息,请参阅使用 S3 存储和还原 AMI

相关信息

创建存储和还原映像任务

将您的 AMI 设为可在 Amazon EC2 中公开使用

Amazon S3 存储桶策略的示例

AWS 官方
AWS 官方已更新 2 个月前