目前,我们在 AWS EC2 上托管了大量 ubuntu 服务器。其中许多服务器很少被访问,为了节省成本,我们现在想将这些服务器移至本地站点并在 Amazon 上终止它们。
大多数服务器都由 EBS 支持,我们已经使用管理控制台创建了这些服务器的 AMI 映像。
我希望下载现有的 AMI,然后使用这些图像在本地构建新服务器,这样我们就不必从头开始重新安装应用程序堆栈和配置。1) 这可能吗?2) 如何下载此 AMI?(我希望可以通过管理控制台以某种方式下载。)3) 需要如何更改 AMI 才能将其用于安装?
如何在本地运行 Ubuntu EC2 AMI 映像?似乎给出了答案,但其链接的文章中包含的重要链接已无法访问。它似乎还暗示了一个相当复杂的过程。
https://forums.aws.amazon.com/message.jspa?messageID=204881似乎表明可以做到这一点,但没有解释如何实际下载图像https://stackoverflow.com/questions/5145286/boot-ec2-ebs-volume-locally这表明这是不可能的。
答案1
从我研究的零碎事实来看,这并不容易做到。
到得到镜像,您可以拍摄快照,并将其挂载到正在运行的实例,然后只需使用类似 dd over ssh 的命令将内容复制到本地原始文件即可。然后断开卷与实例的连接,验证您是否已将镜像存储在本地,然后删除 EBS 块。如果您知道如何使用 DD/compression/ssh 传输镜像并将其挂载为本地环回以检查原始磁盘镜像,那么这部分就不太难了。有这方面的教程。
最难的部分是让它启动。根据实例的创建方式,内核通常是精简版的 Xen 内核,因此它们可能缺乏对 VMWare 之类的硬件支持。您必须安装磁盘映像并安装更通用的内核以及修改启动管理器。您还必须解决网络问题,因为 Amazon 对其虚拟网络管理进行了一些调整(DHCP 分配、防火墙、路由)。
这肯定是可能的;有工具和教程可以将您自己的 AMI 上传到 Amazon 云中,但关于如何上传到 Amazon 云的资料并不多。当您弄清楚如何解决配置麻烦时,您可能最好只获取应用程序的依赖项列表,然后传输配置并将依赖项安装为新的本地计算机。
底线...它可能是可能的,有可能在转换中采用另一种方式,但由于涉及麻烦,除非您熟练掌握 Linux 内核和配置的操作,否则您不妨使用您的 EC2 实例作为从下往上重建的模板。