아마존 라이트세일 서버 리전 이동하기 – AWS Lightsail 워드프레스를 서울 서버로 복사 후 옮기기, 업그레이드 방법

8

아마존 라이트세일 서버 인스턴스의 지역(국가)을 이동하는 방법의 예로 도쿄서버에서 서울서버로 이전하는 방법을 알아보려고 하는데요. 서버 이전 과정이 어떻게 이루어지는지 개념화해보고, 서버이전을 실행하기전에 반드시 준비해야할 사항, 주의해야할 점등을 알아보겠습니다.

본문은 AWS Lightsail 스냅샷으로 데이터백업, 복원, 업그레이드, 서버이전 시리즈 연재작의 일환으로 작성된 글이지만 이것은 비단 워드프레스 서버뿐만 아니라 다른 리눅스와 윈도우 서버(PHP, NGIN-X, LAMP, Node.js, MEAN 스택 등) 모두 해당되는 방법입니다. 서버의 환경과 데이터 전체를 옮기는 거니까요. 서울에서 일본도쿄서버로 옮기는 것 뿐만 아니라 그 반대로 혹은 미국같은 다른 리전으로 옮기는 것역시도 손쉽게 할 수 있습니다.

AWS 라이트세일의 스냅샷에 새로생긴 기능 – 스냅샷 복사 및 EC2로 내보내기

지난 2018년 11월 28일 AWS 업데이트 내역 중 하나로써 아마존 라이트세일(AWS Lightsail)의 인스턴스를 스냅샷을 통해 다른 리전(Region)으로 복사하는 방법이 새로 생겼습니다. 저도 삶이 바빠서 라이트세일 소식을 못 듣고 있었는데 방문해주신 서울비님이 댓글로 문의를 주셔서 알게 되었네요. 

그로인해 손쉽게 기존의 서버를 다른 리전으로 이동할 수 있게 되었는데요. 스냅샷 기능에 업데이트된 기능은 아래 두개입니다.

  • 다른 리전에 복사
  • Amazon EC2로 내보내기

 아마존 EC2로도 내보낼 수 있게되어 이제 라이트세일은 진정한 입문용 웹서버호스팅(정확히는 VPS) 서비스가 되었군요. 라이트세일 서버가 감당못할 정도가 되면 EC2로 손쉽게 옮길 수도 있겠죠.

아마존 라이트세일 서버 이전 과정 개요

도쿄리전을 현재쓰고 있는 리전이라고 할 때,  현재 자신의 서버 연결은 아래 그림과 같은 상태일겁니다. 여러분은 퍼블릭 고정 IP 주소를 사용하지 않고 퍼블릭 IP(유동IP)만 사용하고 있을 수도 있겠지만 상관없습니다. 

참고: 아마존 라이트세일에 설치형 워드프레스 설치하기

도메인 DNS와 AWS Lightsail 연결 그림
현재 도메인과 아마존 라이트세일 서버 연결되어있는 상태

 라이트세일 서버 인스턴스를 다른 리전으로 옮기기위해서는 아래와 같은 과정을 거쳐서 단순한 ‘이동’이 아닌 스냅샷을 통해 다른 리전에 서버를 ‘복사’하게 됩니다. 고정IP 또한 리전에 제한된 리소스이므로 옮길 새로운 리전에서도 고정IP를 새로 만들어야하고, 자신의 도메인 DNS 관리에서도 새로운 IP로 연결하도록 정보를 수정해야합니다.

새로운 서버로의 이동 개념 그림
AWS Lightsail 새로운 리전의 서버로 복사 및 연결
  1. 최신 스냅샷 생성  (도쿄리전) 
  2. 다른리전으로 스냅샷 복사 (도쿄 -> 서울 리전)
  3. 복사된 스냅샷에서 새로운 인스턴스 생성 (서울리전)
  4. 고정IP 생성 후 인스턴스에 연결 (서울리전)
  5. 도메인관리 DNS 레코드의 주소 -> 연결할 IP 주소를 서울 리전의 IP주소로 변경
  6. DNS 변경사항이 반영될 때까지 기다림
  7. 연결 확인
  8. 도쿄 리전의 리소스 삭제

원한다면 3번과정에서 새로운 인스턴스를 생성하는 김에 인스턴스 플랜(서버사양)을 업그레이드도 함께 해도 되겠습니다.

5번 과정 실행 전에 서울리전에 정상적으로 복사되었는지 확인방법도 있긴하지만 라우팅설정(도메인), 워드프레스 DB의 사이트 주소, HTTPS 인증서등 문제로 서버접속 후 다뤄야하기때문에 복잡하기도하고 실수가 있을 수도 있으므로 그냥 정상적으로 복사됐을 거라는 믿음을 가지고  다음단계를 계속 진행하면 되겠습니다.

새로운 리전으로 연결한 시점에서는 같은 내용의 서버인스턴스가 두 개의 리전에 존재하는 셈이죠. 새로운 리전에 있는 서버로의 연결이 무사히 확인된다면 예전에 있던 리전(여기서는 일본 도쿄리전)에 있는 서버 인스턴스와 고정IP, 스냅샷은 삭제해주면 됩니다.

하지만 새로운 리전으로 서버를 옮기면서 5)번 과정에서 DNS에있는 도메인의 IP 연결주소가 바뀌어야하므로, 원활한 연결을 위해서 위 과정을 시작하기전에 반드시 알고 준비해야할 사항이 있습니다.

DNS 전파시간에 영향을 미치는 TTL

다른 리전으로 도메인 연결 주소를 바꾼다는 것은 DNS 레코드 설정값을 변경하게 되는 것인데, 도메인을 서버의 IP 주소로 연결하는 과정에는 여러 매체와 기업, 단체가 관여되어있고 이들은 새롭게 변경된 정보를 전파하는 시간에 영향을 미치게됩니다. 지역 DNS, 웹브라우저등은 도메인 -> 서버IP주소 매칭정보를 일정시간동안 임시기록하고 하고있겠됩니다.(캐싱). 그 시간이 만료되기전에는 DNS 서버로 새로운 정보를 받아지 않게됩니다.

또한 개별 방문자의 컴퓨터 또한 호스트 매칭을 통해서 컴퓨터, 웹브라우저 자체에 캐싱하고 있게됩니다. 이 또한 일정시간을 기다릴 수 밖에 없으며, 사용자가 수동으로 자신의 컴퓨터에서 방문기록을 삭제하고 DNS 캐시를 플러쉬하는 작업을 할 수는 있지만 사이트 운영자가 알지도 못하는 방문자 컴퓨터의 기록을 비워줄 수는 없는 노릇입니다.

TTL(Time to Live)은 DNS 레코드 정보를 컴퓨터(여기서는 대게 DNS서버들)가 얼마동안이나 가지고 있다가 새로 받아와야 할 지를 권장하는 캐시 만료 시간입니다. 예를 들어 DNS설정에서 TTL 시간을 하루로 해놨다면 지금 DNS 레코드 정보에서 새로운 IP로 바꿨다고 해도 다른 지역 DNS들은 내일이나 되어서야  새로운 IP를 받아가게 된다는 것이죠.

그래서 서버 이전을 하기전에 먼저 자신의 도메인관리 서비스에서 DNS 설정을 통해 TTL 시간을 낮춰준뒤 기다려주는게 좋습니다. 만일 현재 TTL 시간이 1주일이인데 DNS설정에서 지금 IP주소를 바꾸어 버리면 일주일 뒤에나 새로운 서버로 연결 될 수 있기 때문이죠. 기존에 TTL이 1주일로 설정되어있었다면 지금 최소값으로 바꿔둔 다음 1주일을 먼저 기다려줍니다. 그러면 일주일뒤에는 모든 DNS들이 새로운 짧은 TTL 시간 기준을 갖게됩니다. 그렇게 된 뒤에야 도메인의 IP 연결 정보를 바꾸면 그때는 만료시간이 짧기때문에 곧 새로운 서버로 연결 될 것입니다.

물론, 이것은 일부 도메인 서비스에서만 가능한 것으로 자신이 사용하는 DNS 에서 TTL 시간을 제어할 수 있을 때의 이야기입니다. 라이트세일의 DNS Zone(DNS 영역) 같은 경우 TTL 시간설정을 따로 사용자가 제어할 수 없기때문에 별도로 TTL 설정을 변경해줄 필요는 없지만 그리 오래걸리진 않을 겁니다.

