Lework Study hard, improve every day.

将Debian AMI从全球AWS区域迁移到中国区域

2019-09-19
lework
aws
本文 1698 字,阅读全文约需 5 分钟

因为中国区域的Debian版本没有新版的,是不是很无语。云平台竟然连 linux 发行版的系统都没的。。。

大概的步骤

  1. 首先,在AWS东京地区启动Debian实例,将适当大小的EBS卷挂载到该 Debian 实例上,然后使用dd命令将Debian实例的整个根卷作为文件保存到该EBS卷。

  2. 之后,将文件复制到cn-north-1区域中的实例.在该cn-north-1区域的实例中,使用dd命令将该文件写入EBS卷,然后为该EBS卷创建快照,并使用该快照在cn-north-1区域中创建AMI
  3. 最后,用户可以使用该AMI启动CentOS实例,该实例与在东京地区运行的实例相同。

具体实施

  1. 在海外创建一个 Debian 系统实例,本次选择东京地区

    debian.png

  2. 创建一个挂载卷,用于存储系统镜像文件,并挂载到新建的实例上

    也可以在创建实例的时候一并建立
    ebs_create.png

    将卷连接到实例中 ebs_line.png

  3. 连接实例后,可以看到系统中存在 2 个磁盘 ebs_line.png

    /dev/xvda 是系统盘, /dev/xvdf是我们挂载的数据磁盘

    格式化数据磁盘,并挂载到目录中

     mkfs.ext4 /dev/xvdf
     mount /dev/xvdf /mnt/
    
  4. 使用dd命令将系统盘写入到数据磁盘目录文件中。

     dd if=/dev/xvda of=/mnt/root.img bs=1M
    
  5. 在国内也创建一个 Amazon Linux 2 的实例,根磁盘需要设置 20g,用作存储 img,同样也挂载一块磁盘用于将 img 写入

    接着,将 img 传递到国内的实例中

     scp -i test.pem /mnt/root.img ec2-user@ec2-52-80-171-123.cn-north-1.compute.amazonaws.com.cn:/tmp/
    
  6. 在传送完毕后,进入国内的实例中。

    磁盘信息

     fdisk -l
     Disk /dev/nvme1n1: 20 GiB, 21474836480 bytes, 41943040 sectors
     Units: sectors of 1 * 512 = 512 bytes
     Sector size (logical/physical): 512 bytes / 512 bytes
     I/O size (minimum/optimal): 512 bytes / 512 bytes
     Disklabel type: dos
     Disk identifier: 0xf6897bce
    
     Device         Boot Start      End  Sectors Size Id Type
     /dev/nvme1n1p1 *     2048 16777215 16775168   8G 83 Linux
    
     Disk /dev/nvme0n1: 20 GiB, 21474836480 bytes, 41943040 sectors
     Units: sectors of 1 * 512 = 512 bytes
     Sector size (logical/physical): 512 bytes / 512 bytes
     I/O size (minimum/optimal): 512 bytes / 512 bytes
     Disklabel type: gpt
     Disk identifier: 33E98A7E-CCDF-4AF7-8A35-DA18E704CDD4
        
     Device           Start      End  Sectors Size Type
     /dev/nvme0n1p1    4096 41943006 41938911  20G Linux filesystem
     /dev/nvme0n1p128  2048     4095     2048   1M BIOS boot
    

    /dev/nvme0n1 是系统盘, /dev/nvme1n1 是挂载的数据盘

    使用 dd 命令,将 img 文件写入到/dev/nvme1n1数据盘中。

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

    接着,我们挂载数据盘,并删除系统用户的authorized_keys

     mount /dev/nvme1n1p1 /tmp/debian
     rm -f /tmp/debian/root/.ssh/authorized_keys
     umount /tmp/debian
    
  7. 卸载完磁盘后, 在 aws 网页控制台上将 EBS 打上快照

    ebs_create_snapshot.png

  8. 创建完快照后, 使用这个快照创建 ami 映像 create_ami.png 创建完映像之后,我们就可以用这个映像来创建 debian ec2 了

原文地址 https://lework.github.io/2019/09/19/aws-migration-from-global/

Comments

Content