Amazon Elastic Cloud Compute(EC2)에서 Amazon Linux 반가상화(PV) Amazon 머신 이미지(AMI)를 사용하고 있습니다. Amazon Linux 하드웨어 가상 머신(HVM) AMI로 마이그레이션하려면 어떻게 해야 합니까?

향상된 보안, 새로운 기능 및 성능의 이점을 누리려면 HVM 인스턴스로 마이그레이션하는 것이 좋습니다. PV 및 HVM AMI에 대한 자세한 내용은 Linux AMI 가상화 유형을 참조하십시오.

보안의 경우 AWS 보안 공지 AWS-2018-013에서 설명한 대로 운영 체제 보호 기능으로는 CVE-2017-5754의 PV 인스턴스 프로세스 간 문제를 해결하기에 충분하지 않습니다. AWS 하이퍼바이저가 인스턴스 간 문제로부터 PV 인스턴스를 보호하지만, Amazon은 프로세스 격리(예: 신뢰할 수 없는 데이터 처리, 신뢰할 수 없는 코드 실행 또는 신뢰할 수 없는 사용자 호스팅)에 관심이 있는 PV 인스턴스 사용자에게 장기적인 보안 이점을 위해 HVM 인스턴스 유형으로 마이그레이션하도록 강력히 권장합니다.

PV 인스턴스에서 HVM 인스턴스로 데이터를 마이그레이션하려면 다음 절차 중 하나를 사용하십시오.

  • PV 인스턴스에서 새 HVM 인스턴스로 데이터를 복사하고 애플리케이션을 이동합니다(강력히 권장).
  • PV 인스턴스를 HVM 인스턴스로 변환합니다.

PV 인스턴스에서 새 HVM 인스턴스로 데이터 복사 및 애플리케이션 이동(강력히 권장)

1.    HVM AMI에서 새 인스턴스를 시작합니다.

2.    다음 방법 중 하나를 사용하여 PV 인스턴스에서 새 HVM 인스턴스로 데이터를 복사합니다.

  • rsync, scp 또는 drbd와 같은 Linux 유틸리티를 실행하여 인스턴스 간에 데이터를 안전하게 복사합니다.
  • PV 인스턴스 데이터를 EBS 볼륨에 복사하고 볼륨을 분리합니다. 그런 다음, 새 HVM 인스턴스에 볼륨을 연결합니다.

3.    HVM AMI에 애플리케이션을 설치하고 구성합니다.

PV 인스턴스를 HVM 인스턴스로 변환

PV 인스턴스에서 새 HVM 인스턴스로 데이터를 복사할 필요가 없는 경우 다음 단계를 수행하여 PV 인스턴스를 HVM 인스턴스로 변환할 수 있습니다.

참고: 다음 절차는 일반적인 안내 단계입니다. 구성에 필요한 경우 단계를 수정해야 합니다.

1.    PV 인스턴스를 중지합니다.
참고: 테스트 PV 인스턴스에서 이 단계를 수행하는 것이 좋습니다. 테스트 인스턴스를 생성하려면 먼저, PV 인스턴스의 이미지를 생성합니다. 그런 다음, 이미지에서 새 PV 인스턴스를 시작합니다.

2.    PV 인스턴스 루트 볼륨의 스냅샷을 생성합니다.

3.    새 EBS 볼륨으로 PV 인스턴스 루트 볼륨 스냅샷을 복원합니다. PV 인스턴스와 동일한 가용 영역에서 볼륨을 복원해야 합니다.

4.    Amazon Linux HVM AMI에서 새 인스턴스를 시작합니다. PV 인스턴스와 동일한 가용 영역에서 인스턴스를 시작해야 합니다.

5.    PV 인스턴스 루트 스냅샷에서 복원한 EBS 볼륨을 선택합니다. 그런 다음, 새 HVM 인스턴스에 /dev/xvdf볼륨을 연결합니다.

6.    PV 인스턴스 루트 스냅샷에서 복원한 볼륨과 크기가 동일한 빈 EBS 볼륨을 새로 생성합니다. HVM 인스턴스에 /dev/xvdg로 새로운 빈 EBS 볼륨을 연결합니다.
참고: 이 단계가 끝나면 새 HVM 인스턴스에는 세 개의 볼륨이 있습니다.

7.    SSH를 사용하여 새 HVM 인스턴스에 연결합니다.
참고: 다음 단계를 진행하려면 루트 사용자 권한이 있어야 합니다.

8.    다음 명령을 실행하여 볼륨을 표시합니다.

# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 8G 0 disk
└─xvda1 202:1 0 8G 0 part /
xvdf 202:80 0 8G 0 disk
xvdg 202:96 0 8G 0 disk

참고: xvda는 HVM 인스턴스의 루트 볼륨입니다. xvdf는 PV 인스턴스 루트 스냅샷에서 복원한 볼륨입니다. xvdg는 새로 만든 빈 볼륨입니다.

9.    다음 명령을 실행하여 xvdg(새 볼륨)에 새 파티션을 만듭니다.

# parted /dev/xvdg --script 'mklabel msdos mkpart primary 1M -1s print quit'
# partprobe /dev/xvdg
# udevadm settle

참고: 이러한 명령으로 xvdg1이 생성됩니다.

10.   다음 명령을 실행하여 xvdf(PV 루트 볼륨)의 크기를 확인하고 원래 파일 시스템의 크기를 최소화합니다. 프로세스 속도를 높이려면 다음 단계에서 디스크 여유 공간을 복사하지 마십시오.

# e2fsck -f /dev/xvdf ; resize2fs -M /dev/xvdf

11.   다음 명령을 실행하여 xvdf(PV 루트 볼륨)를 xvdg1(새 볼륨)에 복사합니다.

# dd if=/dev/xvdf of=/dev/xvdg1 bs=$(blockdev --getbsz /dev/xvdf) conv=sparse count=$(dumpe2fs /dev/xvdf | grep "Block count:" | cut -d : -f2 | tr -d "\\ ")

12.   다음 명령을 실행하여 xvdg1(새 볼륨)의 크기를 최대 크기로 조정합니다.

# e2fsck -f /dev/xvdg1 && resize2fs /dev/xvdg1

13.   다음 명령을 실행하여 HVM 인스턴스의 루트 볼륨으로 변환할 xvdg1(새 볼륨)을 준비합니다.

# mount /dev/xvdg1 /mnt/ && mount -o bind /dev/ /mnt/dev && mount -o bind /sys /mnt/sys && mount -o bind /proc /mnt/proc

14.   다음 명령을 실행하여 xvdg1(새 볼륨)을 HVM 인스턴스의 루트 볼륨으로 변환합니다.

# chroot /mnt/

15.   다음 명령을 실행하여 새 루트 볼륨에 grub을 다시 설치합니다.

# yum reinstall grub -y
# rm -f /boot/grub/*stage* /boot/grub/device.map
# grub-install /dev/xvdg

16.   "grub-install" 명령은 다음 메시지를 반환합니다. 이는 예상된 메시지이므로 무시하고 다음 단계로 계속 진행합니다.

Probing devices to guess BIOS drives. This may take a long time.
Unknown partition table signature
/dev/xvdg does not have any corresponding BIOS drive.

17.   다음 명령을 실행하여 grub 구성을 업데이트합니다.

# cat <<EOF | grub --batch
device (hd0) /dev/xvdg
root (hd0,0)
setup (hd0)
EOF
# sed -i 's/root\ (hd0)/root (hd0,0)/g' /etc/grub.conf
# sed -i 's/root\ (hd0)/root (hd0,0)/g' /boot/grub/menu.lst
# sed -i 's/console=hvc0/console=ttyS0/g' /etc/grub.conf
# sed -i 's/console=hvc0/console=ttyS0/g' /boot/grub/menu.lst

18.   다음 명령을 실행하여 “chroot” 함수를 끝냅니다.

# exit

19.   다음 명령을 실행하여 인스턴스를 종료합니다.

# halt

20.   앞서 HVM 인스턴스에 연결한 세 개의 볼륨을 분리합니다.

21.   앞서 /dev/xvdg(새 볼륨)로 연결한 볼륨을 선택합니다. HVM 인스턴스에 /dev/xvda이 볼륨을 다시 연결합니다.

22.   HVM 인스턴스를 시작합니다.

새 HVM 인스턴스는 소스 PV 인스턴스와 똑같은 복사본입니다. HVM 인스턴스가 예상대로 작동하는지 확인한 후 소스 PV 인스턴스를 종료할 수 있습니다. 또한 두 개의 임시 볼륨인 HVM 인스턴스의 원래 루트 볼륨과 PV 인스턴스 루트 스냅샷에서 복원한 볼륨을 제거할 수도 있습니다.


페이지 내용이 도움이 되었습니까? | 아니요

AWS 지원 지식 센터로 돌아가기

도움이 필요하십니까? AWS 지원 센터를 방문하십시오.

게시된 날짜: 2018년 2월 19일