I'm a bit confused here. I've been trying this for days but couldn't get it to work. Hopefully someone could shed some light here.
I have 1 instance (Amazon AMI x86_64 AMI, EBS backed) running in us-east-1 region, and I wanted to migrate to ap-southeast-1 region (using S3 bucket).
Here are the steps I've taken:
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
Everything was working fine. I'm able to see the newly created AMI in AP region. But when I tried to create an instance with the AMI, I can't choose 't1.micro' as the instance type. I soon find out that the AMI is an instance-store AMI (strange it is EBS backed in the first place).
This lead me thinking what I've done wrong here to migrate an EBS backed instance to different region without changing it to instance-store AMI?
Thanks.
Best Answer
The problem you see is because the command 'ec2-bundle-vol' is for creating S3-backed AMIs. You have therefore, taken your EBS backed AMI - created, uploaded, and registered its contents as an S3 backed AMI, and then launched that S3 backed AMI in the new region.
Unfortunately, there is no built in way to migrate an AMI with an EBS root between regions. You need to go about it the long way.
You will incur costs for the instances, the data transfer, and the EBS I/O.
There is actually another option that might be better suited to your needs.
S3-backed AMIs can be downloaded and unbundled, yielding an image of the original disk - you can then write that image to your EBS volume, and should be good to go.
Essentially, you would perform the same first steps as you already have:
Then, in the destination region: