注意:我也在EC2论坛上提过这个问题,但在那里没有收到任何的爱。 希望ServerFault社区将会更加棒。
新的悉尼AWS区域开放是我们已经等待了很长一段时间,但我们从北加利福尼亚迁移我们的实例有很多麻烦。
我设法通过使用CloudyScripts迁移1个实例来移动快照,然后在悉尼地区启动一个新实例。 这是一个非常新的实例,所以源和目的地都运行在Ubuntu 12.04 LTS服务器上,而且我没有任何问题。
然而,我们其余的实例都是Ubuntu 10.04 LTS,并且有了这些,我遇到了很多问题。
我试过以下内容:
1-遵循AWS白皮书关于移动实例的信息,该实例是在悉尼最近的客户鉴赏日发布的新区域发布的。
这个方法的问题是在这里注册图像的最后一步(步骤19):ec2-register -s snap-0f62ec3f -n“Wombat”-d“migrated Wombat”–region ap-southeast-2 -a x86_64 –kernel aki-937e2ed6 –block-device-mapping“/ dev / sdk = ephemeral0”
我不断收到此错误:Client.InvalidAMIID.NotFound:AMI ID'ami-937e2ed6'不存在,我认为是由于kernel_id不存在悉尼地区?
2-使用CloudyScripts移动快照,然后创build一个新卷,并附加到悉尼的一个新实例
这导致实例挂在引导上,并且状态检查失败。 我无法SSHlogin或查看服务器日志
我怀疑我的问题是在新的区域find正确的kernel_id卷。 然而,我似乎无法解决如何去寻找这个kernel_id,我试过(从原始实例)不会导致Client.InvalidAMIID.NotFound:AMI ID'ami-937e2ed6'错误而任何其他的kernel_id都不会启动。
我已经尝试了Ubuntu的12.04和10.04版本。 似乎没有什么工作,我已经撞了一会儿墙头,现在请帮助!
新(破)实例i-a1acda9b ami-9b8611a1 aki-31990e0b
源实例i-08a6664e ami-b37e2ef6 aki-937e2ed6
ps我也尝试按照这个指南在迁移之前更新我的Ubuntu LTS版本到12.04,但它似乎也没有工作,仍然卡住更新kernel_id http://ubuntu-smoser.blogspot.com.au/ 2010/04 /升级-EBS-instance.html
当您指定不存在的内核ID时,ec2-register会错误地报告“Client.InvalidAMIID.NotFound”错误。 这是AWS工具中的一个错误。
要识别正确的内核ID,请尽可能地从目标区域中与源AMI匹配的AMI中启动一个新实例。 在你的例子中,启动一个基于Ubuntu 10.04 LTS AMI的实例。 一旦该实例正在运行,您可以看到该实例使用了哪个内核ID和Ramdisk ID(如果有的话)。 然后您可以使用相同的内核ID和Randisk ID(如果有的话)。
是的,这是AWS令人讨厌的function之一:AMI不能从区域到区域移植。 不幸的是,它们不兼容基础设施。
但是,至less有一家公司已经将EC2实例迁移转化为服务。 Ylastic提供“EBS linux AMI的单点迁移和区域之间的快照”。 上个月我使用了这个服务一小段时间,当时我帮助一个朋友把一个实例从我们东1迁移到我们西2。 手动迁移变得非常麻烦,于是我决定尝试一下这个服务,并且它工作正常。
Ylastic代表您自动假脱机实例进行工作,这可能需要一段时间才能完成。 他们基本上将数据添加到新区域中的临时实例,并为您创build一个新快照,用于启动该区域中的实例。 然后清理完毕,终止用于传输的资源。
但是,策略上最好能够自动创build任何地区所需的实例configuration。 我们通过厨师食谱来做到这一点,所以我们可以在任何地区为我们的应用程序兼容AMI的随时可用。 唯一的麻烦是跟踪在哪个区域使用哪个AMI和内核。 但是,一旦你有一套可以在任何地方使用的食谱,你不必担心再次迁移实例。