[AWS] RDS 백업과 복구 (백업은 필수...)

김진형·2024년 1월 12일
1

1. Why?

토이 프로젝트를 진행하면서 잠깐 서비스를 운영하였는데 그동안 쌓인 데이터를 실수로 삭제해버렸다... 복구를 하려고 애썼으나 결국 실패 😭😭😭😭😭
솔직히 삭제를 일부러 하는 거 아니면 할리가 있겠어?? 하고 백업을 해놓지 않았는데 내가 바보같이 drop table로 다 날려먹었다.. (데이터베이스 이름이 비슷해서 헷갈렸음..)
때문에 누구나 똑같은 실수를 할 수도 있기에 백업과 복구 방법을 자세히 정리하고자 한다.

2. RDS를 이용한 데이터 백업

mysql에서 mysqldump로 데이터를 백업하는 방법이 있지만 이 포스트에서는 RDS를 이용한 데이터 백업을 다루겠다.

2-1. 백업 설정 확인

RDS -> 데이터베이스 -> [RDS 이름] -> 유지 관리 및 백업
으로 이동하면 아래 사진처럼 확인할 수 있다.
현재 나는 백업, 스냅샷을 생성해두지 않았다. 이제 이걸 복구가 가능하도록 백업을 해보자.

2-2. 백업과 스냅샷

백업이라는 것은 특정 시점의 스냅샷을 남기는 것이다. RDS 스냅샷이란 특정 시점의 Amazon RDS 데이터베이스 인스턴스의 백업이다. 데이터베이스의 데이터 및 구성 설정을 캡처하여 해당 스냅샷에서 데이터베이스를 복원하거나 새 데이터베이스를 만들 수 있다.

스냅샷의 세부적인 특징은 여기를 참고하자

백업을 하는 방식은 수동 백업, 자동 백업 2가지가 있다.

자동 백업된 스냅샷과 수동 백업한 스냅샷의 가장 큰 차이점은 기존 RDS 인스턴스를 삭제하면 자동 백업된 스냅샷들은 같이 삭제가 되고 수동 백업한 스냅샷은 유지가 된다. 그렇기 때문에 RDS 인스턴스를 삭제하기 전에 꼭 수동으로 스냅샷을 저장하고 삭제하자.

2-3. 수동 백업

수동 백업은 RDS 생성 후 특정 시점에 데이터를 남기고 싶을 때 아래처럼 스냅샷을 생성하면 된다.

아래처럼 스냅샷이 생성되고 있다.
스냅샷이 생성되는 중에는 기존 DB가 다운될 수 있으니 서비스 중인 인스턴스가 있다면 주의하자! (데이터 양에 따라 다르지만 5분 내외로 걸린다고 한다.)

성공!

2-4. 자동 백업

RDS를 생성할 때 입맛에 맞게 설정을 해주면 된다.

3. RDS를 이용한 데이터 복구

3-1. 수동 백업한 데이터 복구

이건 나중에 해보고 정리하자.

3-2. 자동 백업한 데이터 복구

특정 시점으로 복원을 클릭한다.

복원 가능한 최근 시간을 선택한다면 제일 최근 시점으로 복원을 할 수 있고 사용자 지정 날짜 및 시간을 선택하면 복구 가능시간 사이에 정확한 시간 분 초까지 설정해서 복원 시점을 정할 수 있다.

그 외에 설정들은 기존 RDS 인스턴스와 똑같이 복제되므로 따로 수정할 필요 없다.

밑으로 내려가 삭제 방지를 활성화한 후 특정 시점으로 복원을 누르면 몇 분내에 새로운 RDS 인스턴스가 복제된다.

4. 느낀점

너무너무 아찔하고 팀원들에게 미안하다.. 데이터를 삭제해버리다니... 앞으로 개발용 DB가 아닌 서비스용 DB는 무조건 백업을 해둬야겠다. 오늘도 하나 배워갑니다..!

0개의 댓글