我正在尝试自定义现有的 Debian Jessie HVM AMI(ami-116d857a)并将其存储为我的私有 AMI。虽然 AMI 创建过程成功,但我无法从中启动。实例显示已启动,但我无法通过 ssh 连接,监控也显示 ssh 连接不可用。我发现其他任何 HVM AMI 都存在同样的问题。如果是 PVM AMI,同样的过程可以完美运行。
以下是我遵循的程序
- 从可用的 AMI 启动。
- 从包管理器安装附加包。
- 安装npm模块。(上一步已经安装nodejs和npm)
- 安装所有可用的系统升级。
- 下载并解压 /opt 中的 ec2-ami-tools。
- SCP 私钥和证书到实例。
使用以下命令创建实例的映像
/opt/ec2-ami-tools-1.5.7/bin/ec2-bundle-vol -c /home/admin/cert.pem -k /home/admin/pk.pem -u $aws_account_id -p $image_prefix -B ami=sda,root=/dev/sda1 --batch --debug
然后将其上传到现有的 S3 存储桶
/opt/ec2-ami-tools-1.5.7/bin/ec2-upload-bundle -b my-ami-images -m /mnt/$image_prefix.manifest.xml -a $access_key -s $access_secret --retry --de bug
最后注册 AMI
aws ec2 注册映像 --name $image_prefix --image-location my-ami-images/$image_prefix.manifest.xml --region us-east-1 --virtualization-type hvm --root-device-name /dev/xvda1
所有这些步骤都顺利进行,没有任何错误,我可以在我的帐户中看到列出的 AMI,其中根设备作为实例存储,虚拟化类型为 HVM。
答案1
您当前的 AMI 创建过程是创建 S3 支持的(实例存储)AMI 映像。但您的源 AMI 是 EBS 支持的 AMI。您需要使用其他方法来创建 AMI,这将创建 EBS 支持的 AMI。
不要捆绑实例并注册 AMI,请执行以下操作:
- 停止您的 EC2 实例。
- 使用 AWS 管理控制台,选择您的 EC2 实例,然后从操作菜单中选择“创建映像”。这将创建一个 EBS 支持的 AMI 映像。
有关创建 EBS 支持的 AMI 映像的更多信息,请参见此处: