제퍼넷 로고

Amazon Redshift 클러스터를 다른 AWS 리전으로 마이그레이션

시간

아마존 레드 시프트 표준 SQL 및 기존 BI(비즈니스 인텔리전스) 도구를 사용하여 모든 데이터를 간단하고 비용 효율적으로 분석할 수 있는 빠르고 완전 관리되는 클라우드 데이터 웨어하우스입니다. Amazon Redshift는 SQL을 사용하여 데이터 웨어하우스, 운영 데이터베이스 및 데이터 레이크 전반에 걸쳐 구조화 및 반구조화 데이터를 분석하고 AWS에서 설계한 하드웨어 및 기계 학습(ML)을 사용하여 규모에 상관없이 최고의 가격 대비 성능을 제공합니다.

고객이 Amazon Redshift 클러스터를 한 AWS 리전에서 다른 AWS 리전으로 마이그레이션해야 한다는 요청을 받았습니다. 일반적인 이유 중 일부는 대기 시간을 개선하기 위해 클러스터를 프로비저닝하는 것, 가격이 더 낮은 지역에 클러스터를 배포하여 비용 최적화 목적으로 또는 나머지 배포가 있는 지역으로 클러스터를 마이그레이션하기 위한 것입니다. 이다. 이 게시물은 스냅샷 기능을 사용하여 Amazon Redshift 클러스터를 다른 리전으로 마이그레이션하는 단계별 접근 방식을 제공합니다.

솔루션 개요

이 솔루션은 Amazon Redshift의 교차 리전 스냅샷 기능을 사용하여 리전 간 마이그레이션을 수행합니다. 데이터 손실을 최소화하고 정의된 유지 관리 기간 내에서 클러스터를 다른 리전으로 마이그레이션하기 위해 전환 기한 전에 Amazon Redshift 클러스터의 여러 수동 스냅샷을 생성하는 것이 좋습니다. 다운타임을 최소화하기 위해 쓰기 활동이 적거나 없는 기간 동안 유지 관리 기간을 계획해야 합니다. 스냅샷을 복사하는 데 걸리는 시간은 스냅샷의 크기에 따라 다릅니다. 마이그레이션하기 전에 스테이징 환경에서 유사하거나 더 큰 크기의 데이터 세트로 테스트하여 대상 리전에 스냅샷을 복사하는 데 걸리는 시간을 추정하는 것이 좋습니다. 이는 계획 프로세스에 도움이 될 수 있습니다.

스냅샷을 대상 리전에 복사한 후 최신 스냅샷을 복원하여 새 Amazon Redshift 클러스터를 생성할 수 있습니다. 스냅샷은 기본적으로 증분식이며 이전 스냅샷 이후 클러스터의 변경 사항을 추적합니다. 복사 시간은 마지막 스냅샷 이후 변경된 데이터 양에 비례합니다.

스냅샷이 다른 리전에 복사되면 독립 실행형으로도 작동할 수 있습니다. 즉, 최신 스냅샷만 대상 리전에 복사되더라도 복원된 Amazon Redshift 클러스터에는 여전히 모든 데이터가 있습니다. 자세한 내용은 다음을 참조하십시오. Amazon Redshift 스냅샷. 교차 리전 스냅샷 기능은 Amazon Redshift 클러스터에 대한 재해 복구를 설정하는 데에도 유용할 수 있습니다.

다음 다이어그램은 동일한 AWS 계정 내에서 리전 간 마이그레이션을 위한 아키텍처를 보여줍니다.

솔루션에는 다음 단계가 포함됩니다.

  1. 컷오버 기한 전에 소스 Amazon Redshift 클러스터의 리전 간 스냅샷을 구성합니다.
  2. 최신 스냅샷을 복원하여 대상 리전에 새 Amazon Redshift 클러스터를 생성합니다.
  3. 애플리케이션이 새로운 Amazon Redshift 클러스터를 가리키도록 합니다.

암호화된 스냅샷의 경우 스냅샷을 대상 리전에 복사하기 전에 새 암호화 키를 생성하고 스냅샷 부여를 수행하는 추가 단계가 있습니다.

사전 조건

