RDS에서 PITR(Point in time recovery)를 이용해서 특정 시점으로 복원해 보기

RDS에서 PITR(Point in time recovery)를 이용해서 특정 시점으로 복원해 보는 과정을 정리해 봤습니다.
2023.07.01

안녕하세요 클래스메소드 김재욱(Kim Jaewook) 입니다. 이번에는 RDS에서 PITR(Point in time recovery)를 이용해서 특정 시점으로 복원해 보는 과정을 정리해 봤습니다.

PITR(Point in time recovery)?

PITR(Point in time recovery)는 특정 시점으로 복구한다는 의미로, 5분 전 혹은 10분 전과 같이 사용자가 특정 날짜, 시간을 정해 원하는 시점으로 복원할 수 있는 것을 말합니다.

AWS에서도 이러한 기능을 제공하고 있는데, 이번 블로그에서는 RDS를 이용해 특정 시점으로 되돌려보는 작업을 해보고자 합니다.

※ 이번 블로그에서 사용한 데이터베이스는 MySQL 8.0.32 버전입니다.

더미 데이터 준비

테스트를 위해 간단한 더미 데이터를 준비합니다.

create table product (id int, name varchar(10));

insert into product(id, name) values(1, "test1");
insert into product(id, name) values(2, "test2");
insert into product(id, name) values(3, "test3");

다음 명령어를 통해 테이블에 더미 데이터를 삽입합니다.

※ 테스트를 위한 더미 데이터입니다.

이어서 delete 명령어로 테이블에 삽입한 데이터를 삭제합니다.

delete from product;

PITR(Point in time recovery)로 복원

  • RDS콘솔 화면에서 복원할 RDS 인스턴스를 선택합니다.
  • 「작업」을 클릭합니다.
  • 「특정 시점으로 복원」을 클릭합니다.

복원 시간을 설정합니다.

「복원 가능한 최근 시간」의 경우 현재 시간에서 5분전으로 복원할 수 있습니다.

또 한「사용자 지정 날짜 및 시간」을 통해 복원하고 싶은 시간대로 복원할 수 있습니다.

DB 인스턴스 식별자의 경우, 복원할 시 새로운 RDS 인스턴스가 생성되어 복원되기 때문에 중복되어서는 안됩니다.

초기 데이터베이스의 경우 또 다른 데이터베이스를 생성하고 싶은 경우 입력합니다.

※ 복원할 시, 기존에 생성한 데이터베이스 또 한 복원되기 때문에 데이터베이스 명을 입력할 필요는 없습니다.

설정이 끝났다면「특정 시점으로 복원」을 클릭합니다.

※ 삭제 방지 활성화의 경우 테스트 환경이기 때문에 체크하지 않은 상태입니다.

RDS 콘솔 화면을 확인해 보면, 새롭게 RDS 인스턴스가 생성되는 것을 확인할 수 있습니다.

마지막으로 복원한 RDS로 접속해, 테이블을 확인해 보면, 문제 없이 복원된 것을 확인할 수 있습니다.

주의할 점

이번 블로그에서는 RDS를 생성할 때, 자동 백업을 활성화한 상태로 생성했습니다.

여기서 자동 백업을 활성화 하지않으면, 특정 시점으로의 복원은 불가능합니다.

실제로 백업을 활성화 하지 않은 상태로「작업」으로 들어가보면「특정 시점으로 복원」이 비활성화 된 것을 확인할 수 있습니다.

AWS Backup에서 연속 백업을 사용하면 AWS Backup 지원되는 리소스를 1초의 정확도 (최대 35일 이전) 내에서 선택한 특정 시간으로 되돌려서 복원할 수 있습니다.

이럴 경우 RDS 자체 백업을 사용하지 않을 경우, AWS Backup을 이용해서 특정 시점으로 복원을 할 수 있습니다.

※ 그 외 스냅샷 등을 생성해 주는 백업 툴을 사용하더라도 PITR(Point in time recovery)는 불가능 합니다.

본 블로그 게시글을 읽고 궁금한 사항이 있으신 분들은 kis2702@naver.com로 보내주시면 감사하겠습니다.