2

抱歉,如果这应该从文档中很容易理解,但我没有 - 如果我使用一个容易获得的 Ubuntu EBS-boot AMI 启动 EC2 实例,安装一堆东西并在“/”下移动一些文件",然后我使用 创建一个 Instance-Store AMI ec2-bundle-vol,实际驻留在安装在 "/" 的 EBS 卷上的数据是否会进入 AMI?

考虑到从用户的角度来看,我希望在我的自定义 AMI 的未来启动中在“/”下找到与原始实例中相同的内容。Amazon 拍摄“/”文件夹的快照以创建我的 AMI 也是有意义的(否则,拍摄什么快照?!),即使 AMI 本身是基于实例存储的,而原始实例得到 EBS 的支持。

请帮助我理解这一点。

我指的是:http:
//docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-snapshot-s3-linux.html
http://docs.aws.amazon.com/AWSEC2/latest/命令行参考/CLTRG-ami-bundle-vol.html

谢谢。

4

1 回答 1

1

是的,驻留在根卷上的 EBS 卷上的数据将进入 AMI。

来自 AWS 文档:“默认情况下,AMI 捆绑过程会在 /tmp 目录中创建一个压缩的加密文件集合,这些文件代表您的根卷。” http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-instance-store.html

它当然会排除私钥和 bash 历史记录......除非您使用 --no-filter 选项:http ://docs.aws.amazon.com/AWSEC2/latest/CommandLineReference/CLTRG-ami-bundle-vol .html

转换程序:

它基本上是创建需要遵循的实例存储支持的 AMI 的过程。不过,您必须在注册 AMI 时指明兼容的内核。

  1. 在要转换的实例上设置 EC2 CLI 工具(如果尚未安装)

  2. 获得 X.509 证书和私钥(可以自签名openssl req -x509 -newkey rsa:2048 -keyout private-key.pem -out cert.pem -days 385 -nodes:)

  3. 连接到要转换的实例

  4. 将您的 X.509 证书和私钥移动到 /tmp/mv private-key.pem cert.pem /tmp/

  5. 创建文件夹 /tmp/out/mkdir /tmp/out

  6. 创建您的捆绑包:ec2-bundle-vol -k /tmp/private-key.pem -c /tmp/cert.pem -u <account_id> -r x86_64 -d /mnt/out有关更多详细信息,请参阅文档http://docs.aws.amazon.com/AWSEC2/latest/CommandLineReference/CLTRG-ami-upload-bundle.html您可能需要挂起块设备映射(例如 -B根=/dev/sda1)

  7. 将包上传到 S3 存储桶:ec2-upload-bundle -b <bucket_name>/<bundle_folder>/<bundle_name> -a <access_key> -s <secret_key> -m /tmp/out/image.manifest.xml --region <aws_region>

  8. 注册 AMI:ec2-register --kernel <kernel_id> --region <aws_region> --name “&lt;ami_name>" --description “&lt;ami_description>" <bucket_name>/<bundle_folder>/<bundle_name>/image.manifest.xml -O <access_key> -W <secret_key>有关更多详细信息,请参阅文档:http: //docs.aws.amazon.com/AWSEC2/latest/CommandLineReference/ApiReference-cmd-RegisterImage.html(请参阅 --root-device-name 和 -b 选项)

The devices mapping and volumes organisation are different between ebs-backed and instance store-backed instances so you need to make sure everything is where the system expects it to be

于 2014-10-10T09:51:13.620 回答