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

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

有一个简单的方法来做基于EBS的AMI相同吗? 要么使用官方的亚马逊EC2 API命令行工具,要么使用像boto这样的库?

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

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

我build议使用带有相应选项的rsync来复制文件系统,而不是复制块设备,因为这样做速度更快,而且应该导致更小的快照。

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

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

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

如果这是您所需要的,可以将它们放在一个自动化的过程中。