그리고 일부는 권장하는 TTL 시간을 무시하고 보통 하루나 이틀정도의 자체적인 기준을 갖는 경우도 있습니다. 짧은 시간 재요청하지 않음으로써 서버 부담이나 트래픽 부담을 줄이는 것이죠. 그래서 반드시 TTL 시간후에 갱신된다는 보장이 없기도하고 방문자마다 사용하는 컴퓨터 운영체제, 웹브라우저, 인터넷업체, 거치는 지역 DNS서버 조합이 다르니 각각 새로운 서버로 연결되는 시간 역시도 다르게 될 것입니다.

DNS 레코드정보를 바꿀 때 절대로 함께하지 말아야 할 것

도메인에 연결될 서버의 IP주소를 바꿀 때 함께 바꾸지말아야할 것이 있습니다. 아래 두가지인데요.

  • 도메인 등록 이전 (예: 가비아, 고대디 -> 구글 도메인, AWS Route 53)
  • DNS 서버 변경 (예: 고대디 DNS -> AWS DNS 영역이나 AWS Route 53)

예를 들어 고대디에서 라이트세일 DNS영역으로, DNS 서비스 회사 자체를 바꾸는 일도 있는데, 제 블로그 방문자분들 중에서 다른 웹호스팅 서비스를 사용하다가 아마존 라이트세일에서 워드프레스 서버구축하기 과정을 읽고서는 기존에 사용해오던 카페24같은 웹호스팅에서 Lightsail로 이전을 감행, 그러면서 기존에 사용하던 가비아 같은 도메인 서비스까지 고대디나 AWS로 바꾸는 분들이 계셨습니다. 

서버이전을 위해 웹호스팅(또는 VPS) 서비스를 바꾸면서 겸사겸사 마음에 들지않던 도메인 등록회사도 바꾸고  DNS 서버도 바꾸고 하셨던 거죠. 하지만 도메인등록이나 DNS 서비스회사를 이전하는 과정 또한 시간이 걸리게 됩니다.  얼마나 걸릴지도 미지수이고요. 그래서 DNS 레코드 설정변경은 그런 ISP 회사의 서비스 이전 작업과 함께 하지 않는게 좋습니다. 왜냐하면 DNS 설정에서 레코드 정보 변경 후 도메인 연결이 안될 때 이것이:

  • DNS 레코드설정이 반영이 아직 안된것인지, 
  • TTL 시간을 더 기다려야하는 것인지, 
  • 자신의 컴퓨터 DNS 캐시 문제인지, 
  • 서버 시스템(종종 웹서버)의 문제인지에 더해서,
  • 추가로 인터넷 서비스 회사 이전과정의 문제일지까지 겹치게 됩니다.

종잡을 수 없어서 무슨 조치를 해야할지, 그냥 놔둬야 할 지 결정조차 못하게 되는 상황이 가중되게 될테니까요. 설사 DNS 문제라고 파악한다고해도 관리회사를 바꾸는 과정에 있는 중간에는 이 문제를 이 회사에 문의해야 할 지, 저 회사에 문의해야 할 지도 알 수도 없겠죠.

서버 이전 준비 하기 – DNS TTL 시간 줄이기

서버이전 중에 데이터 백업은 중요한 일입니다. 본문의 과정에는 데이터 백업이되는 스냅샷 생성과정이 포함되기때문에 따로 해줄 필욘 없을 수 있겠으나 다른 방법을 선호한다면 자신이 사용하는 방법으로 2중 백업을 하시면 되겠습니다. 백업말고도 한가지 더 해줄 게 있는데요.

위에서 말했든 우선은 기존의 설정에서 TTL에 적힌 시간이 얼마나 되는지 확인 한뒤에 길다면 줄여주고 이전에 설정했던 시간만큼 기다려줘야하겠습니다. 하나의 서버 인스턴트에 여러개의 도메인을 연결했다면 이동하려는 서버에 연결되는 모든 도메인에대해서도 DNS TTL 값을 바꿔야겠죠.

참고: 하나의 서버에 두개의 워드프레스 설치하기

제 글에서는 도메인 등록 서비스회사인 고대디(Godaddy)에서 설정 방법을 살펴보겠습니다. TTL 설정이 불가능한 다른 DNS 업체도 있습니다.

고대디 DNS 에서 TTL 시간 설정 값 줄이기 예시

고대디의 자신의 제품 중에 현재 서버에 연결된 도메인의 DNS 관리 화면에 들어서면 아래그림처럼 생겼습니다. 

3개의 A레코드와 CNAME 레코드등이 있다
Godaddy에서의 도메인 DNS관리 레코드 목록

참고: Goddady에서 도메인 관리하기

위 그림에서 보듯이 제 도메인에는 3개의 A 레코드 유형이 메인도메인, 서브도메인 1, 서브도메인 2 가 각각 서로다른 IP에 연결되어있습니다. 메인도메인과 동격으로 사용하는 www 는 CNAME 레코드 유형으로써, 값이 메인 도메인(@)으로 향하도록 설정되어있네요. 메인도메인인 swiftcoding.org 에 TTL 시간이 1주일로 되어있습니다. 이 값을 더 짧게 해줘야하겠습니다.

당장 옮길게 아니므로 연결할 IP 주소(값, 지시방향)는 바꾸지 않아야합니다. 단순히 TTL 시간만 짧게 바꿔둘 건데요. 편집할 레코드 유형의 연필모양 아이콘을 클릭해서 병경할 수 있습니다. 아래그림은 각 레코드의 설정편집화면입니다.

레코드 편집화면에서 TTL 시간 변경후 저장

아래그림은 메인도메인(@)과 www 서브도메인의 TTL 시간을 모두 짧게 변경한 모습입니다. 추가했던 다른 서브도메인역시도 옮길 계획이라면 함께 TTL 시간을 변경해두시면 되겠습니다.

레코드의 TTL 시간이 짧게 변경됨

 

아마존 라이트세일 서버 리전 이전 하기

이제 DNS의 TTL 값을 변경하고 열흘이라는 충분한 시간이 지났습니다. 이제 인터넷 세상에 퍼진 모든 지역 DNS 들이 짧은 TTL 시간으로 갱신했을 테니 본격적으로 서버 이전 작업을 시작하겠습니다.

1), 2) 라이트세일 인스턴스의 최신 스냅샷 생성 후 다른 리전을 복사하기

 현재 사용중인 리전에서 해당 인스턴스 화면에서 스냅샷 탭에서 ‘스냅샷 생성’ 버튼을 클릭해서 최신 스냅샷을 생성해줍니다. 그리고 스냅샷이 생성되고 나면 해당 스냅샷의 주홍색 점 3개가 세로로 배열된 모양더보기 버튼을 클릭해 나타나는 팝업 메뉴에서 ‘다른 리전에 복사’를 선택합니다.

인스턴스> 스냅샷>최근스냅샷> 다른 리전에 복사

그러면 아래처럼 ‘스냅샷 복사’ 화면으로 넘어가게 되고, 여기에서 리전 선택에서 목적지 국가를 선택, 스냅샷의 이름을 지어주고 ‘스냅샷 복사’를 클릭해주세요.

스냅샷복사: 서울 > 이름 > 스냅샷복사

그러면 라이트세일 홈화면의 스냅샷탭으로 이동되면서 해당 리전에 스냅샷이 ‘생성 중….’ 상태로 됩니다. 여기에서  몇 분정도 시간이 걸리게 될테니 기다려줍시다.

도쿄에서 복사한 스냅샷 - 복사위치: 생성중

3) 아마존 라이트세일 스냅샷에서 복원으로 새로운 인스턴스 생성

 잠시 시간이 지나고 목적지 리전으로 스냅샷 복사가 완료되면 해당 스냅샷의 오른쪽 화살표처럼 꺾인 꺽쇠모양 펼치기버튼을 클릭한다음 주홍색 점 3개가 세로로 배열된 모양 더보기 버튼을 클릭해서 ‘새 인스턴스 생성’을 클릭해줍니다. 그 전에 서울리전이 맞는지, 방금 복사한 스냅샷이 맞는지 확인해야겠죠.

도쿄 스냅샷으로부터 새인스턴스 생성

그럼 아래처럼 ‘스냅샷에서 인스턴스 생성’ 화면이 나옵니다. 자신이 원하는 설정을 선택해 생성해주면 되는데요. 이때 원한다면 전에 리전에서 사용하던 컴퓨팅 사양보다 높은 걸로 바꿀 수도 있겠습니다.(그러면 돈도 더 내야죠)

아래 그림처럼 인스턴스 위치에서 영역 변경을 클릭해서 가용 영역(Availability Zone)을 바꿀 수도 있습니다.

영역 변경 링크

그 아래로는 시작 스크립트 추가 옵션과 CLI나 FTP 서버 접속을 위한 SSH 키 페어(공개키, 비밀키) 변경을 할 수도 있습니다: SSH 키 페어 변경

위그림에서 ‘SSH 페어 변경’을 클릭해서 서울리전에서의 새로운 키를 생성하거나, 자신이 만든 키를 업로드하거나, AWS 에서 기본 제공하는 ‘기본값(Default) 키를 다운로드 받아둡니다. 이 개인 비밀키는 나중에 자신의 서버에 접속하게 될 때 필요합니다.

기본값 > 다운로드

기본값의 경우, 나중에 새로운 인스턴스를 생성하는 과정에서 다시 다운로드 받을 수 있지만, ‘새로 생성’을 통해서 새롭게 생성한 키 (위 그림에서는 seoul-key)는 AWS가 개인 비밀키를 보관하고 있지 않으므로 다시 다운받을 수 없고 자신이 잘 보관해야합니다. 여기서는 그냥 기본값 키를 다운로드 받아두겠습니다. 새로운 키를 생성하고 싶다면 아래 링크에서 방법을 참고해보세요.

참고: 라이트세일 인스턴스 접속용 SSH Key pair 생성 및 다운로드 받기

그 다음 아래에는 ‘새 인스턴스 플랜 선택’을 새롭게 할 수 있는데요. 기존에 사용하던 사양보다 내릴 수는 없고 그대로 유지하거나 업그레이드 할 수 있습니다.

참고: 아마존 라이트세일 월 서버비용 가격표 보기

새 인스턴스 플랜 선택 섹션

그다음으로는 인스턴스 식별에 이름을 지어주고 ‘인스턴스 생성’을 클릭해주면 인스턴스 생성이 시작됩니다.

인스턴스 식별 - 이름

위 과정에서 오류가 발생한다면 더이상 진행할 수없고 서버이전은 DB와 파일을  직접옮겨서 할 수 밖에 없습니다. 오류가 발생하지 않는 다면 아래처럼 새로운 인스턴스 생성을 시작할 겁니다. 여기에서 몇 분의 시간이 걸립니다.

인스턴스 생성중에는 회색이고 '보류 중'일라는 메시지가 출력

인스턴스가 성공적으로 생성되면 아래처럼 ‘실행 중’ 상태가 됩니다.

인스턴스 실행 중

 

 

오류 발생 – 스냅샷에서 인스턴스를 생성할 수 없는 문제로 에러

위에 인스턴스를 생성하는 과정에서 아래와같은 오류가 발생하고 인스턴스 생성을 실패할 수 있습니다.

CreateInstancesFromSnapshot [ap-northeast-2]

최초의 인스턴스가 최근 생성했던 서버라면 본문에 설명할 방법으로 리전 변경을 쉽게 할 수 있겠으나 제 서버의 경우 아래처럼 오류가 발생하면서 서버 이전작업을 마칠 수 없었는데요.

오류 발생

CreateInstancesFromSnapshot [ap-northeast-2]

The WordPress blueprint wordpress_4_7_5 is not available in ap-northeast-2

InvalidParams

메시지 해석: ap-northeast-2(서울 리전) 에는 wordpresss_4_7_5라는 WordPress 블루프린트가 없습니다.

오류메시지로 미루어 볼 때, 제 서버는 서울리전이 없던 시절 도쿄 리전에서 최초 생성했던 건데 그 당시에는 블루프린트(인스턴스 생성용 서버이미지)가 워드프레스 4.7.5 였습니다. 제 서버에 실제 설치된 워드프레스는 그후로 업그레이드 되었지만 AWS Lightsail에서는 최초의 블루프린트가 무엇이었느냐가 중요한가 봅니다.

인스턴스를 새롭게 생성할 때 선택할 수 있는 AWS Lightsail의 블루프린트는 시간이 지남에 따라 버전업이 되는데요. 2019년 1월 지금은 WordPress 이미지의 경우 4.9.8 버전입니다.

블루프린트 선택: WordPress 4.9.8

제가 도쿄리전에서 만들당시에는 WordPress 블루프린트 버전이 4.7.5 였지만 그 후 서울 리전이 새로 생겼을 시절에는  4.8 이상이었던 것같습니다. 그래서 인스턴스 스냅샷을 복사해오는 것 까지는 되지만, 서울리전의 가용역역에서는 제가 복사해온 스냅샷의 기초가 되는 오래된 버전의 블루프린트가 없다는 이유로 인스턴스가 생성이 안돼고 위와같은 오류가 발생하는 것같습니다.

