我在这里有点困惑。 我一直在尝试这个好几天,但不能得到它的工作。 希望有人能在这里阐明一些东西。
我有一个运行在us-east-1地区的实例(Amazon AMI x86_64 AMI,EBS支持),我想迁移到ap-southeast-1地区(使用S3存储桶)。
以下是我采取的步骤:
1. ec2-bundle-vol \ -k pk-xxx.pem \ -u xxx \ -c cert-xxx.pem 2. ec2-migrate-manifest \ -m /tmp/image.manifest.xml \ -c cert-xxx.pem \ -k pk-xxx.pem \ -a xxx \ -s xxx \ --region ap-southeast-1 3. ec2-upload-bundle \ -b my-sg-bucket \ -m /tmp/image.manifest.xml \ -a xxx \ -s xxx \ --location ap-southeast-1 4. ec2-register \ -K pk-xxx.pem \ -C cert-xxx.pem \ --region ap-southeast-1 \ my-sg-bucket/image.manifest.xml \ --name my-ami
一切工作正常。 我能够看到在AP地区新创build的AMI。 但是当我试图用AMI创build实例时,我不能select“t1.micro”作为实例types。 我很快就发现,AMI是一个实例店AMI(奇怪的是EBS支持在第一位)。
这引导我思考我在这里做了什么错误,将EBS支持的实例迁移到不同的地区,而无需将其更改为实例存储AMI?
谢谢。
您看到的问题是因为命令“ec2-bundle-vol”用于创buildS3支持的AMI。 因此,您已经将您的EBS支持的AMI创build,上传并注册为S3支持的AMI,然后启动S3在新的地区支持AMI。
不幸的是,在区域之间没有内build的方式来迁移具有EBS根的AMI。 你需要走很长的路。
您将为实例,数据传输和EBS I / O承担费用。
实际上还有另一种select可能更适合您的需求。
S3支持的AMI可以被下载和解包,产生原始磁盘的映像 – 然后你可以把这个映像写到你的EBS卷上,并且应该是好的。
本质上,您将执行与您已有的相同的第一步:
那么,在目的地地区:
ec2-download-bundle -b BUCKET_NAME -m MANIFEST.xml -d TARGET_DIRECTORY
ec2-unbundle -m /local/path/to/manifest.xml -s SOURCE_DIRECTORY -d DESTINATION_DIRECTORY
dd if = / path / to / image = / dev / NAME
跨地区移植实例并不像人们想的那样直截了当,尽pipe解决了一个问题:
- 项目现在可以在两个指定区域中启动两个实用程序实例,并将源卷挂载到源实例中
- 剩下的就是附加一个目的地卷,并同步内容。