我在 us-east 上有一个正在运行的实例,我可以连接到它。它是基于 ubuntu 10.10 服务器 AMI 之一的 EBS 卷。
它是通过启动默认图像、自定义图像并将其保存为 AMI 创建的。然后我终止原始图像并运行 AMI 的图像,然后能够连接。
此时我使用了多云脚本“将 ami 复制到不同区域”脚本(在https://cloudyscripts.com/tool/show/5)将其复制到 us-west。此脚本将 EBS
到达那里后,当我运行它时,我无法连接。我尝试以与我在美国东部完全相同的方式连接到它。也就是说,
ssh -i <KEYFILE I USED TO START INSTANCE> ubuntu@<PUBLIC_DNS_NAME>
但这会导致超时并出现错误“文件编号错误”
我回到 us-east 上的原始图像并恢复了它,并且仍然能够连接到它。
该实例在安全组中启动:默认,在两个区域中均按以下方式配置:
协议:tcp 从端口:22 到端口:22 源 CDR 0.0.0.0/0
我真的看不出这两种设置有什么区别 - 两者都是从 AMI 启动的,应该是同一个,但一个可以工作,另一个不行。有什么想法吗?
答案1
亚马逊现在提供了一种将 AMI 从一个区域复制到另一个区域的方法,而无需手动复制 EBS 卷。
可以使用 AWS 管理控制台或任何 SDK 来完成此操作。对于 CLI,请使用aws ec2 copy-image
。
使用此功能代替旧的自定义脚本。
答案2
啊哈,原来是因为内核不匹配导致实例在重启时崩溃了。我通过检查控制台输出发现了这一点。