如何克隆正在运行的 EBS 支持的 AMI

如何克隆正在运行的 EBS 支持的 AMI

基本上,我正在尝试启动一个 Amazon 微实例,安装 Java、Tomcat、MySQL 和其他一些东西,然后保存该实例的快照,以便以后可以启动许多类似的实例。

经过多次尝试,我省去了软件安装过程,只需克隆正在运行的 EBS 支持的 AMI。以下是我所做的:

  • 选择 EBS 支持的 AMI(我已经完成了 Ubuntu ami-fd589594 和 Debian ami-1212ef7b)并作为微实例启动
  • 使用我的安全组和密钥成功完成 SSH
  • 转到 EBS 选项卡并右键单击 AMI EBS 并创建 EBS 的快照
  • 从快照创建图像
  • 使用相同的安全组和密钥启动上面创建的图像(作为微实例)
  • 尝试通过 ssh 访问它,但...无法连接!

我一直没有成功,很多时候 syslog 都是空的。

我错过了什么?

答案1

您没有提供有关如何“从快照中创建图像”的具体细节,但根据我所看到的内容,我猜测您可能没有指定正确的 AKI 或 ARI。

如果您从 EBS 根卷的快照创建映像,则需要指定要与新 AMI 一起使用的 AKI(内核)。只需使用原始 AMI 使用的相同内核即可。如果原始 AMI 使用 ARI(ramdisk),也请指定该内核。

或者...

您无需分步执行快照和 AMI 注册,只需使用ec2-create-image命令/API 一次性完成所有操作即可。右键单击实例列表时,EC2 控制台中的菜单项“创建映像 (EBS AMI)”中也提供了此功能。请注意,这将暂时停止实例以确保快照一致。

以下是我运行上述 Ubuntu AMI、在实例上执行创建新 AMI 的操作并运行新 AMI 实例的会话日志ec2-create-snapshot。我能够顺利通过 SSH 登录到新 AMI 的新实例。

$ ec2-run-instances --key $USER --instance-type t1.micro ami-fd589594
RESERVATION r-12ea647c  XXX default
INSTANCE    i-50b5a230  ami-fd589594            pending XXX 0   t1.micro    2011-10-19T07:26:37+0000    us-east-1d  aki-427d952b    monitoring-disabled                 ebs         paravirtual xen     sg-XXX  default

$ ec2-create-image -n "test AMI $(date +%Y%m%d-%H%M)" i-50b5a230
IMAGE   ami-4bbc7322

$ ec2-run-instances --key $USER --instance-type t1.micro  ami-4bbc7322
RESERVATION r-66e66808  XXX default
INSTANCE    i-f2b1a692  ami-4bbc7322            pending XXX 0   t1.micro    2011-10-19T07:32:37+0000    us-east-1a  aki-427d952b    monitoring-disabled                 ebs         paravirtual xen     sg-XXX  default

$ ssh [email protected]
[...]
ubuntu@domU-12-31-39-0C-08-75:~$ 

注意:为了避免必须-i KEYPAIR.pem在 ssh 命令中指定,我按照我在此处写的说明将我的个人 ssh 密钥上传到 EC2:

将个人 ssh 密钥上传到 Amazon EC2
http://alestic.com/2010/10/ec2-ssh-keys

相关内容