如何将AMI保存到S3存储桶?

15

我使用Amazon AWS控制台创建了一个EBS AMI(Amazon Machine Image)。该AMI有2个快照附加在其上。 现在我想将该AMI备份到S3存储桶中。这种操作是否可行?

实际上,我需要这样做才能将该AMI移动到另一个地区的存储桶中,并在该不同地区注册该AMI以供使用。

有任何线索吗?

3个回答

5

更新

关于问题本身,我的初步答案仍然适用(请参见下文),但是考虑到您实际上需要这样做才能将该AMI移动到另一个区域,您会很高兴地得知AWS刚刚发布了跨区域EC2 AMI复制以解决这个长期的功能请求:

AMI复制使您能够轻松地在AWS区域之间复制Amazon机器映像。 AMI复制有助于实现几个关键方案,包括:

  • 简单和一致的多区域部署 - 您可以将一个区域的AMI复制到另一个区域,从而可以轻松地基于相同的AMI在不同的区域启动一致的实例。
  • 可扩展性 - 您可以更轻松地设计和构建满足用户需求的全球规模应用程序,而不管他们的位置在哪里。
  • 性能 - 您可以通过分发您的应用程序并将应用程序的关键组件定位在靠近用户的位置来提高性能。您还可以利用特定于区域的功能,例如实例类型或其他AWS服务。
  • 更高的可用性 - 您可以在AWS区域之间设计和部署应用程序以提高可用性。

初始答案

现在我想将该AMI备份到S3存储桶中。这可能吗?

虽然Amazon EBS确实提供创建卷的时间点快照并将其保存到Amazon S3的功能,但此操作超出了您的控制范围,完全由EC2处理,请参阅相关的FAQ(我是否能使用常规的Amazon S3 API访问我的快照?)

否,快照仅通过Amazon EC2 API提供。

您可以按照Eric Hammond详细的文章“在EC2区域之间复制EBS引导AMI”来实现目标,该文章指导您完成所有必需的步骤(需要一些步骤)。


1
除了AMI的复制功能,现在你可以使用AWS CLI将它们导入到S3并从S3中导出。
检查: https://docs.aws.amazon.com/cli/latest/reference/ec2/export-image.html 你可以使用VMDK作为导入/导出格式。
在我的情况下,在导出过程中遇到了一些奇怪的角色相关问题,这个参考here有所帮助。
请注意,您可能需要将S3写入权限添加到您的附加策略中。

1

这不是一个简单的任务。我在许多博客和参考资料中看到过这个网站的引用,但我自己没有使用过。

您可能想尝试CloudScripts,特别是针对您需求的这个脚本:https://cloudyscripts.com/tool/show/4

希望这可以帮到您。


我觉得我需要亲自去做。使用陌生的工具并不能让我从未来的问题中保护自己。老实说,这个问题非常奇怪。你有任何想法 EBS AMI 实例实际上保存在哪里吗?我是指物理位置?使用 ec2-bundle-vol 创建 AMI 时,我可以访问 AMI(以及 Manifest.xml),并将其上传到桶中...但是在创建 AWS 控制台中的 EBS AMI 的情况下,EBS AMI 存储在哪里?它可以备份在 S3 上吗?任何提示都将非常有帮助。 - user1064446

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接