Amazon Redshift에서 탄력적 크기 조정은 어떻게 작동합니까?
Amazon Redshift 클러스터에서 탄력적인 크기 조정을 수행하려고 합니다. 탄력적 크기 조정의 작동 방식 및 사용할 수 있는 모범 사례를 알고 싶습니다.
간략한 설명
탄력적 크기 조정은 테이블을 정렬하거나 디스크 공간을 회수하지 않습니다. VACUUM을 실행하여 테이블을 정렬하고 디스크 공간을 회수하십시오. 탄력적 크기 조정은 EC2-VPC 플랫폼을 사용하는 Amazon Redshift 클러스터에서만 사용 가능합니다.
탄력적 크기 조정은 클래식 크기 조정보다 완료하는 데 시간이 덜 걸리는 경우가 많습니다. 클래식 크기 조정 작업 중에 Amazon Redshift가 소스 클러스터에서 데이터를 복사하면 새 클러스터가 프로비저닝됩니다. 클래식 크기 조정 작업에서는 먼저 배포 스타일에 따라 새 노드에 데이터를 배포합니다. 그런 다음, ANALYZE 명령을 실행하여 테이블 통계를 업데이트합니다.
단일 노드 클러스터의 크기를 조정하려면 클래식 크기 조정이 더 나은 옵션일 수 있습니다. 탄력적인 크기 조정을 사용하면 클러스터에서 노드를 추가하거나 제거할 수 있습니다. 하지만 이로 인해 성능이 변화할 수 있습니다. 노드 슬라이스가 대상 노드 유형의 슬라이스 수와 일치하도록 하려면 클래식 크기 조정을 사용하십시오.
다음 구성은 단일 노드 탄력적 크기 조정을 지원합니다.
- 1 노드 dc2.large ↔ 1 노드 ra3.xlplus, 2 노드 ra3.xlplus, 2 노드 ra3.4xlarge
- 1 노드 ra3.xlplus ↔ 2 노드 ra3.xlplus, 2 노드 ra3.4xlarge
해결 방법
탄력적 크기 조정 작동 방식
참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하면 AWS CLI의 오류 해결을 참조하십시오. 또한 최신 AWS CLI 버전을 사용하고 있는지 확인하십시오.
탄력적 크기 조정은 대상 노드 유형에 따라 다르게 작동할 수 있습니다. 대상 노드 유형이 소스 노드 유형과 동일한지 확인하십시오.
노드 유형을 확인하려면 Amazon Redshift 콘솔을 엽니다. 탐색 창에서 클러스터를 선택합니다. 클러스터 페이지의 각 클러스터 이름 아래에 노드 유형이 표시됩니다.
또한 describe-clusters AWS CLI 명령을 실행하여 Amazon Redshift 클러스터에 대한 추가 정보를 얻을 수 있습니다.
aws redshift describe-clusters --region cluster_region
참고: cluster_region을 해당 클러스터의 AWS 리전으로 바꾸십시오.
대상 노드 유형이 기존 노드 유형과 동일
Amazon Redshift는 탄력적 크기 조정을 사용하여 클러스터 크기를 조정할 때 데이터를 새 노드에 자동으로 재배포합니다.
탄력적 크기 조정은 일반적으로 몇 분 내에 작업을 완료합니다. 탄력적 크기 조정이 백그라운드에서 데이터 재배포를 완료하면 쿼리 런타임이 약간 증가할 것으로 예상할 수 있습니다.
참고: 메타데이터 마이그레이션 중에는 Amazon Redshift 클러스터를 몇 분 동안 일시적으로 사용할 수 없습니다.
대상 노드 유형이 기존 노드 유형과 다름
노드 유형이 변경된 경우 Amazon Redshift는 먼저 스냅샷을 생성합니다. 그러면 스냅샷의 최신 데이터가 새 대상 클러스터에 프로비저닝되고 백그라운드에서 새 클러스터로 데이터가 전송됩니다. 데이터 전송 중에 Amazon Redshift 클러스터는 읽기 전용 모드로 작동하며 모든 쓰기가 차단됩니다. 크기 조정이 거의 완료되면 Amazon Redshift는 기존 클러스터의 엔드포인트와 일치하도록 새 클러스터의 엔드포인트를 자동으로 업데이트합니다. 그러면 원래 클러스터에 대한 모든 연결이 닫힙니다.
DC2 및 DS2 노드 수 제한 사항
DC2 및 DS2 노드 유형에 대한 다음 제한 사항에 유의하십시오.
- dc2.large 또는 ds2.xlarge 노드 유형의 경우 현재 노드 수의 절반 또는 두 배를 사용하십시오. 예를 들어, 노드가 6개인 클러스터의 크기를 12개 노드 또는 3개 노드로 조정할 수 있습니다.
- dc2.8xlarge, ds2.8xlarge 또는 ra3.xlplus 노드 유형의 경우 노드 수의 절반을 사용하거나 최대 두 배로 늘리십시오. 예를 들어, 노드가 6개인 클러스터의 크기를 3, 4, 5, 7, 8, 9, 10, 11, 12개 노드로 조정할 수 있습니다.
- ra3.16xlarge 또는 ra3.4xlarge 노드 유형의 경우 현재 노드 수의 1/4 또는 최대 4배를 사용하십시오. 예를 들어, 8개의 노드가 있는 ra3 클러스터의 크기를 2, 3, 4, 5, 6, 7, 9 및 최대 32개 노드까지 조정할 수 있습니다.
탄력적 크기 조정 모범 사례
클러스터의 탄력적 크기 조정을 수행할 때는 다음 모범 사례를 사용하십시오.
- 클러스터 크기를 조정하기 전에 자동 스냅샷을 활성화하거나 수동 스냅샷을 생성합니다.
참고: 기본적으로 수동 스냅샷은 클러스터를 삭제한 후에도 무기한 보존됩니다. 하지만 Amazon Redshift는 보존 기간이 끝나면 자동 스냅샷을 삭제합니다. - describe-node-configuration-options AWS CLI 명령을 실행하여 크기 조정 작업을 위한 노드 구성 옵션을 가져옵니다.
참고: cluster_name을 클러스터 이름으로 바꾸고 cluster_region을 클러스터의 리전으로 바꾸십시오.aws redshift describe-node-configuration-options --action-type resize-cluster --cluster-identifier cluster_name --region cluster_region
- 크기를 조정하기 전에 클러스터에서 VACUUM을 실행합니다. 탄력적 크기 조정은 삭제로 표시된 행을 자동으로 삭제하지 않습니다.
- resize-cluster 명령을 실행하여 모든 노드 구성 변경 사항을 지정합니다.
참고: cluster_name을 클러스터 이름으로, target_node_type을 대상 노드 유형으로, number_of_target_nodes를 대상 노드 수로, cluster_region을 클러스터의 리전으로 바꾸십시오.aws redshift resize-cluster --cluster-identifier cluster_name --cluster-type multi-node --node-type target_node_type --number-of-nodes number_of_target_nodes --no-classic --region cluster_region
수행해야 할 추가 작업
Amazon Redshift 클러스터에서 탄력적 크기 조정을 수행할 때는 다음 작업을 수행하십시오.
- 클러스터의 스냅샷을 생성해야 합니다.
- Amazon Redshift에서 탄력적 크기 조정 작업을 시작한 후에는 작업을 취소할 수 없습니다. 크기 조정 작업이 완료될 때까지 기다린 후 다시 크기 조정 작업 또는 클러스터 재부팅을 수행하십시오.
- 새 노드 구성에 기존 데이터를 위한 충분한 스토리지가 있는지 확인합니다. 노드를 추가하는 경우에도 데이터가 재배포되는 방식 때문에 새 구성에 충분한 스토리지가 없을 수 있습니다. 스토리지 공간에 대한 자세한 내용은 프로비저닝된 Amazon Redshift 클러스터의 테이블이 예상보다 많거나 적은 디스크 스토리지 공간을 소비하는 이유는 무엇인가요?를 참조하십시오.
- 탄력적 크기 조정 작업을 수행하면 데이터 슬라이스의 불균일한 분포로 인해 노드 간에 데이터 왜곡이 발생할 수 있습니다. 클러스터에서 데이터 왜곡이 발생하는 경우 클래식 크기 조정을 대신 수행하십시오.
- 탄력적 크기 조정이 실패하는 경우 스냅샷이 완료되는지 확인합니다. 스냅샷이 몇 분 내에 완료되지 않으면 크기 조정 작업이 실패할 수 있습니다.
- 크기 조정을 수행할 때 RA3 예약 노드로 업그레이드할 수 있습니다.
관련 정보
관련 콘텐츠
- 질문됨 7년 전lg...
- 질문됨 4달 전lg...
- 질문됨 4달 전lg...
- 질문됨 4달 전lg...
- 질문됨 6달 전lg...
- AWS 공식업데이트됨 일 년 전
- AWS 공식업데이트됨 3년 전
- AWS 공식업데이트됨 일 년 전