如何将图像传输到Amazon EBS卷以使用EC2?

问题描述:

我有一个本地文件系统映像,我想将其转移到Amazon EBS卷并作为EC2微型实例引导。该实例应该具有EBS卷,因为它是根文件系统 - 我将使用Amazon PV-GRUB“内核”引导实例。如何将图像传输到Amazon EBS卷以使用EC2?

我已经使用ec2-bundle-image从映像创建捆绑包,并且我已经使用ec2-upload-bundle将捆绑包上传到Amazon S3。但是,现在当我想使用ec2-register来注册图像以供使用时,我似乎无法找到一种方法使上传的捆绑包成为ebs根图像。看起来它需要一个EBS快照才能生成根设备,我不知道如何将该包转换为EBS快照。

我意识到,我可以通过启动一个“常用”实例,将EBS卷附加到它然后使用'scp'或其他东西将图像直接传输到EBS卷来做到这一点 - 但这是真的是唯一的方法?另外,我不想使用EBS快照,因为我宁愿没有 - 我可以创建一个只有EBS卷为root的微型实例,而不需要EBS快照?

没有找到任何办法做到这一点:(

所以,我创建了一个新的实例,连接新创建EBS卷,它连接到该实例,并通过ssh传输的数据。

然后,为了能够启动卷,我仍然需要创建它的快照,然后创建一个使用快照的AMI - 因此,我得到另一个 EBS卷,它是从快照创建的,并且是正在运行的实例的根卷。

现在,如果我想最小化费用,我可以删除创建的快照和原始EBS卷。

注意:如果EBS卷的唯一副本是实例的根卷,则在实例终止时可能会删除它。可以使用命令行工具更改此设置 - 或者实例可以通过“停止”而非“终止”来简化,然后可以从EBS卷生成快照。在拍摄快照后,实例可以被终止。

是的,没有办法通过S3上传EBS图像,并且使用附加额外音量的实例是最好的方法。如果您在实例启动后附加了该卷,则该卷也不会被删除。

请注意,不要过于担心卷 - >快照 - >卷,因为那些共享相同的数据块(只要你不修改它们)。存储成本不会受到影响,只有一倍的容量。在这方面,EBS快照和图像创建非常方便。不要犹豫,使用多个快照。如果您将其作为AMI启动,则其在快照中的“工作”越少,其后面的块使用率就越小。