서버 리전, 가용영역 이동이 가장 필요한 사람은 오래전에 인스턴스를 생성해 사용해오던 사람들일텐데 이런 쉬운 서버이전 방법이 생겼어도 사용할 수 없다는 점이 아쉽군요. 제 서버의 최초 인스턴스가 아마존 라이트세일 최초 출시와 시기를 같이 하니 뭐 그리 오래된 서버도 아닌데 말이예요.

 만일 지금부터 몇년이 지난 뒤 다른 리전이 새로 생긴다고 한다면 그땐 블루프린트가 더 상위 버전부터만 있겠죠. 그럼  또다시 이런 블루프린트 버전 오류가 발생하면서 스냅샷 복사를 통한 리전변경은 할 수 없겠군요? 비단 워드프레스 블루프린트뿐만 아니라 OS, 다른 웹애플리케이션 블루프린트또한 마찬가지일 것같은데요. AWS의 빈틈있는 아쉬운 업데이트 같습니다. 차후 고쳐질진 모르겠지만요.

이런 경우는 어쩔 수 없이 DB와 워드프레스 파일을 직접 서버에서 서버로 전송해서 이동하는 수밖에 없습니다. 어쨌든, 블루프린트 버전이 오래된 서버가 아닌경우 아마존 라이트세일에서 제공하는 서버 리전변경은 아래 기술할 내용대로 하면 됩니다. 서버를 이전 작업을 끝내기 전에 전에 인스턴스를 생성해 볼 수 있으므로 테스트 해보셔도되겠습니다.

4) 아마존 라이트세일 고정 IP 생성 후 인스턴스에 연결하기

인스턴스 생성과정에서 위처럼 오류가 발생하지 않고 무사히 새로운 리전에 스냅샷에서 복원한 인스턴스가 생성되었다면 이제 고정IP를 생성해 연결할 차례입니다.

아마존 라이트세일 홈 > 네트워킹 > 고정 IP 생성을 선택합니다.

네트워킹 > 고정 IP 생성
고정 IP 위치에서 자신이 옮기려는 리전에 고정IP를 생성하는 것이 맞는지 확인하고 필요하다면 ‘AWS 리전  및 가용 영역 변경’을 선택해서 바꿉니다. 그리고 아래처럼 방금 전 스냅샷에서 복원했던 인스턴스를 연결해줍니다. 그리고 ‘고정 IP 식별’ 에는 고정 아이피의 이름을 지어주고 ‘생성’을 클릭해 생성을 마칩니다.

고정 IP 위치(리전) > 연결할 인스턴스 선택 > 고정IP식별 이름 > 생성

완료되면 아래처럼 ‘퍼블릭 고정 IP 주소’와 연결된 인스턴스의 정보가 나옵니다.

발급된 퍼블릭 고정 IP 주소 그리고 연결된 인스턴스

 

이제 해당 인스턴스 제어화면을 살펴보면 퍼블릭 IP 라는 글자대신 ‘고정 IP’라고 쓰여지고, IP 주소옆에 고정핀 모양아이콘이 붙습니다.

인스턴스 제어 하면 오른쪽위에 '퍼블릭 고정 IP'

 

서버 공사중 표시 – 예전 서버를 점검 중으로 변경하기

여기까지 했다면 현재 상태는 아래그림처럼 되어있을 겁니다. 아직 도메인이 옮겨지지 않은 상태죠. 도메인의 DNS에서 레코드 값을 서울리전의 고정 IP  주소로 변경해 주기 전에 선택적으로 해줄만한 게 있습니다.

서울리전에 서버가 복사되었지만 아직 도메인은 여전히 도쿄리전에 연결되어있음

두개의 서버가 내용이 완전히 같은 복사된 서버이므로 나중에 DNS정보르 바꾸고도 그대로인지 새로운IP로 연결된건지 자신조차 구분하기가 쉽지 않을 겁니다. 그래서 이시점에서 서버내용을 서로 다르게 해둘 필요가 있겠죠. 도쿄 리전 쪽에 간단히 비공개 글이라도 써두어서 내용을 달리하는 것도 생각해볼 수 있겠습니다. 그러면 나중에 새롭게 바뀐 서버로 연결되고 나서는 해당글이 보이지 않겠죠. 글이 아니라더라도 테마색상을 바꾼다거나 위젯을 하나 넣는다거나 다양한 방법이 있네요.

