Share AMI Between different accounts
서로 다른 계정의 AMI를 공유하는 방법.
- EC2의 이미지를 생성하여 저장한다.
- 저장된 이미지는 AWS Console 좌측 'AMI'에서 확인 가능
(원본 계정)
'AMI'에서 공유하고자 하는 이미지를 클릭 후 우클릭 시,
'Modify Image Permissions' 클릭.
클릭했을 때, 팝업창.
- 'This Image is currently' 에서 Public를 클릭하면 전체 공유가 되는것 같은데, 불안해서 못해봤습니다..
- Private으로 공유하였고, AWS Account Number에 공유받고자 하는 계정의 Number 입력.
(입력 후 Add Permission 필수)
- Add "create volume" permissions to the following associated snapshots when creating permissions: 에는 해당 이미지 원본 EC2의 Volume들이 나타나며, 박스 클릭 시 이미지 공유와 함께 Volume 스냅샷도 같이 공유됨.
(해당 내용은 아래에서 한번 더 언급 예정)
(공유 받는 계정)
'SungtaekYoo' 계정에서 공유한 AMI를 확인할 수 있습니다.(해당 이미지는 다른 AMI 공유 스크린샷이라 이름이 다르니 참고.
- 공유 완료 후 다른 계정에서 EC2내 AMI를 들어가면 보이지 않음.
- 글쓰기박스 왼쪽에 기본설정 'Owned by me'이기 때문에 보이지 않고, 클릭 후 'Private images'로 변경 후 확인 가능함.
** 이 작업은 원래 계정의 이미지를 다른 계정의 이미지로 복사하는 개념이 아님.
원래 계정의 이미지를 공유하는 개념이기때문에 공유되어있는 이미지가 원래 계정에서 이미지 삭제 혹은 Permission 제거를 한다면 공유받는 계정에서도 사라지게됩니다.(직접 테스트 결과)
** 위에서 언급하였던 'Modify Image Permission'에서 'Add ~~~블라블라' 체크하여 볼륨의 스냅샷까지 체크된 경우에 원본에서 이미지를 삭제하여도 볼륨의 스냅샷은 유지되어있으며, 해당 스냅샷으로 볼륨 생성 가능합니다.(직접 테스트 결과)
** AWS의 마켓플레이스를 통해 생성한 경우, AMI 이전을 통해 바로 생성되지 않을 수 있습니다.(저의 경우 마켓을 통해 생성한 MQ였습니다.)
이 때, 서버 생성 시에 발생하는 에러의 주소를 복사하여 이동하면 서버 생성 마켓플레이스로 들어가지는데, 해당 서비스를 Subscribe해야 생성 가능합니다.(제 기준 MQ서버 이전 시, MQ 서버 내에 모든 설정 동일. 물론 MQ서버기 때문에 송수신하는 메세지 경로 혹은 IP 설정을 다시해줘야함.)