很抱歉,如果这应该很容易从文档中理解,但我没有 - 如果我使用一个易于使用的Ubuntu EBS-boot AMI启动EC2实例,安装一堆东西并移动一些文件在“/”下,然后我使用ec2-bundle-vol
创建一个Instance-Store AMI,实际驻留在安装在“/”的EBS卷上的数据是否会进入AMI?
考虑到从用户的角度来看,我希望在我的自定义AMI的未来旋转中找到“/”下的相同内容,这是我在原始实例中所拥有的。对于亚马逊来说,拍摄“/”文件夹的快照以创建我的AMI也是有意义的(否则,将一个人拍摄快照?!),即使AMI本身是基于实例存储,而原始实例是EBS支持的。
请帮助我理解这一点。
我指的是:
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-snapshot-s3-linux.html
http://docs.aws.amazon.com/AWSEC2/latest/CommandLineReference/CLTRG-ami-bundle-vol.html
感谢。
答案 0 :(得分: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
转化程序:
基本上需要遵循procedure to create an instance store-backed AMI。 注册AMI时,您必须指示兼容的内核。
在要转换的实例上设置EC2 CLI工具(如果尚未安装)
获取X.509证书和私钥(可以自签名:openssl req -x509 -newkey rsa:2048 -keyout private-key.pem -out cert.pem -days 385 -nodes
)
连接到您要转换的实例
将您的X.509证书和私钥移至/ tmp / mv private-key.pem cert.pem /tmp/
创建文件夹/ tmp / out / mkdir /tmp/out
创建您的软件包: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 root = / dev / sda1)
将捆绑包上传到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>
注册AMI:ec2-register --kernel <kernel_id> --region <aws_region> --name “<ami_name>" --description “<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 options)
设备映射和卷组织在ebs支持的实例和实例存储支持的实例之间是不同的,因此您需要确保一切都在系统期望的位置