Amazon Web Services 한국 블로그

Amazon Aurora Backtrack – 데이터베이스 시점 복원 기능 출시

실제 운영하는 데이터베이스에 간단해 보이는 수정 작업을 재빨리 수행해야 하는 상황을 누구나 경험해 보셨을 것입니다. 재빨리 쿼리를 작성하고 내용을 대충 훑어본 다음 바로 쿼리를 실행합니다.앗! 그런데… WHERE 절을 빼먹었거나, 잘못된 테이블을 삽입했거나 그 외에 심각한 실수를 할 경우가 있습니다.

문제를 인지하고 실행을 중지하지만 이미 피해는 발생했습니다. 한숨이 절로 나오는 현실에 실행 취소 옵션이 있었으면 어땠을까 하는 생각이 듭니다. 이제 어떻게 해야 할까요?

Amazon Aurora Backtrack 기능 출시
오늘 Amazon Aurora의 새로운 백트랙(Backtrack) 기능을 소개해 드리겠습니다. 이 기능은 조금전 상황에서 실행 취소 옵션에 가장 근접한 기술입니다.

이 기능은 신규 Aurora 데이터베이스 클러스터를 만들 때 활성화할 수 있습니다. 기능을 활성화하려면 어느 시점까지 되감을지를 지정하고 평소대로 데이터베이스를 사용하면 됩니다(이 옵션은 Configure advanced settings(고급 설정 구성) 페이지에서 지정).

Aurora는 로그 구조의 분산형 스토리지 시스템(자세한 내용은 높은 처리량의 클라우드 네이티브 관계형 데이터베이스를 위한 설계 고려 사항 참조)을 사용합니다. 데이터베이스에 대한 모든 변경 사항은 로그 시퀀스 번호(LSN)으로 식별되는 새로운 로그 레코드를 생성합니다. 백트랙 기능을 활성화하면 LSN의 저장을 위해 클러스터에 FIFO 버퍼가 프로비저닝됩니다. 이 방식은 초 단위의 빠른 액세스와 복구 시간을 지원합니다.

문제가 발생했을때, 애플리케이션을 일시 중지하고 Aurora 콘솔을 연 다음 클러스터를 선택하고 Backtrack DB cluster(DB 클러스터 백트랙)를 클릭합니다.

그런 다음 Backtrack(백트랙)을 선택하고 장애가 발생하기 전 시점을 선택한 다음 Backtrack DB cluster(DB 클러스터 백트랙)를 클릭합니다.

그런 다음 복원이 완료될 때까지 기다렸다가 애플리케이션을 다시 시작하여, 아무 일도 없었던 것처럼 계속 운영하면 됩니다. 백트랙을 시작하면 Aurora는 데이터베이스를 일시 중지하고, 열려있는 모든 연결을 종료하고, 처리되지 않은 쓰기 작업을 취소한 후 백트랙이 완료되기를 기다립니다. 작업이 완료되면 정상 작동이 재개되고 요청을 수락하기 시작합니다. 되감기 작업이 진행되는 동안 인스턴스 상태는 backtracking(백트랙 중)이 됩니다.

백트랙이 완료되면 콘솔에 알림이 표시됩니다.

너무 앞서 되돌아간 경우에는 다른 시점으로 다시 백트랙할 수 있습니다. 복제, 백업 및 복원과 같은 다른 Aurora 기능은 백트랙 대상으로 구성된 인스턴스에서도 계속 작동합니다.

이 멋진 새 기능을 창의적이고 독특하게 활용할 수 있는 사용 사례는 많이 있을 것입니다. 예를 들어, 테스트 데이터베이스에서 데이터베이스 내용의 변경이 수반되는 테스트를 수행한 후 이를 원상태로 복원할 수 있습니다. 복원은 API 또는 CLI에서 시작할 수 있으므로 기존 테스트 프레임워크에 쉽게 통합시킬 수 있습니다.

유의 사항
이 옵션은 새롭게 생성된 MySQL 호환 Aurora 데이터베이스 클러스터 및 백업에서 복원된 MySQL 호환 클러스터에 적용됩니다. 클러스터를 생성하거나 복원할 때 이 기능에 옵트인해야 하며 실행 중인 클러스터에서는 활성화할 수 없습니다.

이 기능은 서울 리전을 포함 Amazon Aurora가 실행되는 모든 AWS 리전에서 지원되며 지금 바로 사용할 수 있습니다.

Jeff;