AWS 도쿄에서 서울로 이전하기

올해, AWS 서울 리전(Region)1이 생겼다. Digital Ocean과 Vultr를 거치다 결국 AWS 도쿄 리전에 정착했으나 얼마 지나지 않아 서울 리전이 생겨버렸다. 고작 개인 블로그 및 기타 개인적인 용도로 사용할 작은 서버이지만, 그래도 굳이 바다 건너 멀리 있는 서버를 사용할 이유는 없기에 귀찮더라도 그냥 옮겨버리기로 마음먹었다. 아무래도 요금이 민감하기 때문에 간단히 계산2을 해 보았으나 별 차이 없었다. 성능과 가격 차이에 대한 자세한 사항이 궁금하다면 Seapy님의 AWS 서울 vs 도쿄 리전 속도 및 가격 비교 글을 읽어보면 좋다.

이 글은 프리티어 사용자의 t1.micro 서버 이전을 기준으로 작성되었습니다.

어차피 나는 작은 개인서버를 옮기는 일이기에 일이 그리 복잡하진 않을...줄 알았으나 예상치 못한 상황과 직면하고 도쿄와 서울을 동시에 띄워두고 있다가 실수로 다 옮기기도 전에 도쿄 서버를 지워버리는 치명적인 실수까지 저질렀다. 다행히 모두 살려냈지만 (...) 아무튼 마우스 클릭 몇 번만으로 마법처럼 슝- 옮겨지지는 않더라. 중요한 점은, t1.micro 상품은 그대로 옮겨지지 않는다는 것이다. t1.micro를 옮기려면 일정 크기 이상으로 상품변경을 해야만 한다.

이걸로 쉽게 옮겨질 줄 알았으나...ㅠㅠ


글을 장황하게 쓰기 전에 이전 과정을 미리 요약하자면 아래와 같다.

  1. AWS 도쿄서버의 EBS 스냅샷 생성
  2. EBS 스냅샷을 서울 리전으로 복사
  3. 서울 리전에서 동일한 상품인 t1.micro 인스턴스 추가
  4. EBS 스냅샷으로 EBS 볼륨 생성
  5. 생성한 EBS 볼륨을 서울리전 인스턴스에 연결
  6. 볼륨에서 데이터 이전
  7. 안정화 작업 등 마무리

삽질을 제외하면 옮기는 데 총 40분 정도 걸린 것 같다. 옮길 인스턴스가 프리티어 상품이 아니고, xlarge 정도 되는 상품을 사용하고 있다면 굳이 위와 같은 뻘짓을 할 필요가 없을 것이다. 사실... 내가 멍청해서 저렇게 빙빙 돌아가는 방법을 택한 것일 수도 있는데, 더 나은 방법이 있다면 @channprj로 언제든 가르쳐 주셨으면 좋겠다. ㅠㅠ


AWS에서 서버를 이전하는 방법은 여러가지 방법이 있으나 대표적으로는 아래의 방법이 있다.

  1. EBS 스냅샷을 다른 리전으로 복사하기
  2. AMI를 다른 리전으로 복사하기

어차피 EBS 스냅샷으로 EBS 볼륨이나 AMI를 생성하여 사용할 수 있기 때문에, 사실 특별한 경우가 아니라면 1번으로 2번의 작업을 대신할 수도 있다. 그렇기에 나는 1번의 방법대로 도쿄에서 서울로 스냅샷을 복사시켰다.


스냅샷 생성하기

add-snapshot 위의 스크린샷을 참고하여 마우스 클릭을 몇 번 하면 스냅샷이 생성된다. t1.micro 기준으로 만들어지는 데 한 1~2분 정도 소요된 것 같다.


스냅샷을 서울 리전으로 복사

copy-snapshot-to-seoul 이 과정 또한 마우스 클릭 몇 번 하면 스냅샷이 서울 리전으로 이전된다. 시간은 t1.micro 기준으로 한 3~5분 걸린 것 같다.

100% 다 옮기기 전까지는 기존의 인스턴스를 제거해버리지 말자.

서울 리전에 동일한 상품으로 인스턴스 만들자. 인스턴스 생성을 모르시는 분이 이 글을 읽으실 리 없으니 생성 방법은 생략.


스냅샷으로 볼륨 생성 후 인스턴스 연결

add-volume 스냅샷으로 볼륨을 생성해주고, 볼륨에서 아까 생성한 인스턴스에 붙여주면(Action > Attach Volume) 된다. 물론, 우리의 리눅스는 친절하지 않기 때문에 이렇게 연결했다고 해서 서버에 접속하자마자 바로 뙇 볼륨이 뜨지는 않는다.

서버에 접속해서 아래와 같이 볼륨을 마운트를 시키자.

# /mnt 디렉토리에 xvdf1 마운트 시키기.
# 상황에 따라 xvdf1 다른 이름일 수 있으니 볼륨생성 시 이름을 잘 기억하자.

$ sudo mount /dev/xvdf1 /mnt

그럼 볼륨이 /mnt 디렉토리에 마운트된다. 기존 서버 세팅이나 기타 자료들을 모두 옮겨준 후, 아래와 같이 볼륨 언마운트를 하자.

$ sudo umount /dev/xvdf1;

어느정도 규모가 있는 서비스를 옮기신다면 AWS에서 제공하는 문서를 참고하시거나 AWS에 직접 문의를 한번 넣어보시는 게 좋을 것 같다. 이 글은 어디까지나 콩알만한 개인용 서버 이전이라 규모가 있는 서비스의 경우엔 별로 도움이 안 될 수도 있다.


참고

  1. 호스트웨이(사진)
  2. AWS 서울 vs 도쿄 리전 속도 및 가격 비교
  1. 단어 뜻 그대로, 데이터센터의 지역을 지칭하는 말. 근데 '지역'이라고 부르지 않고 다들 그냥 '리전'이라고 부르더라.

  2. 리전마다 요금 책정이 다르기 때문.