[AWS] EC2 프리티어 스냅샷 시점으로 복원하기 – EC2 스냅샷 복구

EC2 스냅샷 복구 방법에 대해 포스팅하겠습니다.

VPS서버에는 워드프레스는 물론 고스트 블로그부터 그 이상의 수많은 것들을 운영해볼 수 있습니다. 상당히 자유롭지만 한 번의 실수로 전체를 다 날리는 일도 허다합니다. 고로 백업과 복구는 꼭 알아두어야 하는 과정입니다.

하지만 AWS 라이트세일에 비해 상대적으로 EC2 복원 방법이 잘 소개되어있지 않아 포스팅합니다.

워드프레스 사이트는 php 파일을 잘못 건드릴 경우 ‘이 웹사이트에 치명적인 오류가 있습니다’ 라는 문구를 반환하며 제대로 사이트에 접속할 수 없습니다.

다만, 예외적으로 도메인/wp-admin 으로 접속이 되는 경우도 있으니 스냅샷 백업을 적시에 하지 못 했다면 일단 워드프레스 도구 > 가져오기를 통해 xml 데이터라도 받은 후 아래 과정을 진행하시는 것을 추천드립니다.

wp-admin으로 접속이 되는 경우는 SSH, SFTP로도 접속이 가능하니 php파일에서 문제되는 요소를 지울 수 있다면 먼저 진행해보시고, 워드프레스가 아니라 EC2 인스턴스 자체를 스냅샷 시점으로 돌려야 한다면 아래 포스팅을 계속 참고하세요.

EC2 스냅샷 복구

AWS EC2에 접속 후 Elastic Block Store > 스냅샷 경로로 접속합니다.

저장해 놓은 스냅샷이 보입니다.

체크한 상태로 작업 > 볼륨 생성 을 클릭합니다.

지금 만드는 스냅샷 아이디는 생성 날짜가 당일로 지정되기 때문에 헷갈리지는 않지만, 여러 인스턴스를 운영하는 경우 혼선이 생길 수 있기 때문에 따로 메모해줍니다.

가용 영역은 기존에 만들었던 리전으로 기본 선택되어있을 것입니다. 따로 수정하지 않고 볼륨 생성 클릭합니다.이렇게 되면 스냅샷 생성 시점의 EBS 볼륨을 하나 더 만든것이 됩니다.

지금 EC2 인스턴스와 연결된 볼륨은 스냅샷 생성 이후 오류가 생겼으니, 이 저장소를 버리고 스냅샷을 찍은 시점의 EBS 볼륨으로 복원하여 기존 인스턴스와 그대로 붙여줄 것입니다.

그렇기 때문에 라이트세일에서 찍은 스냅샷을 복원할 때 처럼 인스턴스를 새로 만들 필요가 없습니다. 물론, 라이트세일도 고정IP를 분리한 뒤 새 인스턴스에 붙여주면 간단하지만 이렇게 복구하면 그런 과정 자체를 할 필요가 없습니다.

참고로 EC2 프리티어를 이용중이라, EBS볼륨을 추가로 생성하여 복구/복원하면 과금이 될까봐 망설이시는 분들이 있는데 ‘빠른 스냅샷 복원’ 을 사용하지만 않으면 큰 문제가 없습니다. 30GiB는 프리티어 지원 한도 내입니다. 새로 볼륨을 만들어준 후 기존 볼륨은 바로 삭제할 것입니다.

인스턴스 목록으로 이동합니다.

순서대로 시행합니다.

  • 인스턴스 ID 우클릭 > 인스턴스 중지
  • 스토리지 클릭
  • 루트 디바이스 이름 복사 후 메모
  • 여러 인스턴스를 운영중일 경우 복원할 인스턴스 ID도 필수로 메모합니다.
  • 볼륨 ID(파란색 박스)를 클릭

파란색 박스의 볼륨 ID를 클릭했을 때 나타나는 창입니다.

클릭해서 들어 온 창이기 때문에 필터에 설정된 볼륨 ID가 있습니다. 그렇기 때문에 위에서 추가로 볼륨을 생성했어도 1개의 볼륨만 노출 될 것입니다. 해당 볼륨은 기존 볼륨이니 연결을 끊어줄 것입니다. 순서대로 시행합니다.

  • 현재 상태에서(구 볼륨 선택상태) 위쪽 파란색 테두리 작업 클릭 > 볼륨 분리
  • 아래쪽 파란색 테두리 x 클릭

그럼 연결이 끊어진 기존 볼륨 (혹은 다른 인스턴스의 볼륨들) + 방금 새로 만든 볼륨이 같이 보일것입니다.

볼륨 이름을 다시 확인 한 다음 체크 > 작업 > 볼륨 연결 을 클릭합니다.

  • 볼륨 : 선택한 볼륨 ID가 맞는지 확인합니다.
  • 인스턴스 : 복원할 인스턴스 ID를 붙여넣습니다.
  • 디바이스 : 위에서 메모하라고 했던 루트 디바이스 이름을 그대로 붙여넣습니다. 운영체제마다 상이할 수 있습니다.

모두 알맞게 기재하고 연결한 뒤 다시 인스턴스 목록으로 돌아옵니다.

인스턴스 ID 우클릭 > 인스턴스 시작

인스턴스가 정상적으로 부팅이 완료된 것을 확인 후 EBS > 볼륨 에서 기존 볼륨을 삭제합니다.

만약, 워드프레스 데이터베이스 등의 오류가 생겼을 경우 이 과정을 모두 끝내고 인스턴스 재부팅이 완료되었다고 해서 바로 사이트가 정상적으로 동작하지는 않습니다.

도메인으로 접속했을 경우, Error establishing a database connection 오류 또는 Error establishing a database connection, This either means that the username and password information in your wp-config.php file is incorrect or we can’t contact the database server at localhost. This could mean your host’s database server is down. 등의 오류가 나타납니다.

2-3분정도 기다리면 서버가 안정화되며 스냅샷 시점의 정상적인 환경으로 돌아옵니다.


댓글 남기기