마이그레이션 프로세스의 경우 쓰기 활동이 적은 유지 관리 기간을 선택하고 조직의 RTO 및 RPO 요구 사항을 알고 있어야 합니다.

다음 단계에서는 원본 리전에서 Amazon Redshift 클러스터를 설정하고 샘플 데이터 세트로 채우는 과정을 안내합니다. 이 게시물에서는 미국 서부(오레곤)를 소스 리전으로 사용하고 미국 동부(버지니아 북부)를 대상 리전으로 사용합니다. 소스 Amazon Redshift 클러스터가 이미 있는 경우 이러한 사전 요구 사항 단계를 건너뛸 수 있습니다.

소스 리전에서 Amazon Redshift 클러스터 생성

소스 리전에 클러스터를 생성하려면 다음 단계를 완료하십시오.

  1. 소스 리전에서 Amazon Redshift 콘솔을 엽니다.
  2. 왼쪽 메뉴에서 클러스터 탐색 창에서 선택하고 클러스터 다시 메뉴판.
  3. 왼쪽 메뉴에서 클러스터 생성.
  4. 럭셔리 클러스터 식별자, 입력 redshift-cluster-source.
  5. 선택 생산 클러스터 사용을 위해.

이 옵션을 사용하면 특정 인스턴스 유형을 선택하고 선택한 샘플 데이터를 로드할 수 있습니다. 클러스터를 삭제할 때까지 전체 시간 동안 Amazon Redshift 인스턴스 및 스토리지에 대한 요금이 부과됩니다. 가격 책정에 대한 자세한 내용은 Amazon Redshift 요금.

  1. 럭셔리 노드 유형, 원하는 노드 유형을 선택하십시오.
  2. 럭셔리 노드 수, 사용할 노드 수를 입력합니다.

이 게시물에서는 2개의 dcXNUMX.large 인스턴스를 사용합니다.

  1. $XNUMX Million 미만 데이터베이스 구성, 클러스터의 사용자 이름과 암호를 입력합니다.

모범 사례로 기본 사용자 이름을 사용자 지정 사용자 이름(이 게시물의 경우 mydataadmin)으로 변경하고 암호 지침을 따르십시오.

외부에서 샘플 데이터를 로드하려면 아마존 단순 스토리지 서비스 (Amazon S3) 버킷을 소스 클러스터에 연결하려면 다음을 생성해야 합니다. AWS 자격 증명 및 액세스 관리 (IAM) 역할.

  1. $XNUMX Million 미만 클러스터 권한,
    를 시청하여 이에 대해 더 많은 정보를 얻을 수 있습니다. IAM 역할 관리 드롭 다운 메뉴에서 IAM 역할 생성.
  2. 선택 모든 S3 버킷 선택하고 IAM 역할을 기본으로 생성.
  3. 럭셔리 추가 구성, 회전 기본값 사용 떨어져서.
  4. . 네트워크 및 보안 섹션에서 VPC를 선택하고 클러스터 서브넷 그룹.

클러스터 생성에 대한 자세한 내용은 다음을 참조하십시오. VPC에서 클러스터 생성.

  1. 펼치기 데이터베이스 구성.

기본값 대신 사용자 정의 값을 사용하는 것이 좋습니다.

  1. 럭셔리 데이터베이스 이름, 입력 stagingdb.
  2. 럭셔리 데이터베이스 포트, 7839을 입력합니다.
  3. 럭셔리 암호화, 고르다 장애인.

이후 단계에서 암호화를 활성화합니다.

  1. 다른 옵션은 기본값으로 두고 다음을 선택합니다. 클러스터 생성.
  2. 클러스터를 사용할 수 있으면 클러스터에서 감사 로깅을 활성화합니다.

감사 로깅 데이터베이스의 연결 및 사용자 활동에 대한 정보를 기록합니다. 이는 보안 및 문제 해결 목적에 유용합니다.

보안 모범 사례를 충족하기 위해 새 Amazon Redshift도 생성합니다. 매개변수 그룹.

  1. 왼쪽 메뉴에서 구성워크로드 관리 매개변수 그룹을 생성합니다.
  2. 매개변수가 require_sslenable_user_activity_logging true로 설정됩니다.
  3. 속성 탭을 선택하십시오 편집 메뉴 데이터베이스 구성 섹션 및 선택 매개변수 그룹 편집.
  4. 새로 생성된 파라미터 그룹을 Amazon Redshift 클러스터에 연결합니다.

