June/AWS

AWS 계정 간 AMI 공유하는 방법

개요

AWS 계정 간 AMI를 공유하기 위해 복사하려고 한다.
단!!!! Volume이 CMK를 사용 중이라면 어떻게 해야할까?
단순한 가이드로 되지 않아서 직접 해보았다.

방법

AMI → Action → Modify Image Permissions 에서 AWS 계정을 입력하고 공유한다.

문제

스냅샷이 Encypted 되어 있기 때문에 복사할 수 없다..

해결

  1. 해당 Image를 사용하여 테스트 인스턴스를 생성한다.
    이때 인스턴스의 루트 볼륨은 xvda(hvm일시) 이다.
    잠시 이친구를 test-xvda 라고 호칭하자.
  2. 해당 인스턴스에 똑같은 유형의 volume을 생성하여 attach 해주자.
    그 친구는 xvdg가 된다. (test-xvdg)
  3. 오리지널 인스턴스를 중지한다.
  4. 오리지널 인스턴스에 붙어있는 root 볼륨을 detach 한다.
  5. detach 된 인스턴스를 새롭게 생성한 test 인스턴스에 attach 해준다.
    xvdf로 지정해준다.(origin-xvdf 라고 하자)
  6. test 인스턴스에 접속한다.
  7. 아래 명령어를 사용하여 준다.
    dd if=/dev/xvdf of=/dev/xvdg bs=4096

    위 명령어를 통해서 origint-xvdf의 데이터를 test-xvdg에 모두 복사하게 된다.
  8. test 인스턴스를 stop 한다.
  9. test-xvdg를 detach 하여 original 인스턴스에 attach 시켜준다.
  10. original 인스턴스를 재시작하여준다.
  11. Image 재생성

참조

https://aws.amazon.com/ko/premiumsupport/knowledge-center/create-unencrypted-volume-cmk/?nc1=h_ls