AWS EBS 스냅샷 복원, 백업 방법 자세히 설명

워드프레스, AWS EC2로 이 웹사이트를 운영하며 웹사이트의 보안과 백업의 중요성에 대해 정말 많이 느낀다. 보안은 어느정도 마무리했고 웹사이트 백업에 대해 한 3일 동안 연구했는데 오늘 제대로 된 방법을 알아내서 이 글에 정리해놓으려고 한다. 정말 간단하니 모두가 쉽게 따라할 수 있을 것이다.

AWS EBS 스냅샷 복원 방법 첫번째: EBS 스냅샷 만들기(이미 스냅샷 만들어놨다면 아래로!)

1. AWS EC2에 들어가 Elastic Block Store의 스냅샷을 클릭한다.

스냅샷 클릭

2. 오른쪽 상단의 ‘스냅샷 생성’을 누른다

스냅샷 생성 누르기

3. 스냅샷 설정에서 볼륨을 선택하고, 볼륨 ID를 고른 다음, 설명을 적은 후, 다른 건 안 건드리고 아래의 ‘스냅샷 생성’을 누른다

볼륨 체크하고, 볼륨 ID 고르고, 설명을 적어준다(나는 설명에 ‘EC2-Snapshot’ 같이 적어줬다.).
태그 없어도 되고 바로 ‘스냅샷 생성’ 누른다.

4. 이제 스냅샷이 만들어졌다(끝). 이 스냅샷을 가지고 추후 복원을 할 수 있다.




AWS EBS 스냅샷 복원 방법 두번째: 볼륨 생성 후, 인스턴스 연결하기

1. 복원하고 싶은 스냅샷을 누른 후, 오른쪽 상단의 ‘작업’에서 ‘스냅샷에서 볼륨 생성’을 누른다

‘작업’-> ‘스냅샷에서 볼륨 생성’

2. 볼륨 설정에서 ‘볼륨 유형’, ‘크기’, ‘가용 영역’을 선택한다. 보통 볼륨 유형은 범용 ssd(gp2)가 쓰이고 크기는 본인이 원하는 만큼, 가용 영역은 본인의 aws ec2 리젼을 선택하면 된다.

볼륨 유형, 크기, 가용 영역을 선택한다
태그 추가 안해도 되고 바로 ‘볼륨 생성’ 누르기

3. 이제 볼륨에서 현재 인스턴스에 연결된 볼륨과 방금 새로 생성한 볼륨 두 개를 볼 수 있다. 이제 인스턴스에 가서 현재 인스턴스를 중지시켜준다.

볼륨 두 개를 볼 수 있다.
인스턴스에 가서 ‘인스턴스 상태’-> ‘인스턴스 중지’를 눌러 현재 실행 중인 인스턴스를 중지시킨다.

4. 볼륨에 가서 현재 인스턴스에 연결되어있는 볼륨을 분리해준다(작업-> 볼륨 분리).

작업-> 볼륨 분리 누르기
‘분리’를 누른다.

5. 새로 만든 볼륨을 인스턴스에 연결해준다(작업-> 볼륨 연결). 루트 볼륨 하나만 인스턴스에 연결해주는 경우, 디바이스 이름을 ‘/dev/sda1’로 설정한다.

작업-> 볼륨 연결 누르기
디바이스 이름이 디폴트로 /dev/sdf 라고 적혀있는데 본인이 나처럼 루트 볼륨 하나만 인스턴스에 연결할 경우, /dev/sdf 대신 /dev/sda1(루트 볼륨)로 바꾸도록 한다.

**디폴트로 적혀있는 /dev/sdf(데이터 볼륨)로 디바이스 이름을 설정하면 나중에 인스턴스 다시 시작할 때 ‘Instance does not have a volume attached at root (/dev/sda1)’ 이런 에러 떠서 또 다시 와서 볼륨 분리하고 재연결해야한다(루트 볼륨 디바이스 이름으로(/dev/sda1) 바꿔야한다). 본인이 여러 개의 볼륨을 인스턴스에 많이 연결해놨다면 구글링해서 더 정보를 찾아보는 걸 추천한다. 나의 경우에는 /dev/sda1로 적으면 모든 게 스무스하게 흘러갔다.**

6. 인스턴스에 돌아가서 중지했던 인스턴스를 다시 시작해준다.

인스턴스 상태-> 인스턴스 시작 누르기

7. 인스턴스를 시작하고 해당 인스턴스 ID를 누르면 퍼블릭 IP가 바뀌어있다. 이 퍼블릭 IP를 본인의 도메인에 가서 바꿔주도록 한다.

바뀐 퍼블릭 IPv4 주소
나는 구글 도메인을 이용하기 때문에 DNS를 클릭한다.
맞춤 레코드 관리-> 데이터 부분을 위에서 변경된 퍼블릭 IP로 바꿔준다.

8. 잠시 기다렸다 본인의 도메인(www.어쩌구저쩌구.com)에 들어가면 웹사이트가 백업되었던 스냅샷으로 원상복구되어있음을 발견할 수 있다.

*******저 위에서 분리한 볼륨은 꼭 삭제하자. 추후 과금될 우려가 있으므로*******




AWS 백업 방법 정리 소감 및 자기반성

웹사이트 운영자라면 보안, 백업에 정말 철저해야한다. 나는 솔직히 두 달 동안 130여개의 글을 쓰면서 updraftplus(워드프레스 백업 플러그인)만 믿고 백업에 별로 신경쓰지 않았는데 레딧의 이 글을 읽고 정말 많이 반성했다.

나에게 깨달음을 준 사람.. 고맙습니다.

저 레딧 글을 잠시 번역해보자면

“나는 항상 호스팅하는 곳에 백업을 맡기고 그 다음 손수 백업을 한 다음, 맨 마지막이나 되서야 플러그인에 의지해.”

“백업 플러그인을 사용하는 건 아무 문제가 없어, 하지만 플러그인은 리소스를 많이 잡아먹을 수 있고 백업에 가끔 실패할 수 있지(헐랭..😱).”

“나의 호스팅은 자동 백업 옵션을 제공해서 나는 그들이 백업을 매일 하도록 설정해놓을 수 있어.”

“다른 방법은 손수 백업을 하는 거야, phpmyadmin에 데이터베이스 추출하고 ftp 연결해서 파일 다운받으면 돼. 이 방법을 쓰면 파일 다운받다 오류가 생겨도 다시 시도할 수 있지.”

“마지막 방법은 플러그인으로 백업을 하는 거야. updraftplus가 그래도 지금 나온 것 중엔 가장 나아.”

뭐 이런 말인데 이 말을 듣고 눈이 번쩍 뜨이면서 백업을 이중 삼중으로 꼭 해야겠다고 느꼈다(updraftplus 백업이 실패할 수 있다니..). 나는 아직 손수 백업하는 방법은 못 익혔으나 그래도 aws 호스팅에서 백업하는 방법을 익혔고 updraftplus도 쓰고 있으니 완전 나이브하게 웹사이트 운영하는 건 아니라고 이제 말할 수 있겠다ㅎㅎ. 아무튼 백업은 호스팅에서도 해야하고 로컬에도 해놓는 게 가장 좋다. 그럼 이상 이 글을 마치겠다.

Leave a Comment