이 변경으로 인해 재부팅하라는 메시지가 표시되면 다음을 선택합니다. 재부팅.

소스 Amazon Redshift 클러스터에서 샘플 데이터 세트 로드

클러스터가 준비되면 S3 버킷에서 샘플 데이터 세트를 로드할 차례입니다. s3://redshift-immersionday-labs/data/. 다음 표는 데이터세트의 일부입니다.

  • 지역(5행)
  • NATION(25행)
  • 고객(15만 행)
  • ORDERS(76만 행)
  • PART(20천만 행)
  • SUPPLIER(1백만 행)
  • LINEITEM(600억 행)
  • PARTSUPPLIER(80천만 행)

Amazon Redshift 클러스터가 다음을 통해 S3 버킷에 액세스하는 것이 모범 사례입니다. VPC 게이트웨이 엔드포인트 트래픽이 인터넷을 피하고 AWS 네트워크를 통해 흐르기 때문에 데이터 로딩 성능을 향상시키기 위해.

Amazon S3에 데이터를 로드하려면 먼저 다음을 통해 VPC 엔드포인트를 활성화해야 합니다. 아마존 가상 프라이빗 클라우드 (아마존 VPC).

  1. Amazon VPC 콘솔에서 종점.
  2. 왼쪽 메뉴에서 엔드 포인트 생성.
  3. 럭셔리 이름표, 입력 redshift-s3-vpc-endpoint.
  4. 럭셔리 서비스 카테고리, 고르다 AWS 서비스.
  5. 에 대한 검색 S3 게이트웨이 유형 엔드포인트를 선택합니다.
  6. 클러스터가 프로비저닝된 동일한 VPC를 선택하고 라우팅 테이블을 선택하십시오.
  7. 나머지는 모두 기본값으로두고 선택 엔드 포인트 생성.

게이트웨이 끝점 상태가 다음으로 변경될 때까지 기다립니다. Available.

다음으로 활성화합니다. 향상된 VPC 라우팅.

  1. 소스 리전에서 Amazon Redshift 콘솔을 엽니다.
  2. 소스 클러스터를 선택하십시오.
  3. 등록 탭에서 네트워크 및 보안 설정 섹션 선택 편집.
  4. 럭셔리 향상된 VPC 라우팅, 고르다 사용
    .
  5. 왼쪽 메뉴에서 변경 사항을 저장.

클러스터 상태가 다음으로 변경될 때까지 기다립니다. Available.

샘플 데이터를 클러스터에 로드하려면 테이블을 생성해야 합니다. Amazon Redshift 웹 기반 쿼리 편집기.

  1. Amazon Redshift 콘솔에서 다음을 선택합니다. 편집자 탐색 창에서 선택하고 쿼리 편집기.

새로운 쿼리 편집기 V2를 사용할 수도 있습니다.

  1. 왼쪽 메뉴에서 데이터베이스에 연결.
  2. 선택 새 연결 만들기.
  3. 데이터베이스 이름과 사용자 이름을 입력합니다.
  4. 왼쪽 메뉴에서 연결하기.

이 게시물에는 TPC 의 데이터 예 Amazon Redshift 이머젼 랩.

  1. 로 이동 데이터 로딩 Immersion Day Labs 섹션.
  2. 의 지침을 따르십시오. 테이블 생성 섹션을 참조하여 원본 클러스터에 테이블을 생성합니다.
  3. 테이블을 생성한 후 다음 지침을 따르십시오. 데이터 로딩 섹션을 클릭하여 데이터를 클러스터에 로드합니다.

미국 서부(오레곤) 지역에서 데이터를 로드하는 데 약 17분이 소요되었습니다. 이는 해당 시점의 지역 및 네트워크 대역폭에 따라 다를 수 있습니다.

데이터가 소스 클러스터에 성공적으로 로드되면 쿼리하여 모든 테이블에 데이터가 표시되는지 확인할 수 있습니다.

  1. 테이블을 선택하고(오른쪽 클릭) 데이터 미리보기.
  2. 드롭 customer 쿼리를 사용하는 테이블 DROP TABLE customer;.

