개발/AWS

[EC2] AMI 를 이용하여 EC2 인스턴스를 복사해 보자

YJ_Lee 2023. 11. 30. 18:12

Introduction

EC2 인스턴스를 사용 중에 VPC를 교체할 일이 생겼다. 하지만 불행하게도, EC2 인스턴스는 한 번 생성되면 VPC, Subnet, 가용영역 등을 바꾸는 것이 불가능하다. 따라서 새로운 EC2 인스턴스를 생성하고 볼륨을 교체하려고 했다.

하지만 AMI 를 생성하고 인스턴스를 복사해 버리는 것이 편하다는 것을 알게 되었다.

해당 포스팅은 실행중인 EC2 인스턴스의 AMI를 생성하고, 해당 이미지를 토대로 인스턴스를 복제하는 방법을 알아본다.

루트 볼륨 대체

만약 볼륨대체를 하고 싶다면 이 방법을 사용하면 된다. 하지만 필자와 같은 경우라면 이 방법은 사용하지 않는게 더 편리하므로 넘기면 된다.

 

AWS는 OS가 설치된 루트 볼륨 교체를 위한 솔루션을 제공한다. 이를 이용하면 인스턴스를 중단하지 않고 볼륨을 교체할 수 있다.

EC2 > 인스턴스 > 스토리지 > 루트 볼륨 대체

)

루트 볼륨 대체 방안으로 세 가지가 존재한다. 세 가지 모두 새로운 볼륨을 생성한 뒤 기존 볼륨과 교체된다.

  • 시작 상태: 인스턴스 초기 시작 상태의 볼륨으로 교체
  • 스냅샷: 지정한 스냅샷의 상태의 볼륨으로 교체
  • 이미지(AMI): 지정한 볼륨 이미지로 교체

여기서 말하는 이미지란 AMI를 의미한다. 인스턴스 생성 시에 OS 이미지를 선택할 때, 프리티어 AMI를 찾아서 선택해 본 경험이 있을 것이다. AMI란 인스턴스를 생성할 때 필수로 선택하는 것으로 OS, 아키텍쳐, 볼륨 등의 정보가 담겨져 있다. 해당 이미지 정보를 토대로 인스턴스가 생성된다.

AWS에서 제공하는 AMI 말고도, 사용자가 AMI를 생성하여 해당 이미지로 새 인스턴스를 생성할 수 있다.

따라서, 원본 인스턴스에서 AMI를 생성하고, 그 이미지를 토대로 인스턴스를 새로 생성하면 볼륨 교체 작업이 완료되게 된다. (결국 루트 볼륨 대체는 사용하지 않아도 된다는 뜻이다)

AMI를 이용하였기 때문에 루트 볼륨 대체를 사용하지 않았지만 이런 방법도 존재한다는 것을 알게 되었다.

실행중인 EC2 인스턴스에서 AMI 생성

우선 원본 인스턴스에서 AMI를 생성한다.
인스턴스 작업 > 이미지 및 템플릿 > 이미지 생성

AMI는 볼륨의 스냅샷으로부터 생성되기 때문에 스냅샷도 자동으로 생성된다.

이미지가 생성이 완료되었다면 인스턴스를 생성해보자.

생성한 AMI를 토대로 새 인스턴스 생성

EC2 > 인스턴스 > 인스턴스 시작
(EC2 > 이미지 > AMI > AMI로 인스턴스 시작도 동일하다.)

내 AMI 에 방금 전에 생성한 AMI가 보일 것이다. 해당 이미지를 선택 후, 기타 인스턴스 설정을 마친 후 생성하면 완료된다.

접속해 보면 원본 인스턴스와 동일하게 파일이 존재할 것이다.

Link

https://repost.aws/knowledge-center/move-ec2-instance
https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/replace-root.html