![如何以编程方式将 EC2 EBS AMI 迁移到其他区域?](https://linux22.com/image/572112/%E5%A6%82%E4%BD%95%E4%BB%A5%E7%BC%96%E7%A8%8B%E6%96%B9%E5%BC%8F%E5%B0%86%20EC2%20EBS%20AMI%20%E8%BF%81%E7%A7%BB%E5%88%B0%E5%85%B6%E4%BB%96%E5%8C%BA%E5%9F%9F%EF%BC%9F.png)
在基于 EBS 的 AMI 可用之前,可以使用命令ec2-迁移-镜像以便将 AMI 迁移到不同的区域。
有没有简单的方法可以对基于 EBS 的 AMI 执行相同的操作?要么使用官方的 amazon EC2 API 命令行工具,要么使用类似博托?
答案1
亚马逊尚未提供一个简单的命令行界面来在区域之间复制 EBS 启动 AMI,就像他们对基于 S3 的 AMI 所做的那样。
为了复制 EBS 启动 AMI,您需要在两个区域中启动实例,并使用附加到每个实例的临时 EBS 卷将 EBS 快照从一个区域复制到另一个区域。
我建议使用带有适当选项的 rsync 来复制文件系统,而不是复制块设备,因为这样速度更快并且可以生成更小的快照。
在新区域中创建新的快照后,您将其注册为 AMI,并确保指定与源区域中的匹配的正确架构/AKI/ARI。
我写下了完成所有这些操作所需的具体命令行:
在 EC2 区域之间复制 EBS Boot AMI
http://alestic.com/2010/10/ec2-ami-copy
如果您需要的话,可以将其整合到一个自动化流程中。
答案2
复制图片AWS CLI 命令完全可以满足您的需要
https://docs.aws.amazon.com/cli/latest/reference/appstream/copy-image.html?highlight=image
就这样说吧
copy-image --source-image-name img --destination-image-name img_new --destination-region us-west-1