여러 개의 AWS 계정을 관리하는 클라우드 전문가라면 기존 Amazon EC2 인스턴스를 한 계정에서 다른 AWS 계정으로 옮겨야 하는 상황이 종종 발생합니다. 다행히 AWS IaaS의 구조상 새로운 EC2 인스턴스를 처음부터 다시 만들 필요 없이, 기존 EC2 인스턴스를 기반으로 AMI 이미지를 생성한 뒤 이를 대상 AWS 계정으로 이전하면 됩니다. 이와 비슷한 요청으로는 EC2 인스턴스를 다른 보안 그룹, 가용 영역(Availability Zone) 또는 리전(Region)으로 이동하는 경우도 있습니다.

이번 글에서는 Amazon EC2 인스턴스를 한 AWS 계정에서 다른 계정으로 이전하는 절차를 단계별로 안내합니다. 예제에서 사용하는 인스턴스는 t2.micro이며 AWS 프랑크푸르트 리전에 호스팅되어 있습니다. 동일한 인스턴스 설정을 유지하지만, 추가 구성이 필요하다면 환경에 맞게 조정할 수 있습니다.
1단계: 원본 Amazon 계정에서 EC2 인스턴스 내보내기
첫 번째 단계에서는 기존 Amazon EC2 인스턴스로 AMI 이미지를 생성하고, 다른 AWS 계정에 접근 권한을 부여한 후, 이동된 EC2 인스턴스에 로그인할 수 있도록 키 페어(key pair)를 내보냅니다.
- AWS Management Console에 로그인합니다. 상단의 Services(서비스)를 클릭한 후 EC2를 선택합니다.
- Running Instances(실행 중인 인스턴스)를 클릭하고, 해당 Amazon EC2 인스턴스를 마우스 오른쪽 버튼으로 클릭한 뒤 Image > Create image(이미지 > 이미지 생성)를 선택합니다.

- 이미지 이름과 설명을 입력하고 Create Image(이미지 생성)를 클릭하여 AMI를 생성합니다. 필요에 따라 No reboot(재부팅 없음) 옵션을 선택할 수 있습니다. 이 옵션을 활성화하면 이미지를 생성하기 전에 인스턴스가 종료되지 않지만, 생성된 이미지의 파일 시스템 무결성은 보장되지 않으므로 주의해야 합니다.

- 이미지 생성 요청이 접수됩니다. 생성이 완료되어 사용 가능해지기까지 몇 분 정도 소요됩니다. View pending image ami-xxxxxxxxx를 클릭합니다.

왼쪽 메뉴에서 Images > AMIs를 클릭해서도 AMI에 접근할 수 있습니다.

- AMI가 사용 가능해지면 해당 AMI 이미지를 마우스 오른쪽 버튼으로 클릭하고 Modify Image Permissions(이미지 권한 수정)을 선택합니다.

- Modify Image Permissions 화면에서 이미지 유형(퍼블릭 또는 프라이빗)을 선택하고, 대상 AWS 계정 번호를 입력한 후, Add "create volume" permissions to the following associated snapshots when creating permissions 옵션을 체크합니다. 여기서는 프라이빗 이미지로 설정합니다.

AWS 계정 번호(Account ID)는 화면 오른쪽 상단의 프로필을 클릭한 후 My Account(내 계정)를 선택하면 확인할 수 있습니다.

- Add Permission(권한 추가)을 클릭한 후 Save(저장)를 누릅니다. 이제 AMI 이미지가 다른 AWS 계정과 성공적으로 공유되었습니다.
권한 검증이 성공적으로 완료되었다는 AWS 확인 이메일을 받게 됩니다.
기존 키 페어에서 퍼블릭 키 내보내기
이제 이동된 Amazon EC2 인스턴스에 연결할 수 있도록 기존 키 페어에서 퍼블릭 키를 내보냅니다. 이 작업을 위해서는 프라이빗 키 파일에 접근할 수 있어야 합니다. 이 절차는 Windows 로컬 머신에서 PuTTY를 사용해 수행할 수 있습니다. PuTTY는 Simon Tatham이 Windows 플랫폼용으로 처음 개발한 SSH 및 Telnet 클라이언트입니다.
- 인터넷 브라우저를 열고 해당 링크에서 PUTTY를 다운로드합니다.
- 시작(Start) 메뉴에서 PuTTYGen을 검색하여 실행합니다.
- Load(불러오기)를 클릭하고 프라이빗 키 페어(*.pem) 파일을 추가합니다. 키가 정상적으로 가져와지면 OK를 클릭하고, Public key for pasting into OpenSSH authorized_keys file 필드의 키를 복사합니다. 이 키는 2단계에서 필요합니다.

2단계: 대상 Amazon 계정으로 EC2 인스턴스 가져오기
두 번째 단계에서는 공유된 AMI 이미지로 Amazon EC2 인스턴스를 시작하고, Windows 머신에 로그인할 수 있도록 퍼블릭 키를 가져옵니다.
- AWS Management Console에 로그인합니다.
- Services를 클릭한 후 EC2를 엽니다. 그다음 Key Pairs(키 페어)를 클릭합니다.
- Actions(작업)를 클릭한 후 Import key pair(키 페어 가져오기)를 선택합니다.

- 키 페어 이름을 입력하고 이전 단계에서 복사한 퍼블릭 키를 붙여넣습니다.

- Import key pair를 클릭한 후 왼쪽 메뉴에서 IMAGES > AMI를 클릭합니다.
- Private images(프라이빗 이미지)를 선택하여 공유된 AMI 이미지에 접근합니다.

- AMI 이미지를 마우스 오른쪽 버튼으로 클릭하고 Launch(시작)를 선택합니다.
- 인스턴스 유형을 선택하고 Next: Configure Instance Details(다음: 인스턴스 세부 정보 구성)를 클릭합니다. 원본 AWS 계정과 동일한 인스턴스 유형을 선택하는 것이 좋습니다. 여기서는 t2.micro(가변 ECU, vCPU 1개, 2.5GHz Intel Xeon 패밀리, 1GiB 메모리, EBS 전용)를 선택합니다.
- 요구 사항에 맞게 Configure Instance Details를 구성한 후 Review and Launch(검토 및 시작)를 클릭합니다. 실수로 인스턴스가 삭제되는 것을 방지하기 위해 종료 방지(Termination Protection)를 활성화하는 것을 권장합니다. 이 기능이 활성화되면 비활성화할 때까지 API나 AWS Management Console을 통해 해당 인스턴스를 종료할 수 없습니다.
- 인스턴스 시작 세부 정보를 검토하고 Launch를 클릭합니다. 필요하면 각 섹션으로 돌아가 수정할 수 있습니다.
- Choose an existing key pair(기존 키 페어 선택)를 클릭하고 앞서 가져온 키 페어를 선택합니다.
- I acknowledge that I have access to the selected private key file (KeyPair.pem) and that without this file, I won't be able to log into my instance(선택한 프라이빗 키 파일에 접근할 수 있으며, 이 파일이 없으면 인스턴스에 로그인할 수 없음을 확인합니다) 항목을 체크하고 Launch Instances(인스턴스 시작)를 클릭합니다.
- 인스턴스가 시작 중입니다. View launches(시작 현황 보기)를 클릭합니다.
- 인스턴스가 정상적으로 초기화될 때까지 몇 분 정도 기다립니다.
- 인스턴스를 마우스 오른쪽 버튼으로 클릭하고 Connect(연결)를 선택합니다.