하지만 이런 경우 예전 서버를 그대로 둘 수는 없습니다. 앞서 말했듯 각 방문자마다 DNS 정보를 갱신해서 새로운 서버로 연결되기까지 걸리는 시간이 각자 다릅니다. 그래서 방문자그룹이 도쿄리전으로 연결되는 쪽과 새로운 서버로 연결되는 쪽 두 그룹으로 나뉠 테죠. 곧 없애버릴 도쿄리전 서버에 방문기록이나 남겨지게될 댓글은 무의미하게 됩니다. 그렇다고 곧바로 도쿄 리전 인스턴스를 삭제해버리기에는 늦은 방문자들은 하루나 이틀동안 영문도모른 채 연결되지 않는 서버를 보게 될 겁니다. 인덱싱하려고 방문하는 검색봇들도 그렇고요.

공사중 페이지 표시 워프레스 무료 플러그인 추천

그래서 제가 생각한 가장 좋은 방법은 예전서버(도쿄리전)는 공사중 페이지를 표시한 채로 하루 이틀 정도 그대로 두는 겁니다. 그러면  DNS 정보가 늦게 반영되는 방문자는 새롭게 바뀔때까지 도쿄리전의 점검 중 페이지가 표시되겠죠. 검색봇 또한 503 에러 코드를 받고 나중에 다시 인덱싱을 시도할 것입니다.

WordPress 코어 자체적으로 점검 중 모드를 지원하긴 하지만, 점검 중 페이지는 아래와같은 플러그인을 사용하면 사이트 전체 점검 중 페이지로 쉽게 만들 수도 있습니다.

Coming Soon Page & Maintenance Mode by SeedProd

공사중임을 표시하는 페이지
공사중 페이지: 웹브라우저 방문기록 삭제방법등을 안내해준다면 더 좋다.

또는 위와같은 플러그인을 사용치 않더라도 Elementor 페이지빌더 사용자는 템플릿 기능을 이용해 Elemenotor 메뉴 > Tools > Maintenance > Choose Mode > Maintenance 모드에서 자신이 손쉽게 만든 템플릿으로 위와같은 점검중 페이지를 만들 수 있습니다.

 

5)  DNS 설정에서 레코드의 값을 서울리전의 고정 IP 주소로 변경하기

이제 사실상 마지막단계로 도메인의 DNS 레코드를 새로운 서버로 연결해주면 됩니다. 연결해주고 나면 아래와 같은 상태가 되는 것이죠.

5단계 새로운 서버로 IP 연결

 앞서 준비단계에서 TTL 시간을 짧게 변경해두고 긴시간을 기다렸으니 이번에 바꾸면 짧은 시간내로 새로운 서울리전 서버 인스턴스로 연결될겁니다. 하지만 말했듯 인터넷 업체나 일부 지역 DNS들은 TTL 권장시간을 무시하기도 하니까 하루나 이틀 더 걸릴 수 있습니다.

여러분이 사용하는 도메인의 DNS 서비스회사가 어떤 회사일지 모르겠지만 여기서는 Godaddy(고대디)와 AWS Lightsail DNS Zone, 두 가지경우에서 살펴보겠습니다. 아마도 이미 알고있을테지만 다시한번 살펴보도록 하죠.

고대디 DNS 관리에서 IP 주소 바꾸기

자신의 도메인 관리, DNS 관리화면에서 DNS 레코드의 값(지시방향,IP주소)를 새로운 서버의 고정IP로 바꾸어줘야합니다. 아래그림처럼 바꿀 코드의 연필아이콘을 누릅니다. 

DNS 관리에서 메인도메인 레코드를 편집시도

A타입의 레코드이고 이름이 @인 레코드가 메인도메인입니다. 위 그림에서 www 서브도메인은 CNAME 타입의 레코드로 연결값이 @(메인도메인)으로 되어있으니 따로 수정할 필욘 없군요.

아래그림처럼 레코드 편집화면에서는 지시방향에 적힌 IP주소를 삭제하고 새로운 서버의 고정IP주소를 입력해주면 됩니다. 지시방향에 연결할 IP주소 입력 후 저장

이제 일정 시간이 지나면 새로운 서버로 연결 될 겁니다.하나의 서버에 여러 도메인을 연결했던 서버라면 다른 도메인이나 서브도메인의 레코드 값도 새로운 고정IP 주소로 바꾸어주어야겠죠.

 

