Aurora DB 클러스터 역추적 - Amazon Aurora

Aurora DB 클러스터 역추적

Amazon Aurora MySQL 호환 버전에서는 백업에서 데이터를 복구하지 않고도 특정 시간으로 DB 클러스터를 되감을 수 있습니다.

역추적 개요

역추적은 DB 클러스터를 지정 시간으로 "되감습니다". 역추적은 어느 시점으로 복원하는 DB 클러스터 백업의 대체가 아닙니다. 다만 역추적은 기존의 백업 및 복원에 비해 다음과 같은 장점이 있습니다.

  • 실수를 쉽게 실행 취소할 수 있습니다. WHERE 절 없이 DELETE 작업과 같이 안전하지 않은 작업을 실수로 수행한 경우, 서비스 중단을 최소화한 채로 안전하지 않은 작업 이전 시간으로 DB 클러스터를 역추적할 수 있습니다.

  • DB 클러스터를 빠르게 역추적할 수 있습니다. DB 클러스터를 어느 시점으로 복원하면 새 DB 클러스터를 시작하면서 백업 데이터 혹은 DB 클러스터 스냅샷에서 복원하는데 이 과정이 몇 시간 걸릴 수 있습니다. DB 클러스터 역추적에 새 DB 클러스터는 필요하지 않으며 몇 분 만에 DB 클러스터를 되감습니다.

  • 이전 데이터 변경 사항을 확인할 수 있습니다. 특정 데이터 변화가 언제 발생했는지 판단을 돕기 위해 DB 클러스터를 앞뒤 시간으로 반복하여 역추적할 수 있습니다. 예를 들면 DB 클러스터를 세 시간 역추적한 후 한 시간 앞으로 역추적할 수 있습니다. 이 경우 역추적 시간은 원래 시간 2시간 전입니다.

참고

DB 클러스터를 특정 시점으로 복원하기에 대한 자세한 정보는 Aurora DB 클러스터 백업 및 복원에 대한 개요 단원을 참조하십시오.

역추적 기간

역추적에는 대상 역추적 기간과 실제 역추적 기간이 있습니다.

  • 대상 역추적 기간은 DB 클러스터를 역추적할 수 있는 기간입니다. 역추적을 활성화할 때 대상 역추적 기간을 지정하십시오. 예를 들어 하루 동안 DB 클러스터를 역추적할 수 있도록 하려면 대상 역추적 기간을 24시간으로 지정하십시오.

  • 실제 역추적 기간은 DB 클러스터를 역추적할 수 있는 실제 기간으로, 대상 역추적 기간보다 작을 수 있습니다. 실제 역추적 기간은 변경 레코드라고 부르는 데이터베이스 변경 정보의 저장에 사용할 수 있는 워크로드 및 스토리지가 기반입니다.

역추적이 활성화된 Aurora DB 클러스터에 업데이트를 적용하면 변경 레코드가 생성됩니다. Aurora는 대상 역추적 기간 동안 변경 기록을 보관하고, 사용자는 저장에 대한 시간당 요금을 지불합니다. 저장하는 변경 레코드의 수는 대상 역추적 기간과 DB 클러스터의 워크로드 두 가지에 의해 결정됩니다. 워크로드는 정해진 시간에 DB 클러스터를 변경한 횟수입니다. 워크로드가 많으면 작을 때에 비해서 역추적 기간에 저장하는 변경 레코드가 많습니다.

대상 역추적 기간을 DB 클러스터의 역추적이 가능한 최대 시간의 목표로 봐도 좋습니다. 대부분의 경우 지정해 둔 최대 시간을 역추적할 수 있습니다. 그러나 일부의 경우 DB 클러스터가 최대 시간 동안 역추적할 변경 레코드를 충분히 저장하지 못하면 실제 역추적 기간이 대상 역추적 기간보다 작습니다. 일반적으로 DB 클러스터에 워크로드가 너무 많으면 실제 역추적 기간이 대상 역추적 기간보다 더 작습니다. 실제 역추적 기간이 대상 기간보다 작으면 사용자에게 알림을 보냅니다.

