Amazon RDS의 Backup 및 복구 - AWS규범적 지침

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Amazon RDS의 Backup 및 복구

Amazon RDS에는 데이터베이스 백업 자동화를 위한 기능이 포함되어 있습니다. Amazon RDS는 개별 데이터베이스가 아닌 전체 DB 인스턴스를 백업하여 데이터베이스 인스턴스의 스토리지 볼륨 스냅샷을 생성합니다. Amazon RDS를 사용하면 자동 백업을 위한 백업 윈도우를 설정하고, 데이터베이스 인스턴스 스냅샷을 생성하고, 리전 및 계정 간에 스냅샷을 공유 및 복사할 수 있습니다.

Amazon RDS는 DB 인스턴스 백업 및 복원을 위한 두 가지 옵션을 제공합니다.

  • 자동 백업DB 인스턴스의 특정 시점 복구 (PITR) 를 제공합니다. 새 DB 인스턴스를 생성할 때 자동 백업은 기본적으로 켜집니다.

    Amazon RDS는 DB 인스턴스를 생성할 때 정의한 백업 기간 동안 데이터의 전체 일일 백업을 수행합니다. 자동 백업에 대해 최대 35일의 보존 기간을 구성할 수 있습니다. Amazon RDS는 DB 인스턴스에 대한 트랜잭션 로그를 Amazon S3 5분마다 업로드합니다. Amazon RDS는 데이터베이스 트랜잭션 로그와 함께 일일 백업을 사용하여 DB 인스턴스를 복원합니다. 보존 기간 중 어느 시점 (초) 으로나 인스턴스를 복원할 수 있습니다 (LatestRestorableTime(일반적으로 마지막 5분).

    DB 인스턴스에 대한 최신 복원 가능 시간을 찾으려면DescribeDBInstancesAPI 호출 또는설명Amazon RDS 콘솔의 데이터베이스에 대한 탭입니다.

    PITR을 시작하면 트랜잭션 로그가 가장 적절한 일일 백업과 결합되어 DB 인스턴스를 요청한 시간으로 복원합니다.

  • DB 스냅샷사용자가 시작한 백업은 DB 인스턴스를 원하는 만큼 자주 알려진 상태로 복원하는 데 사용할 수 있습니다. 그런 다음 언제든지 해당 상태로 복원할 수 있습니다. Amazon RDS 콘솔을 사용하거나CreateDBSnapshotDB 스냅샷을 생성하기 위한 API 호출입니다. 이러한 스냅샷은 콘솔이나 콘솔을 사용할 때까지 유지됩니다.DeleteDBSnapshot명시적으로 삭제하기 위한 API 호출입니다.

이 두 백업 옵션 모두 에서 Amazon RDS에 대해 지원됩니다.AWS Backup다른 기능도 제공합니다. 사용 고려AWS BackupAmazon RDS 데이터베이스에 대한 표준 백업 계획을 설정하고 특정 데이터베이스에 대한 백업 계획이 고유한 경우 사용자가 시작한 인스턴스 백업 옵션을 사용합니다.

Amazon RDS는 DB 인스턴스에서 사용하는 기본 스토리지에 직접 액세스할 수 없도록 합니다. 또한 RDS DB 인스턴스의 데이터베이스를 로컬 디스크로 직접 익스포트할 수 없습니다. 경우에 따라 클라이언트 유틸리티를 사용하여 기본 백업 및 복원 기능을 사용할 수 있습니다. 예를 들어 를 사용할 수 있습니다.Amazon RDS MySQL 데이터베이스를 사용한 mysqldump 명령어로컬 클라이언트 시스템으로 데이터베이스를 익스포트합니다. 경우에 따라 Amazon RDS는 데이터베이스의 기본 백업 및 복원을 수행하기 위한 증강 옵션도 제공합니다. 예를 들어 Amazon RDS는 저장 프로시저 를 제공합니다.SQL Server 데이터베이스의 RDS 데이터베이스 백업 내보내기 및 가져오기.

전체 백업 및 복원 방식의 일부로 데이터베이스 복원 프로세스와 데이터베이스 클라이언트에 미치는 영향을 철저히 테스트해야 합니다.

DNS CNAME 레코드를 사용하여 데이터베이스 복구 중 클라이언트 영향 감소

PITR 또는 RDS DB 인스턴스 스냅샷을 사용하여 데이터베이스를 복원하면 새 엔드포인트가 있는 새 DB 인스턴스가 생성됩니다. 이러한 방식으로 특정 DB 스냅샷이나 특정 시점으로부터 DB 인스턴스를 여러 개 생성할 수 있습니다. 라이브 RDS DB 인스턴스를 교체하기 위해 RDS DB 인스턴스를 복원할 때 특별히 고려해야 할 사항이 있습니다. 예를 들어 중단 및 수정을 최소화하면서 기존 데이터베이스 클라이언트를 새 인스턴스로 리디렉션하는 방법을 결정해야 합니다. 또한 새 인스턴스가 쓰기 수신을 시작할 때 복원된 데이터 시간과 복구 시간을 고려하여 데이터베이스 내 데이터의 연속성과 일관성을 보장해야 합니다.

DB 인스턴스 엔드포인트를 가리키고 클라이언트가 이 DNS 이름을 사용하도록 하는 별도의 DNS CNAME 레코드를 생성할 수 있습니다. 그런 다음 데이터베이스 클라이언트를 업데이트하지 않고도 CNAME을 업데이트하여 복원된 새 엔드포인트를 가리킬 수 있습니다.

CNAME 레코드의 TTL (Time to Live) 을 적절한 값으로 설정합니다. 지정하는 TTL은 다른 요청이 이루어지기 전에 DNS 해석기로 레코드가 캐시되는 시간을 결정합니다. 일부 DNS 해석기 또는 응용 프로그램은 TTL을 준수하지 않을 수 있으며 TTL보다 오래 레코드를 캐시할 수 있다는 점에 유의해야 합니다. Amazon Route 53의 경우 더 긴 값 (예: 172800초 또는 2일) 을 지정한 경우, 이 레코드의 최신 정보를 얻으려면 DNS 재귀 확인자가 Route 53에 대한 호출 수를 줄여야 합니다. 이렇게 하면 지연 시간이 줄어들고 Route 53 서비스에 대한 청구서가 줄어듭니다. 자세한 내용은 단원을 참조하십시오.Amazon Route 53이 도메인의 트래픽을 라우팅하는 방법.

또한 응용 프로그램 및 클라이언트 운영 체제는 새 DNS 확인 요청을 시작하고 업데이트된 CNAME 레코드를 검색하기 위해 플러시하거나 다시 시작해야 하는 DNS 정보를 캐시할 수 있습니다.

데이터베이스 복원을 시작하고 복원된 인스턴스로 트래픽을 이동할 때 모든 클라이언트가 이전 인스턴스 대신 복원된 인스턴스에 쓰고 있는지 확인합니다. 데이터 아키텍처는 데이터베이스 복원, 복원된 인스턴스로 트래픽을 이동하도록 DNS를 업데이트한 다음 이전 인스턴스에 기록될 수 있는 모든 데이터에 업데이트 적용을 지원할 수 있습니다. 그렇지 않은 경우 DNS CNAME 레코드를 업데이트하기 전에 기존 인스턴스를 중지할 수 있습니다. 그러면 새로 복원된 인스턴스에서 모든 액세스가 이루어집니다. 이로 인해 개별적으로 처리할 수 있는 일부 데이터베이스 클라이언트에 일시적으로 연결 문제가 발생할 수 있습니다. 클라이언트 영향을 줄이기 위해 유지 관리 기간 동안 데이터베이스 복원을 수행할 수 있습니다.

지수 백오프를 사용하여 재시도를 통해 데이터베이스 연결 실패를 정상적으로 처리하도록 애플리케이션을 작성합니다. 이렇게 하면 응용 프로그램이 예기치 않게 중단되지 않고 복원 중에 데이터베이스 연결을 사용할 수 없게 될 때 응용 프로그램을 복구할 수 있습니다.

복원 프로세스를 완료한 후에는 이전 인스턴스를 중지된 상태로 유지할 수 있습니다. 또는 보안 그룹 규칙을 사용하여 트래픽이 더 이상 필요하지 않을 때까지 이전 인스턴스로 트래픽을 제한할 수 있습니다. 점진적인 폐기 방식의 경우 먼저 보안 그룹별로 실행 중인 데이터베이스에 대한 액세스를 제한합니다. 더 이상 필요 없는 인스턴스는 최종적으로 중지할 수 있습니다. 마지막으로 데이터베이스 인스턴스의 스냅샷을 만들어 삭제합니다.