싱가폴 리전에 있는 EC2 인스턴스 서울로 이전하기
AWS EC2 리전 옮기기
사내에서 개발용도로 이용하는 스테이징 서버가 싱가폴 리전에 있다. 이유는 잘 모르겠다.
추측컨데 예전에 홍콩, 싱가폴에 회사가 지사가 생겼을때 같이 둔 것이 아닐까 예상해본다.
서울 리전으로 옮기자는 결정이 나서 옮기는 작업을 맡게 되었다.
전략 선택.
AMI 이미지를 만들어서 인스턴스를 새로 만들려고 했으나 리전별로 AMI가 독립되어있어서 그렇게 할 수 없었다.
방법을 찾아보니 Snapshot을 찍고 그걸 다른 리전으로 복사해서 그걸 볼륨으로 만들어서 사용하는 방법이 있다는 것을 확인했다.
그렇게 해서 결정한 방법.
- 옮겨갈 리전에서 스냅샷 생성 (시간이 좀 소요됨)
- 서울리전에서 동일한 설정으로 인스턴스 생성
- 생성시에 임의로 볼륨 연결함.
- 생성한 스냅샷을 서울 리전으로 복사 (시간이 소요됨)
- 복사된 스냅샷으로 볼륨 생성
- 서울리전에 생성한 인스턴스를 중단하고 연결된 볼륨을 빼냄
- 스냅샷으로 만든 볼륨을 Root device 와 동일한 경로로 잡고 붙임
아마 볼륨 스왑 하는 과정에서 오류가 날 수 있는데 몇 번의 인스턴스를 끄고 키는 과정을 반복하며 연결해주면 쉽게 해결 할 수 있다.
주의 해야 할 것
- 리전 별 키 관리에 유의해야한다.
- 엘라스틱 아이피도 새로 만들어줘야한다.
- 이유는 국가별 네트워크 대역대가 다르므로 하나도 공유가 안된다.
- 이전해서 볼륨을 만들때 만든 인스턴스와의 Availability Zone 을 잘 맞춰야 한다.
- 볼륨을 그대로 카피한거라서 리전 키가 싱가폴 리전으로 접속이 가능할것이다.
- 2번 과정에서 인스턴스가 만들어지면
~/.ssh/authorized_keys
파일을 백업해두면 좋을 듯. - 다른 방법이 있을 것 같긴한데 나는 잘 모르니 무식하게 백업했다.
- 2번 과정에서 인스턴스가 만들어지면
마치며
리전 별 이동이 쉬울 것이라 생각했는데 생각보다는 복잡했다.
다행히 실서버가 아니라서 쉽게 옮겼지만 만약 프로덕션 레벨의 인스턴스였다면 충분히 시나리오를 짜고 테스트를 거쳐야 할 듯 하다.
다행히 인스턴스 복사 등이 간편하기 때문에 사전 시나리오 테스트에는 유용할 것 같다.
이전 글 : 워드프레스 이미지 첨부 안되는 문제 해결하기
다음 글 : AWS 서울 리전과 페이스북 로그인 이슈