DB 클러스터에 역추적이 활성화된 상태에서 DB 클러스터에 저장한 테이블을 삭제하면 Aurora이 역추적 변경 레코드에 그 테이블을 보관합니다. 이는 테이블 삭제 이전 시점으로 되돌릴 수 있도록 하기 위함입니다. 역추적 기간에 테이블을 저장할 공간이 충분하지 않으면, 결국 역추적 변경 레코드에서 이 테이블이 제거될 수 있습니다.

역추적 시간

Aurora는 항상 DB 클러스터와 일관된 시간으로 역추적합니다. 그렇게 하면 역추적을 종료할 때 커밋되지 않은 트랜잭션의 가능성이 없어집니다. 역추적 시간을 지정할 때 Aurora는 자동으로 가장 가깝고 일관성 있는 시간을 선택합니다. 이러한 방식은 종료한 역추적이 지정 시간과 정확히 일치하지 않을 수도 있다는 의미입니다. 그러나 describe-db-cluster-backtracks AWS CLI 명령을 사용하면 정확한 역추적 시간을 정할 수 있습니다. 자세한 내용은 기존 역추적 검색 섹션을 참조하세요.

역추적 제한

역추적에는 다음과 같은 제한이 적용됩니다.

  • 역추적 기능이 활성화된 상태에서 생성한 DB 클러스터에서만 역추적이 가능합니다. 역추적 기능을 활성화하도록 DB 클러스터를 수정할 수는 없습니다. 새 DB 클러스터를 만들거나 DB 클러스터의 스냅샷을 복원할 때 역추적 기능을 활성화할 수 있습니다.

  • 역추적 기간 제한은 72시간입니다.

  • 역추적은 전체 DB 클러스터에 영향을 미칩니다. 예를 들어 단일 테이블 또는 단일 데이터 업데이트를 선택적으로 역추적할 수 없습니다.

  • 백트랙이 활성화된 클러스터에서는 크로스 리전 읽기 전용 복제본을 생성할 수 없지만 클러스터에서 이진 로그(binlog) 복제를 여전히 활성화할 수는 있습니다. 또한 이진 로그가 활성화된 DB 클러스터의 역추적을 시도할 경우, 역추적 강제 시행을 선택하지 않으면 일반적으로 오류가 발생합니다. 강제로 역추적을 시도하면 다운스트림 읽기 전용 복제본이 손상되고 블루/그린 배포 등의 다른 작업에 방해가 됩니다.

  • 데이터베이스 복제본을 그 데이터베이스 복제본을 생성한 이전 시간으로 역추적할 수는 없습니다. 그러나 원본 데이터베이스를 이용하여 복제본 생성 이전 시간으로 역추적할 수 있습니다. 데이터베이스 복제에 대한 자세한 정보는 Aurora DB 클러스터에 대한 볼륨 복제 단원을 참조하십시오.

  • 역추적하면 DB 인스턴스가 잠시 중단됩니다. 역추적 작업을 시작하기 전에는 새 읽기 또는 쓰기 요청이 없도록 애플리케이션을 중단하거나 일시 중지해야 합니다. 역추적 작업 중에 Aurora는 데이터베이스를 일시 중지하고 열려 있는 연결을 닫으며 커밋되지 않은 읽기 및 쓰기를 모두 중단합니다. 그리고 역추적 작업이 완료되기를 기다립니다.

  • 역추적을 지원하지 않는 AWS 리전에서는 역추적 사용 클러스터의 리전 간 스냅샷을 복원할 수 없습니다.

  • Aurora MySQL 버전 2에서 버전 3으로 역추적을 활성화한 클러스터에 현재 위치 업그레이드를 수행하면 업그레이드가 발생하기 전의 시점으로 되돌릴 수 없습니다.

리전 및 버전 사용 가능 여부

Aurora PostgreSQL에서 역추적을 사용할 수 없습니다.

Aurora MySQL을 사용하는 역추적에 지원되는 엔진 및 리전 가용성은 다음과 같습니다.

