Amazon Redshift 스냅샷 및 백업
스냅샷은 클러스터의 특정 시점 백업입니다. 자동 및 수동의 2가지 유형의 스냅샷이 있습니다. Amazon Redshift는 암호화된 보안 소켓 계층(SSL) 연결을 사용하여 이러한 스냅샷을 Amazon S3에 내부적으로 저장합니다.
Amazon Redshift는 이전 자동 스냅샷 이후 클러스터의 변경 사항을 추적하는 증분 스냅샷을 자동으로 생성합니다. 자동 스냅샷은 클러스터를 복원하는 데 필요한 모든 데이터를 유지합니다. 자동 스냅샷을 만든 시기를 제어하는 스냅샷 일정을 생성하거나 언제든지 수동 스냅샷을 생성할 수 있습니다.
스냅샷에서 복원하면 Amazon Redshift에서 새 클러스터가 생성되고 모든 데이터가 로드되기 전에 새 클러스터를 사용할 수 있으므로 즉각 새 클러스터 쿼리를 시작할 수 있습니다. 클러스터는 활성 쿼리에 응답하여 스냅샷에서 온디맨드로 데이터를 스트리밍한 다음 백그라운드에서 남은 데이터를 로드합니다.
클러스터를 시작할 때 자동 및 수동 스냅샷의 보관 기간을 설정할 수 있습니다. 자동 및 수동 스냅샷의 기본 보존 기간은 클러스터를 수정해 변경할 수 있습니다. 수동 스냅샷의 보존 기간은 스냅샷을 생성할 때 또는 스냅샷 설정을 수정해 변경할 수 있습니다.
AWS Management Console에서 스냅샷 세부 정보를 확인하거나 CLI에서 describe-cluster-snapshots 또는 DescribeClusterSnapshots API 작업을 호출하여 스냅샷 진행 상황을 모니터링할 수 있습니다. 진행 중인 스냅샷의 경우, 증분 스냅샷 크기, 전송 속도, 경과 시간, 남은 예상 시간 같은 정보가 표시됩니다.
클러스터에서 백업을 항상 사용할 수 있도록 Amazon Redshift는 Amazon Redshift에서 관리하는 내부적으로 관리되는 Amazon S3 버킷에 스냅샷을 저장합니다. 스토리지 요금을 관리하려면 자동화된 스냅샷을 보관해야 하는 일 수를 평가하고 그에 따라 보관 기간을 구성합니다. 더 이상 필요하지 않은 수동 스냅샷을 삭제합니다. 백업 스토리지 비용에 대한 자세한 내용은 Amazon Redshift 요금
Amazon Redshift Serverless에서 스냅샷 및 백업 작업
Amazon Redshift Serverless를 사용하면 프로비저닝된 클러스터에서와 마찬가지로 네임스페이스에 있는 객체와 데이터를 특정 시점으로 표현한 백업을 생성할 수 잇습니다. Amazon Redshift Serverless의 백업에는 두 가지 유형이 있습니다. 하나는 수동으로 생성하는 스냅샷이고 다른 하나는 Amazon Redshift Serverless가 자동으로 생성하는 복구 시점입니다. Amazon Redshift Serverless의 스냅샷 사용에 대한 자세한 내용은 스냅샷 및 복구 시점에서 확인할 수 있습니다.
프로비저닝된 클러스터에서 서버리스 네임스페이스로 스냅샷을 복원할 수도 있습니다. 자세한 내용은 스냅샷에서 서버리스 네임스페이스 복원을 참조하세요.
자동 스냅샷
클러스터에 자동 스냅샷이 사용되면 Amazon Redshift는 정기적으로 해당 클러스터의 스냅샷을 생성합니다. 기본적으로 Amazon Redshift는 8시간마다 또는 데이터 노드당 5GB가 변경된 이후 중 먼저 오는 때를 기준으로 스냅샷을 생성합니다. 데이터가 5GB * 노드 수보다 큰 경우 자동 스냅샷 생성 사이의 최소 시간은 15분입니다. 또는 자동 스냅샷을 만든 시기를 제어하는 스냅샷 일정을 생성할 수 있습니다. 사용자 지정 일정을 사용하는 경우 자동 스냅샷 사이의 최소 시간은 1시간입니다. 클러스터를 생성하면 기본적으로 자동 스냅샷이 활성화됩니다.
자동 스냅샷은 보존 기간이 끝날 때 삭제됩니다. 기본 보존 기간은 하루지만 Amazon Redshift 콘솔을 사용하거나 Amazon Redshift API 또는 CLI를 통해 프로그래밍 방식으로 수정할 수 있습니다.
자동 스냅샷을 비활성화하려면 보존 기간을 0으로 설정합니다. 자동 스냅샷을 사용 중지하면 Amazon Redshift는 스냅샷 생성을 중단하며 클러스터의 기존 자동 스냅샷을 모두 삭제합니다. RA3 노드 유형에 대한 자동 스냅샷은 비활성화할 수 없습니다. RA3 노드 유형 자동 보존 기간을 1~35일로 설정할 수 있습니다.
Amazon Redshift만 자동 스냅샷을 삭제할 수 있습니다. 사용자가 수동으로 삭제할 수 없습니다. Amazon Redshift는 스냅샷의 보존 기간이 끝날 때, 클러스터에 대해 자동 스냅샷을 사용 중지할 때 또는 클러스터를 삭제할 때 자동 스냅샷을 삭제합니다. Amazon Redshift는 자동 스냅샷을 사용 중지하거나 클러스터를 삭제할 때까지 최신 자동 스냅샷을 유지합니다.
자동 스냅샷을 장기간 보관하려는 경우, 수동 스냅샷으로 자동 스냅샷의 사본을 만들 수 있습니다. 자동 스냅샷은 보존 기간이 끝날 때까지 보존되지만 해당 수동 스냅샷은 수동으로 삭제할 때까지 또는 보존 기간이 종료될 때까지 보존됩니다.
자동 스냅샷 일정
스냅샷이 생성되는 시기를 정확하게 제어하려면 스냅샷 일정을 생성하고 해당 일정을 하나 이상의 클러스터에 연결합니다. 스냅샷 일정을 수정할 때 연관된 모든 클러스터에 대한 일정이 수정됩니다. 클러스터에 스냅샷 일정이 연결되어 있지 않으면 클러스터가 기본 자동 스냅샷 일정을 사용합니다.
스냅샷 일정은 일련의 일정 규칙입니다. 8시간마다 또는 12시간마다 등 지정된 간격을 기반으로 간단한 일정 규칙을 정의할 수 있습니다. 또한 특정 요일, 특정 시간 또는 특정 기간 동안 스냅샷을 생성하는 규칙을 추가할 수 있습니다. 규칙은 Unix 종류의 cron 식을 사용하여 정의할 수도 있습니다.
스냅샷 일정 형식
Amazon Redshift 콘솔에서 스냅샷 일정을 생성할 수 있습니다. 그런 다음 일정을 클러스터에 연결하여 시스템 스냅샷의 생성을 트리거할 수 있습니다. 일정은 여러 클러스터에 연결할 수 있으며 스냅샷을 트리거하기 위해 일정에서 여러 cron 정의를 생성할 수 있습니다.
cron 구문을 사용하여 스냅샷에 대한 일정을 정의할 수 있습니다. 이러한 일정의 정의는 수정된 Unix 종류의 cron
Amazon Redshift에서 수정한 cron 식에는 각각 공백으로 구분되는 필수 필드 3개가 있습니다.
구문
cron(
Minutes
Hours
Day-of-month
Month
Day-of-week
Year
)
필드 | 값 | 와일드카드 |
---|---|---|
Minutes |
0~59 |
, - * / |
Hours |
0~23 |
, - * / |
Day-of-month |
1~31 |
, - * ? / L W |
월 |
1~12 또는 JAN-DEC |
, - * / |
요일 |
1~7 또는 SUN~SAT |
, - * ? L # |
연도 |
1970~2199 |
, - * / |
와일드카드
-
,(쉼표) 와일드카드는 추가 값을 포함합니다.
Day-of-week
필드에서MON,WED,FRI
는 월요일, 수요일 및 금요일을 포함합니다. 총 값은 필드당 24로 제한됩니다. -
-(대시) 와일드카드는 범위를 지정합니다.
Hour
필드에서 1~15는 지정된 일의 1~15시간을 포함합니다. -
*(별표) 와일드카드는 필드의 모든 값을 포함합니다.
Hours
필드에서 *는 모든 시간을 포함한다는 의미입니다. -
/(슬래시) 와일드카드로 증분을 지정합니다.
Hours
필드에1/10
을 입력하면 지정한 일의 첫 시간부터 시작해서 10시간 간격(예: 01:00, 11:00, 21:00 등)을 지정할 수 있습니다. -
?(물음표) 와일드카드는 어떤 한 가지나 다른 것을 지정합니다.
Day-of-month
필드에 7을 입력하고 Day-of-week 필드에는 ?을 입력하면 매월 7일이 무슨 요일이든 상관없이 7번째 되는 날을 지정한다는 의미입니다. -
Day-of-month
또는Day-of-week
필드에서 L 와일드카드는 해당 월 또는 주의 마지막 날을 지정합니다. -
] 필드에서는 W 와일드카드로 어떤 한 평일을 지정할 수 있습니다.
Day-of-month
Day-of-month
필드에서3W
를 해당 월의 세 번째 평일에 가장 가까운 날을 지정할 수 있습니다. -
'요일' 필드의 # 와일드카드는 그 달에 속한 정해진 요일의 특정 인스턴스를 지정합니다. 예를 들어, 3#2는 그 달의 두 번째 화요일입니다. 3은 각 주의 셋째 날이므로 화요일을 나타내고 2는 그 달의 두 번째 해당 요일입니다.
참고
'#' 문자를 사용하는 경우 요일(day-of-week) 필드에 하나의 표현식만 정의할 수 있습니다. 예를 들어 '3#1,6#3'은 두 개의 표현식으로 해석되기 때문에 유효하지 않습니다.
Limits
-
동일한 cron 표현식에
Day-of-month
와Day-of-week
필드를 지정할 수 없습니다. 이 필드 중 하나에 값을 지정하는 경우에는 다른 필드에서 반드시 ?(물음표)를 사용해야 합니다. -
스냅샷 일정은 다음 빈도를 지원하지 않습니다.
-
시간당 1개보다 더 높은 빈도로 예약된 스냅샷
-
1일(24시간)당 1개보다 더 낮은 빈도로 예약된 스냅샷
1시간 기간 내 스냅샷을 예약하게 되는 중복된 일정이 있으면 검증 오류가 발생합니다.
-
일정을 생성할 때는 다음과 같은 Cron 문자열을 사용할 수 있습니다.
분 | 시간 | 요일 | 의미 |
---|---|---|---|
0 |
14-20/1 |
화 |
화요일 오후 2시~오후 8시 사이 매시간 |
0 |
21 |
월-금 |
월요일~금요일 매일 밤 9시입니다. |
30 |
0/6 |
토-일 |
당일 자정 이후 30분(00:30)에 시작해서 토요일과 일요일에 6시간씩 증분 이 결과 매일 [00:30, 06:30, 12:30 및 18:30]에 스냅샷이 생성됩니다. |
30 |
12/4 |
* |
매일 12:30에 시작해서 4시간씩 증분 이 경우 [12:30, 16:30, 20:30]이 됩니다. |
예를 들어 매일 15:15에 시작해서 2시간씩 증분한 시간에 일정을 실행하려는 경우 [15:15, 17:15, 19:15, 21:15, 23:15]가 됩니다. 다음을 지정하십시오.
cron(15 15/2 *)
일정 내에서 여러 cron 일정 정의를 생성할 수 있습니다. 예를 들어 다음 AWS CLI 명령은 한 일정에 두 cron 일정을 포함시킵니다.
create-snapshot-schedule --schedule-identifier "my-test" --schedule-definition "cron(0 17 SAT,SUN)" "cron(0 9,17 MON-FRI)"
수동 스냅샷 수
수동 스냅샷은 언제든지 생성할 수 있습니다. 기본적으로 수동 스냅샷은 클러스터를 삭제한 후에도 무제한으로 보존됩니다. 수동 스냅샷의 보존 기간은 스냅샷을 생성할 때 지정할 수 있으며, 스냅샷을 수정해 변경할 수 있습니다. 보존 기간 변경에 대한 자세한 내용은 수동 스냅샷 보존 기간 수정 섹션을 참조하세요.
스냅샷을 삭제하면 해당 스냅샷을 참조하는 새 작업을 시작할 수 없습니다. 다만 복원 작업이 진행 중인 경우에는 해당 복원 작업은 완료됩니다.
Amazon Redshift에는 생성할 수 있는 수동 스냅샷의 총 개수를 제한하는 할당량이 있습니다. 이 할당량은 AWS 리전별로 AWS 계정마다 주어집니다. 기본 할당량은 Amazon Redshift의 할당량 및 제한에 나열됩니다.
스냅샷 스토리지
스냅샷에는 스토리지 요금이 발생하므로 더 이상 필요하지 않을 때 삭제하는 것이 중요합니다. Amazon Redshift는 해당 스냅샷 보존 기간이 끝나면 자동 및 수동 스냅샷을 삭제합니다. 또한 AWS Management Console 또는 batch-delete-cluster-snapshots CLI 명령을 사용하여 수동 스냅샷을 삭제할 수 있습니다.
수동 스냅샷의 보존 기간은 수동 스냅샷 설정을 수정해 변경할 수 있습니다.
Amazon Redshift 콘솔 또는 describe-storage CLI 명령을 사용하여 스냅샷에서 소비하는 스토리지 양에 대한 정보를 얻을 수 있습니다.
스냅샷에서 테이블 제외
기본적으로 모든 사용자 정의 영구 테이블은 스냅샷에 포함됩니다. 스테이징 테이블 같은 테이블을 백업하지 않아도 된다면 스냅샷을 생성하고 스냅샷에서 복원하는 데 필요한 시간을 크게 줄일 수 있습니다. 또 비백업 테이블을 사용하면 Amazon S3에서 스토리지 공간을 줄일 수 있습니다. 비백업 테이블을 생성하려면 테이블을 생성할 때 BACKUP NO 파라미터를 포함시키십시오. 자세한 내용은 Amazon Redshift 데이터베이스 개발자 안내서의 CREATE TABLE 및 CREATE TABLE AS를 참조하세요.