증분 변경을 보여주기 위해 나중에 테이블을 다시 추가합니다.

저장 공간 크기를 확인하여 로드된 데이터의 크기를 확인할 수 있습니다.

  1. 왼쪽 메뉴에서 클러스터 탐색 창에서
  2. 소스 클러스터를 선택하십시오.
  3. 에서 스토리지 크기를 확인하십시오. 일반 정보 섹션 아래 사용된 스토리지.

이제 소스 Amazon Redshift 클러스터가 샘플 데이터 세트와 함께 로드되었으며 사용할 준비가 되었습니다.

소스 리전에서 교차 리전 스냅샷 구성

리전 간 마이그레이션을 수행하기 위한 첫 번째 단계는 리전 간 스냅샷을 구성하는 것입니다. 교차 리전 스냅샷 기능을 사용하면 스냅샷을 자동으로 다른 리전에 복사할 수 있습니다.

  1. 소스 리전에서 Amazon Redshift 콘솔을 엽니다.
  2. Amazon Redshift 클러스터를 선택합니다.
  3. 행위 메뉴, 선택 교차 리전 스냅샷 구성.
  4. 럭셔리 스냅샷 복사, 고르다 가능.
  5. 럭셔리 대상 지역, 대상 지역을 선택합니다(이 게시물의 경우 us-east-1).
  6. 요구 사항에 따라 수동 스냅샷 보존 기간을 구성합니다.
  7. 왼쪽 메뉴에서 찜하기.

교차 리전 스냅샷 기능이 구성된 후 모든 후속 자동 또는 수동 스냅샷은 자동으로 대상 리전에 복사됩니다.

  1. 수동 스냅샷을 생성하려면 다음을 선택합니다. 클러스터 탐색 창에서 선택하고 스냅 샷.
  2. 왼쪽 메뉴에서 스냅샷 생성.
  3. 럭셔리 클러스터 식별자선택한다. redshift-cluster-source.
  4. 요구 사항에 따라 스냅샷 보존 기간을 조정합니다.
  5. 왼쪽 메뉴에서 스냅샷 생성.

RTO 및 RPO 요구 사항에 따라 데이터 손실을 최소화하기 위해 가능한 한 많은 데이터를 캡처할 수 있도록 컷오버 기한까지 여러 스냅샷을 찍는 것이 좋습니다. 첫 번째 스냅샷 생성은 4GB 데이터에 대해 약 28.9분이 걸렸지만 후속 스냅샷은 본질적으로 증분식입니다.

이 스냅샷은 소스 리전에서 대상 리전에 자동으로 복사됩니다. 대상 리전에서 Amazon Redshift 콘솔을 열어 사본을 확인할 수 있습니다.

다음 스크린샷에서 볼 수 있듯이 28.9GB 크기의 스냅샷은 클러스터의 모든 데이터를 포함하는 첫 번째 스냅샷이기 때문에 대상 리전에 복사하는 데 약 44분이 걸렸습니다. 관련된 리전과 복사할 데이터의 양에 따라 리전 간 스냅샷 복사를 완료하는 데 몇 시간이 걸릴 수 있습니다.

이제 소스 클러스터에 대한 증분 변경을 시뮬레이션해 보겠습니다.

  1. 소스 리전에서 Amazon Redshift 콘솔을 열고 쿼리 편집기를 엽니다.
  2. 라는 새 테이블을 만듭니다. customer 다음 쿼리를 사용하여 클러스터에서
    create table customer ( C_CUSTKEY bigint NOT NULL, C_NAME varchar(25), C_ADDRESS varchar(40), C_NATIONKEY bigint, C_PHONE varchar(15), C_ACCTBAL decimal(18,4), C_MKTSEGMENT varchar(10), C_COMMENT varchar(117))
    diststyle all;

  3. 데이터 로드 customer 다음 명령을 사용하여 테이블:
    copy customer from 's3://redshift-immersionday-labs/data/customer/customer.tbl.'
    iam_role default
    region 'us-west-2' lzop delimiter '|' COMPUPDATE PRESET;

  4. 증분 데이터가 포함된 수동 스냅샷을 생성하려면 다음을 선택합니다. 클러스터 탐색 창에서 다음을 선택합니다. 스냅 샷.
  5. 필요한 정보를 제공하고 선택 스냅샷 생성.