리전 Aurora MySQL 버전 3 Aurora MySQL 버전 2
미국 동부(버지니아 북부) 모든 버전 모든 버전
미국 동부(오하이오) 모든 버전 모든 버전
미국 서부(캘리포니아 북부) 모든 버전 모든 버전
미국 서부(오레곤) 모든 버전 모든 버전
아프리카(케이프타운)
아시아 태평양(홍콩)
아시아 태평양(자카르타)
아시아 태평양(말레이시아)
아시아 태평양(멜버른)
아시아 태평양(뭄바이) 모든 버전 모든 버전
아시아 태평양(오사카) 모든 버전 버전 2.07.3 이상
아시아 태평양(서울) 모든 버전 모든 버전
아시아 태평양(싱가포르) 모든 버전 모든 버전
아시아 태평양(시드니) 모든 버전 모든 버전
아시아 태평양(도쿄) 모든 버전 모든 버전
캐나다(중부) 모든 버전 모든 버전
캐나다 서부(캘거리)
중국(베이징)
중국(닝샤)
유럽(프랑크푸르트) 모든 버전 모든 버전
유럽(아일랜드) 모든 버전 모든 버전
유럽(런던) 모든 버전 모든 버전
유럽(밀라노)
유럽(파리) 모든 버전 모든 버전
유럽(스페인)
유럽(스톡홀름)
유럽(취리히)
이스라엘(텔아비브)
중동(바레인)
중동(UAE)
남아메리카(상파울루)
AWS GovCloud(미국 동부)
AWS GovCloud(미국 서부)

역추적 지원 클러스터에 대한 업그레이드 고려 사항

Aurora MySQL 버전 3의 모든 마이너 버전에서 역추적이 지원되므로 백추적이 활성화된 DB 클러스터를 Aurora MySQL 버전 2에서 버전 3으로 업그레이드할 수 있습니다.

콘솔로 역추적 이벤트 구독

다음 절차에서는 콘솔을 사용하여 역추적 이벤트를 구독하는 방법을 설명합니다. 실제 역추적 기간이 대상 역추적 기간보다 작으면 이벤트가 사용자에게 이메일이나 문자 알림을 보냅니다.

콘솔을 사용하여 역추적 정보를 보려면
  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.

  2. 이벤트 구독을 선택합니다.

  3. 이벤트 구독 생성을 선택합니다.

  4. 이름 상자 안에 이벤트 구독에 대한 이름을 입력하고 활성화에서 꼭 를 선택합니다.

  5. 대상 섹션에서 새로운 이메일 주제를 선택합니다.

  6. 주제 이름에 주제의 이름을 입력하고, 수신자에는 알림을 받을 이메일 주소 혹은 전화번호를 입력합니다.

  7. 소스 섹션에서 소스 유형인스턴스를 선택합니다.

  8. 포함할 인스턴스Select specific instances(특정 인스턴스 선택)을 선택하고 DB 인스턴스를 선택합니다.

  9. 포함할 이벤트 범주특정 이벤트 범주 선택을 선택하고 역추적을 선택합니다.

    이제 페이지가 다음 페이지와 같아야 합니다.

    역추적 이벤트 구독
  10. Create(생성)를 선택합니다.

기존 역추적 검색

DB 클러스터의 기존 역추적 정보를 검색할 수 있습니다. 이 정보에는 역추적의 고유 식별자, 역추적한 양방향의 날짜와 시간, 역추적을 요청한 날짜와 시간, 역추적의 현재 상태 등이 포함됩니다.

참고

현재는 콘솔을 사용하여 기존 역추적을 검색할 수 없습니다.

다음 절차에서는 AWS CLI를 사용하여 DB 클러스터의 기존 역추적을 검색하는 방법을 설명합니다.

AWS CLI를 사용하여 기존 역추적을 검색하려면
  • describe-db-cluster-backtracks AWS CLI 명령을 호출하고 다음 값을 입력합니다.

    • --db-cluster-identifier – DB 클러스터의 이름입니다.

    다음은 sample-cluster의 기존 역추적을 검색하는 예입니다.

    대상 LinuxmacOS, 또는Unix:

    aws rds describe-db-cluster-backtracks \ --db-cluster-identifier sample-cluster

    Windows의 경우:

    aws rds describe-db-cluster-backtracks ^ --db-cluster-identifier sample-cluster

Amazon RDS API를 사용하여 DB 클러스터의 역추적 정보를 검색하려면 DescribeDBClusterBacktracks 작업을 사용하십시오. 이 작업은 DBClusterIdentifier 값에 지정된 DB 클러스터의 역추적 정보를 반환합니다.