如何以编程方式将 EC2 EBS AMI 迁移到其他区域?

Tom*_*ner 5 amazon-ec2 amazon-ebs amazon-web-services

在基于 EBS 的 AMI 可用之前,可以使用命令ec2-migrate-image将 AMI 迁移到不同的区域。

是否有一种简单的方法可以对基于 EBS 的 AMI 执行相同操作?使用官方的亚马逊 EC2 API 命令行工具还是使用像boto这样的库?

Eri*_*ond 7

Amazon 没有提供简单的命令行界面来在区域之间复制 EBS 启动 AMI,就像他们使用基于 S3 的 AMI 所做的那样。

为了复制 EBS 启动 AMI,您需要在两个区域中启动实例,并使用附加到每个实例的临时 EBS 卷将 EBS 快照从一个区域复制到另一个区域。

我建议使用rsync具有适当的选项来复制文件系统,而不是复制块设备,因为这更快,应导致更小的快照。

在新区域中创建新快照后,将其注册为 AMI,确保指定与源区域中的架构/AKI/ARI 匹配的正确架构/AKI/ARI。

我已经编写了完成所有这些所需的特定命令行:

在 EC2 区域之间复制 EBS 启动 AMI
http://alestic.com/2010/10/ec2-ami-copy

如果您需要,可以将其整合到一个自动化流程中。