How to copy an AMI from Ireland region to China region in AWS

AMI copy is currently not supported for China region.

According to AWS: Transfer or copy AMI from US to China (Beijing)

The idea is to create a dump file of the volume using 'dd', copy the file to a temporary instance in China Region. Once copied, use dd again to dump the contents of the file to an EBS volume. Then create a snapshot of the EBS volume which contains the data and create an AMI out of it.

You may refer an over view of the process below:

  1. Launch a linux instance in the AWS Region then use "dd” command to save the instance’s whole root volume as a file to a secondary EBS volume.

mkfs.ext4 /dev/xvdf

mount /dev/xvdf /mnt

dd if=/dev/xvda of=root.img bs=1M

  1. Copy the file to an instance in cn-north-1 region.

scp -i key.pem root.img ec2-user@<ip_address>:/tmp

  1. In that cn-north-1 region’s instance, use ‘dd’ command to write that file to an EBS volume

dd if=/tmp/root.img of=/dev/xvdf bs=1M oflag=direct

  1. Delete the keypair on the volume, where{cloud username} is 'ubuntu' for ubuntu, 'ec2-user' for Amazon Linux, 'admin' for Debian, 'core' for CoreOS/Container Linux

mkdir -p /tmp/volume

partprobe

mount /dev/xvdf1 /tmp/volume

rm /tmp/volume/root/.ssh/authorized_keys

rm /tmp/volume/home/{cloud username}/.ssh/authorized_keys

umount /tmp/volume

  1. Create a snapshot of the volume, refer here.

  2. Create an AMI from the snapshot, refer here.

  3. Finally, use that AMI to launch an instance, which is the same as the instance running in the original AWS region.

NB=Please note that in some cases, you might need to update /etc/fstab, grub configuration files etc. with the label of the new volume.