확장 가능한 관계형 데이터베이스를 제공하는 RDS

이재홍 http://www.pyrasis.com 2014.03.24 ~ 2014.06.30

RDS를 특정 시점으로 복구하기

RDS DB 인스턴스를 생성할 때 자동 백업 설정(Enable Automatic Backups)을 했다면 DB의 특정 시점을 RDS DB 인스턴스로 생성할 수 있습니다. 이미 있는 DB 인스턴스의 내용을 되돌리는 것이 아니라 특정 시점의 내용을 DB 인스턴스로 새롭게 생성하는 방식입니다.

먼저 MySQL Workbench로 DB의 내용을 수정한 뒤 수정하기 전의 내용으로 복구해보겠습니다(MySQL Workbench 사용법은 ‘13.6 RDS DB 인스턴스 사용하기’를 참조하기 바랍니다).

MySQL Workbench를 실행하고 RDS DB 인스턴스(exampledbinstance)에 접속합니다. 그리고 ExampleDB → ExampleTable을 선택하고 오른쪽 마우스 버튼을 클릭하면 팝업 메뉴가 나옵니다. Select Rows - Limit 1000을 클릭합니다. ExampleTable의 내용이 표시되면 3번째 줄에 Andrew, LA를 추가하고 Apply 버튼을 클릭합니다.


그림 13-44 RDS DB 인스턴스(exampledbinstance)의 ExampleTable에 데이터 추가

RDS DB 인스턴스(exampledbinstance)의 ExampleTable에 데이터 추가가 완료되었습니다. 그림 13-45에서는 데이터가 추가된 시간이 05:13:28로 표시되고 있습니다.


그림 13-45 RDS DB 인스턴스(exampledbinstance)의 ExampleTable에 데이터 추가 완료

RDS DB 인스턴스 목록(Instances)에서 방금 DB에 내용 추가했던 DB 인스턴스(exampledbinstance)를 선택하고 마우스 오른쪽 버튼을 클릭하면 팝업 메뉴가 나옵니다(위쪽 Instance Actions 버튼을 클릭해도 같은 메뉴가 나옵니다). Restore to Point in Time을 클릭합니다.


그림 13-46 RDS DB 인스턴스의 Restore to Point in Time 기능 사용

그림 13-47처럼 특정 시점으로 DB를 복구합니다(특정 시점의 내용으로 새로운 DB 인스턴스 생성).

  • Use Custom Restore Time: MySQL Workbench에서 제가 데이터를 추가한 시간이 05:13:28이므로 June 21, 2014 05:12:00으로 설정하였습니다. 이 항목은 데이터를 추가하기 이전의 시간으로 설정해야 합니다. 날짜 부분을 클릭하면 달력이 표시되어 날짜를 선택할 수 있습니다.
  • Source DB Instance: 자동 백업을 했던 DB 인스턴스의 이름이 표시됩니다. 복구 전에 꼭 확인하기 바랍니다.
  • DB Instance Identifier: 자동 백업의 특정 시점으로 새로 생성될 DB 인스턴스의 이름입니다. exampledbinstance3를 입력합니다.
  • DB Engine: MySQL DB의 자동 백업이므로 변경할 수 없습니다.
  • License Model: MySQL은 General Public License만 선택할 수 있습니다.
  • DB Instance Class: 생성할 DB 인스턴스의 클래스입니다. 자동 백업의 특정 시점으로 DB 인스턴스를 생성할 때 성능이 더 좋은 인스턴스 클래스로 바꿀 수 있습니다. 여기서는 db.t1.micro를 선택합니다.
  • Multi-AZ Deployment: 장애에 자동으로 대처하는 Failover 기능을 위한 다중 가용 영역(Multi Availability Zone) 복제 옵션입니다. No를 선택합니다.
  • Auto Minor Version Upgrade: 자동으로 마이너 버전을 업데이트하는 옵션입니다. 보안 패치나 버그가 수정된 버전을 자동으로 업데이트합니다. 예를 들면 MySQL의 경우 5.6.13을 사용하고 있는데 5.6.14가 나오면 5.6.14 버전으로 업데이트하게 됩니다. 기본값 그대로 사용합니다.
  • Database Port: MySQL 접속 포트 번호입니다. 기본값 그대로 사용합니다.
  • Storage Type: 스토리지 타입입니다. 자동 백업을 했던 DB 인스턴스가 Provisioned IOPS를 사용했다면 여기서 Provisioned IOPS를 선택할 수 있습니다. Standard를 선택하여 일반 스토리지를 사용할 수도 있습니다. 기본값 그대로 사용합니다.
  • VPC: DB 인스턴스가 위치할 네트워크(VPC)입니다. 기본값 그대로 사용합니다.
  • DB Subnet Group: DB 인스턴스가 위치할 서브넷입니다. 위에서 Default VPC이외의 VPC를 선택했을 때 이 서브넷을 설정할 수 있습니다. 기본값 그대로 사용합니다.
  • Publicly Accessible: DB를 외부에서 접근할 수 있게 하는 옵션입니다. No로 설정하면 VPC 내부에서만 접근할 수 있습니다. 기본값 그대로 사용합니다.
  • Availability Zone: DB 인스턴스가 생성될 가용 영역(Availability Zone)입니다. 자동 백업을 했던 DB 인스턴스의 AZ가 기본적으로 선택됩니다. 기본값 그대로 사용합니다.
  • Option Group: DB 옵션입니다. MySQL은 특별히 지정하지 않아도 됩니다. 기본값 그대로 사용합니다.

설정이 완료되었으면 Launch DB Instance 버튼을 클릭합니다.


그림 13-47 RDS DB 인스턴스 Restore to Point in Time 기능 사용

RDS DB 인스턴스 목록(Instances)에서 자동 백업의 특정 시점으로 DB 인스턴스(exampledbinstance3)가 생성되고 있습니다. 완전히 생성되기까지 약 10~15분 정도 소요됩니다(DB의 용량에 따라 시간은 달라질 수 있습니다).

DB 인스턴스(exampledbinstance3)가 완전히 생성된 후 세부 내용에 엔드포인트 주소가 표시됩니다. 제가 생성한 DB 인스턴스의 엔드포인트 주소는 exampledbinstance3.cnlconsezo7y.ap-northeast-1.rds.amazonaws.com:3306입니다.


그림 13-48 자동 백업으로 RDS DB 인스턴스 생성 중

생성한 DB 인스턴스(exampledbinstance3)에 접속하려면 Security Group을 설정해줘야 합니다. ‘13.5 RDS DB 인스턴스 Security Group 생성 및 설정하기’를 참조하여 Security Group을 설정하기 바랍니다.

MySQL Workbench에서 자동 백업의 특정 시점으로 생성한 RDS DB 인스턴스(exampledbinstance3)에 접속해보면 그림 13-49와 같이 ExampleTable에 Andrew, LA를 추가하기 전의 데이터를 확인할 수 있습니다.


그림 13-49 자동 백업의 특정 시점으로 생성한 RDS DB 인스턴스(exampledbinstance3)에 접속

이처럼 자동 백업의 특정 시점을 RDS DB 인스턴스로 복구할 수 있습니다.


저작권 안내

이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.
  • 블로그, 게시판 등에 퍼가는 것을 금지합니다.
  • 비공개 포스트에 퍼가는 것을 금지합니다.
  • 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
  • 링크 및 SNS 공유는 허용합니다.