교차 리전 스냅샷 기능이 활성화되어 있으므로 이 증분 스냅샷이 대상 리전에 자동으로 복사됩니다. 다음 예에서 스냅샷은 소스 리전에서 대상 리전으로 복사하는 데 약 11분이 걸렸습니다. 이 시간은 지역마다 다르며 복사되는 데이터의 양을 기준으로 합니다.

대상 리전에서 동일하거나 더 높은 인스턴스 유형으로 스냅샷 복원

최신 스냅샷이 대상 리전에 성공적으로 복사되면 스냅샷을 복원할 수 있습니다.

  1. 대상 리전에서 Amazon Redshift 콘솔을 엽니다.
  2. 스냅 샷 페이지에서 스냅샷을 선택합니다.
  3. 스냅샷에서 복원 메뉴, 선택 프로비저닝된 클러스터로 복원.
  4. 럭셔리 클러스터 식별자, 입력 redshift-cluster-target.
  5. 럭셔리 노드 유형¸ 동일한 인스턴스 유형을 사용하거나 더 높은 인스턴스 유형으로 업그레이드할 수 있습니다.
  6. 럭셔리 노드 수, 필요한 노드 수를 선택하십시오.

인스턴스를 RA3으로 업그레이드하기로 선택한 경우 다음을 참조하십시오. RA3 노드 유형으로 업그레이드 필요한 노드 수를 결정합니다.

이 게시물에서는 여전히 dc2.large 인스턴스 유형의 XNUMX개 노드를 사용합니다.

  1. $XNUMX Million 미만 데이터베이스 구성에 대한 데이터베이스 이름시작하다 stagingdb.
  2. 나머지 설정은 기본값으로 두고(또는 요구 사항에 따라 수정) 다음을 선택합니다. 스냅샷에서 클러스터 복원.

새 Amazon Redshift 클러스터는 대상 리전의 스냅샷에서 프로비저닝됩니다.

대상 클러스터의 소스 클러스터에 적용한 것과 동일한 보안 모범 사례를 따르십시오.

애플리케이션이 새로운 Amazon Redshift 클러스터를 가리키도록 합니다.

대상 클러스터를 사용할 수 있게 되면 새 대상 Amazon Redshift 엔드포인트에 연결하도록 애플리케이션을 구성합니다. 새 클러스터에는 다른 DNS(Domain Name System) 끝점이 있습니다. 이는 새 끝점을 참조하도록 모든 클라이언트를 업데이트해야 함을 의미합니다.

암호화된 데이터에 대한 리전 간 마이그레이션 단계

Amazon Redshift 클러스터의 데이터가 암호화된 경우 리전 간 마이그레이션에서 추가 단계를 수행해야 합니다. 데이터 암호화가 이미 활성화된 경우 스냅샷 복사 권한 부여 단계로 건너뛸 수 있습니다.

원본 Amazon Redshift 클러스터에서 데이터 암호화 활성화

소스 클러스터에서 데이터 암호화를 활성화하기 위해 다음을 사용합니다. Amazon 키 관리 서비스 (AWS KMS).

  1. 소스 리전에서 AWS KMS 콘솔을 엽니다.
  2. KMS 키 생성 라는 redshift-source-key.
  3. 키 회전 활성화.
  4. Amazon Redshift 콘솔(여전히 소스 리전에 있음)에서 클러스터를 선택합니다.
  5. 교차 리전 스냅샷이 활성화된 경우 다음을 선택합니다. 교차 리전 스냅샷 구성 를 시청하여 이에 대해 더 많은 정보를 얻을 수 있습니다. 작업 메뉴.
  6. 선택 아니 선택하고 찜하기.
  7. 속성 탭,에 데이터베이스 구성 섹션에서 편집 메뉴를 선택하고 암호화 수정.
  8. 선택 AWS Key Management Service(AWS KMS) 사용.
  9. 선택 현재 계정의 키 사용 생성한 키를 선택합니다.
  10. 왼쪽 메뉴에서 변경 사항을 저장.

데이터를 암호화하는 데 걸리는 시간은 클러스터에 있는 데이터의 양을 기반으로 합니다.