AWS 라이트세일 DNS 영역을 사용 중일 때 레코드 변경하기

DNS관리 서비스회사를 고대디가 아닌 아마존 라이트세일의 DNS Zone(존)을 사용하는 분들도 있을 텐데요. 라이트세일 DNS영역에서는 아래처럼 바꾸어 주면 되겠습니다.

라이트세일 홈 > 네트워킹 > 자신의 도메인의 DNS 영역 선택

라이트세일 홈 > 네트워킹 > DNS 영역

세부정보 탭에서 A레코드의  연필모양편집 버튼 버튼을 클릭하고

레코드 목록

‘해석’ 입력칸에서 자신의 인스턴스에 연결된 고정IP 주소를 선택하면 되겠습니다. IP 주소를 직접 입력해도 됩니다.

해석 입력란에 IP 입력

www 같은 서브도메인 역시도 연결되어있다면 같은 IP 주소로 바꾸어 주면 됩니다. 

연결확인: 새로운 라이트세일 인스턴스 서버로 도메인 연결 확인하기

DNS에서 새로운 IP 주소로 바꾸고 시간이 좀 지나고 나면 도메인으로 접속했을 때 새로운 서버로 연결이 될겁니다. 그렇지 않다면 자신이 사용하는 웹브라우저의 방문기록 및 캐시, 쿠키를 삭제하고 재시도 해봅니다.

자신의 컴퓨터에서도 DNS 캐싱기능이 있는데 연결할 호스트 -> IP 연결주소 매칭정보를 가지고 있기도합니다. 일부 macOS 버전에서는 이 DNS 캐싱이 삭제되지 않아 접속정보가 바뀌지 않는 때도 있습니다. 그럴 땐 터미널 맥앱등으로 DNS 캐시를 삭제(Flush,플러쉬) 해주야할 수도 있습니다.

참고: OS X의 DNS 캐시 재설정하기 (Apple 공식 지원페이지)

AWS Lightsail 예전 리전의 서버 리소스 삭제

연결이 확인되면 더이상 필요없어진 예전 서버(도쿄리전)에 있는 리소스는 완전히 삭제해야 더이상 비용이 지출되지 않겠죠.

  • 고정 IP 주소
  • 인스턴스의 스냅샷
  • 서버 인스턴스

앞서 얘기했던 것처럼 기존 서버에 공사중 페이지를 표시해놨다면 하루 이틀 더 두었다가 삭제하도록 합시다.

8 댓글

  1. 일본 리전에 있는 블로그를 서울로 옮길려고 하다가 안 되서 뭔가 했더니 그런 이유였군요.
    (항상 잘 보고 있습니다.)

  2. 안녕하세요 스위프트님 글 재밌게 읽고 있습니다.

    그런데 어제부터 라이트세일 SSH에 접속하면 키보드 입력이 전혀 되질 않거든요? 혹시 저만 그런건지 궁금하네요..ㅠ

    스냅샷 에전걸로 복구하고 해도 키보드가 전혀 입력이 되질 않고 있어요;

      • 답변감사합니다. 그런데 이게 제 사이트나 제 인스턴스 서버 문제는 아니겠지요? 그동안 문제가 없다가 갑자기 그러네요.. 혹시 바이러스나 뭐 안좋은게 걸렸을까봐요..

        • 방금 다시 확인해 보니깐 라이트세일에 인스턴스 관리 페이지에서(SSH 들어가기전) 오른쪽 하단에 있는 한국어를 영어로 바꾸니깐 SSH에서 키보드 입력이 이루어지네요.. 그리고 한국어로 다시 바꾸니깐 입력이 안됩니다..ㅎㅎ;
          왜 이런지 저 같은 초보는 잘 모르겠지만..아무튼 이렇네요;;

  3. 안녕하세요. 아마존라이트세일을 우분투+mysql로 어제 설치했어요. 설치는 잘된거 같은데 플러그인을 추가하거나 글을 발행하면 꼭 sql 오류가 뜨네요.
    오류문구는 Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2) 로 해결방법을 찾아보니 my.cnf 파일을 수정해야하거나 mysql.sock를 지정해줘야한다던데…

    혹시 해결방법 아시나요?..

댓글은 익명이나 SNS, wordpress.com 로그인 지원). 마크다운 문법 사용가능(Shift+~ 키로 특정문구 혹은 위아래 ~~~으로감싸서 여러줄을 코드블락으로 작성)