데이터가 암호화되면 이후의 모든 스냅샷도 자동으로 암호화됩니다.

스냅샷 복사 권한 부여

암호화된 스냅샷을 대상 리전에 복사하면 KMS 키는 생성된 리전에 따라 달라지므로 원본 리전의 기존 KMS 키는 대상 리전에서 작동하지 않습니다. 대상 리전에 다른 KMS 키를 생성하고 액세스 권한을 부여해야 합니다.

  1. 대상 리전에서 AWS KMS 콘솔을 엽니다.
  2. 사용할 KMS 키가 아직 없는 경우 키를 생성 라는 redshift-target-key.
  3. 키 회전 활성화.
  4. 소스 리전에서 Amazon Redshift 콘솔을 엽니다.
  5. 클러스터를 선택하고 행위 메뉴, 선택 교차 리전 스냅샷 구성.
  6. 럭셔리 스냅샷 복사, 고르다 가능.
  7. 럭셔리 스냅샷 복사 권한 선택선택한다. 새 보조금 만들기.
  8. 럭셔리 스냅샷 복사 부여 이름, 입력 redshift-target-grant.
  9. 럭셔리 KMS 키 ID, 권한 부여를 위해 생성한 키를 선택합니다.

키 ID를 지정하지 않으면 권한이 기본 키에 적용됩니다.

  1. 왼쪽 메뉴에서 찜하기.

대상 리전에 복사된 모든 후속 스냅샷은 이제 대상 리전에서 생성된 키로 암호화됩니다.

  1. 스냅샷이 대상 리전에 복사된 후 이 게시물 앞부분의 단계에 따라 암호화된 스냅샷에서 클러스터를 복원합니다.

암호화 프로세스에 대한 자세한 내용은 다음을 참조하십시오. AWS KMS로 암호화된 스냅샷을 다른 AWS 리전에 복사.

암호화된 스냅샷에서 복원한 후 복원된 클러스터는 대상 리전에서 생성한 키로 자동으로 암호화됩니다.

클러스터를 사용할 수 있을 때 애플리케이션이 새 클러스터 엔드포인트를 가리키는지 확인하십시오.

정리

테스트 목적으로 Amazon Redshift 클러스터 또는 스냅샷을 생성한 경우 이러한 리소스를 삭제하여 향후 요금이 발생하지 않도록 할 수 있습니다.

스냅샷 삭제에 대한 지침은 다음을 참조하십시오. 수동 스냅샷 삭제.

Amazon Redshift 클러스터 삭제에 대한 지침은 다음을 참조하십시오. 클러스터 삭제.

결론

이 게시물은 교차 리전 스냅샷 기능을 사용하여 Amazon Redshift 클러스터를 다른 리전으로 마이그레이션하는 방법을 보여주었습니다. Amazon Redshift 마이그레이션은 관련된 리전과 복사할 데이터의 양에 따라 몇 가지 사전 계획이 필요합니다. 스냅샷 생성 및 복사에는 상당한 시간이 소요될 수 있습니다. 첫 번째 스냅샷에는 클러스터의 모든 데이터가 포함되므로 시간이 더 오래 걸릴 수 있지만 후속 스냅샷에는 증분 변경 사항이 포함되며 변경 사항에 따라 시간이 덜 걸릴 수 있습니다. 데이터 손실을 최소화하고 RTO 및 RPO를 충족할 수 있도록 프로덕션 환경의 스냅샷과 크기가 비슷하거나 약간 더 큰 스테이징 환경에서 몇 가지 테스트를 수행하여 스냅샷 복사에 걸리는 시간을 추정하는 것이 좋습니다. 요구 사항.

Amazon Redshift 스냅샷 기능에 대한 자세한 내용은 다음을 참조하십시오. 스냅샷 작업.


저자에 관하여

신두라 팔라코데티 Amazon Web Services의 솔루션 아키텍트입니다. 그녀는 고객이 AWS 플랫폼에서 엔터프라이즈 규모의 Well-Architected 솔루션을 구축하도록 돕는 데 열정적이며 컨테이너 및 데이터 분석 도메인을 전문으로 합니다.

spot_img

최신 인텔리전스

spot_img