제로 ETL 통합 시작하기 - Amazon Redshift

제로 ETL 통합 시작하기

이 태스크 세트는 첫 번째 제로 ETL 통합 설정 과정을 안내합니다. 먼저 통합 소스를 구성하고 필요한 파라미터 및 권한으로 소스를 설정하세요. 그런 다음 Amazon Redshift 콘솔 및 AWS CLI에서 나머지 초기 설정을 계속 진행합니다.

제로 ETL 통합 생성

이 단계에서는 Amazon Redshift와의 Aurora 또는 RDS 제로 ETL 통합을 생성합니다.

Redshift와의 Aurora 제로 ETL 통합을 만드는 방법
  1. Amazon RDS 콘솔에서 Amazon Aurora 사용 설명서에 나와 있는 대로 사용자 지정 DB 클러스터 파라미터 그룹을 생성합니다.

  2. Amazon RDS 콘솔에서 Amazon Aurora 사용 설명서에 나와 있는 대로 소스 Amazon Aurora DB 클러스터를 생성합니다.

  3. Amazon Redshift 콘솔에서: 대상 Amazon Redshift 데이터 웨어하우스 생성 및 구성.

  4. Amazon RDS 콘솔에서 Amazon Aurora 사용 설명서에 나와 있는 대로 제로 ETL 통합을 생성합니다.

  5. Amazon Redshift 콘솔 또는 쿼리 에디터 v2에서 통합을 기반으로 Amazon Redshift 데이터베이스를 생성합니다.

    그런 다음 복제된 데이터로 구체화된 뷰를 쿼리하고 생성합니다.

Redshift와의 RDS 제로 ETL 통합을 만드는 방법
  1. Amazon RDS 콘솔에서 Amazon RDS 사용 설명서에 나와 있는 대로 사용자 지정 DB 파라미터 그룹을 생성합니다.

  2. Amazon RDS 콘솔에서 Amazon RDS 사용 설명서에 나와 있는 대로 소스 Amazon RDS 인스턴스를 생성합니다.

  3. Amazon Redshift 콘솔에서: 대상 Amazon Redshift 데이터 웨어하우스 생성 및 구성.

  4. Amazon RDS 콘솔에서 Amazon RDS 사용 설명서에 나와 있는 대로 제로 ETL 통합을 생성합니다.

  5. Amazon Redshift 콘솔 또는 쿼리 에디터 v2에서 통합을 기반으로 Amazon Redshift 데이터베이스를 생성합니다.

    그런 다음 복제된 데이터로 구체화된 뷰를 쿼리하고 생성합니다.

Amazon RDS 콘솔은 소스 데이터베이스와 대상 Amazon Redshift 데이터 웨어하우스를 지정하는 단계별 통합 생성 흐름을 제공합니다. 문제가 발생하는 경우 Amazon RDS 또는 Amazon Redshift 콘솔에서 수동으로 문제를 해결하는 대신 Amazon RDS에서 문제를 해결하도록 선택할 수 있습니다.

대상 Amazon Redshift 데이터 웨어하우스 생성 및 구성

이 단계에서는 Redshift Serverless 작업 그룹 또는 프로비저닝된 클러스터와 같은 대상 Amazon Redshift 데이터 웨어하우스를 생성하고 구성합니다.

대상 데이터 웨어하우스의 특성은 다음과 같아야 합니다.

  • 인스턴스 유형 ra3.16xlarge, ra3.4xlarge 또는 ra3.xlplus의 프로비저닝된 클러스터 또는 Amazon Redshift Serverless를 실행 중입니다.

  • 대/소문자 구분(enable_case_sensitive_identifier)이 켜져 있습니다. 자세한 내용은 데이터 웨어하우스에 대/소문자 구분 기능 사용 설정 단원을 참조하십시오.

  • 대상 데이터 웨어하우스가 Amazon Redshift 프로비저닝된 클러스터인 경우 암호화됩니다. 자세한 내용은 Amazon Redshift 데이터베이스 암호화 단원을 참조하십시오.

  • 통합 소스와 동일한 AWS 리전에서 생성되었습니다.

참고

Amazon Redshift와 Aurora PostgreSQL 제로 ETL 통합의 경우 대상 데이터 웨어하우스와 관련하여 다음 사항도 고려하세요.

  • preview_2023 트랙에서 미리 보기로 데이터 웨어하우스를 생성해야 합니다. 프로덕션에서 미리 보기 기능을 사용하거나 미리 보기 데이터 웨어하우스를 프로덕션 배포로 이동할 수 없습니다.

  • Amazon Redshift 프로비저닝된 클러스터를 생성하기로 선택한 경우 해당 클러스터에는 두 개 이상의 노드가 있어야 합니다.

  • 미국 동부(오하이오) AWS 리전에 대상 데이터 웨어하우스를 생성해야 합니다. Amazon RDS 데이터베이스 미리 보기 환경을 사용하여 Aurora PostgreSQL 제로 ETL 통합을 위한 소스 데이터베이스를 생성해야 한다는 점에 유의하세요.

Aurora PostgreSQL 제로 ETL 통합을 위해 미리 보기에서 대상 데이터 웨어하우스를 만들려면 배포 유형에 따라 다음 항목 중 하나를 참조하세요.

  • 미리 보기 Amazon Redshift 프로비저닝된 클러스터를 만들려면 미리 보기 클러스터 생성 섹션을 참조하세요. 제로 ETL 통합을 사용하려면 preview_2023 트랙을 선택해야 합니다.

  • 미리 보기 Amazon Redshift Serverless 작업 그룹을 만들려면 미리 보기 작업 그룹 만들기 섹션을 참조하세요.

제로 ETL 통합을 위해 대상 데이터 웨어하우스를 만들려면 배포 유형에 따라 다음 항목 중 하나를 참조하세요.

프로비저닝된 클러스터를 생성하면 기본 파라미터 그룹도 생성됩니다. 기본 파라미터 그룹은 편집할 수 없습니다. 하지만 새 클러스터를 생성하기 전에 사용자 지정 파라미터 그룹을 만든 다음 클러스터와 연결할 수 있습니다. 또는 생성된 클러스터와 연결할 파라미터 그룹을 편집할 수 있습니다. 또한 사용자 지정 파라미터 그룹을 만들 때 또는 현재 파라미터 그룹을 편집할 때 대/소문자 구분을 사용하도록 설정해야 제로 ETL 통합을 사용할 수 있습니다.

Amazon Redshift 콘솔 또는 AWS CLI를 사용하여 사용자 지정 파라미터 그룹을 만들려면 파라미터 그룹 생성을 참조하세요.

데이터 웨어하우스에 대/소문자 구분 기능 사용 설정

프로비저닝된 클러스터를 생성하는 동안 파라미터 그룹을 연결하고 대/소문자 구분을 활성화할 수 있습니다. 하지만 서버리스 작업 그룹은 생성된 후에만 AWS Command Line Interface(AWS CLI)를 통해 업데이트할 수 있습니다. 이는 MySQL 및 PostgreSQL의 대/소문자 구분을 지원하는 데 필요합니다. enable_case_sensitive_identifier는 데이터베이스, 테이블 및 열의 이름 식별자가 대/소문자를 구분하는지를 결정하는 구성 값입니다. 데이터 웨어하우스에서 대/소문자를 구분하지 않는 통합을 만들려면 이 파라미터를 사용 설정해야 합니다. 자세한 내용은 enable_case_sensitive_identifier 단원을 참조하세요.

Amazon Redshift Serverless의 경우 – AWS CLI를 사용하여 Amazon Redshift 서버리스에 대/소문자 구분 사용 설정. 대/소문자 구분은 AWS CLI에서만 Amazon Redshift Serverless에 대해 설정할 수 있다는 점에 유의하세요.

Amazon Redshift 프로비저닝 클러스터의 경우 다음 주제 중 하나를 사용하여 대상 클러스터의 대/소문자 구분을 활성화하세요.

AWS CLI를 사용하여 Amazon Redshift 서버리스에 대/소문자 구분 사용 설정

다음 AWS CLI 명령을 실행하여 작업 그룹의 대/소문자 구분을 활성화합니다.

aws redshift-serverless update-workgroup \ --workgroup-name target-workgroup \ --config-parameters parameterKey=enable_case_sensitive_identifier,parameterValue=true

다음 단계로 진행하기 전에 작업 그룹 상태가 Active 상태가 될 때까지 기다립니다.

Amazon Redshift 콘솔을 사용하여 대/소문자 구분을 프로비저닝된 클러스터에 사용 설정

  1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/redshiftv2/에서 Amazon Redshift 콘솔을 엽니다.

  2. 왼쪽 탐색 창에서 프로비저닝된 클러스터 대시보드를 선택합니다.

  3. 데이터를 복제할 프로비저닝된 클러스터를 선택합니다.

  4. 왼쪽 탐색 창에서 구성 > 워크로드 관리를 선택합니다.

  5. 워크로드 관리 페이지에서 파라미터 그룹을 선택합니다.

  6. 파라미터 탭을 선택합니다.

  7. 파라미터 편집을 선택한 다음 enable_case_sensitive_identifiertrue로 변경합니다.

  8. 그런 다음 저장을 선택합니다.

AWS CLI를 사용하여 대/소문자 구분을 프로비저닝된 클러스터에 사용 설정

  1. 기본 파라미터 그룹은 편집할 수 없으므로 터미널 프로그램에서 다음 AWS CLI 명령을 실행하여 사용자 지정 파라미터 그룹을 생성합니다. 나중에 프로비저닝된 클러스터와 연결할 것입니다.

    aws redshift create-cluster-parameter-group \ --parameter-group-name zero-etl-params \ --parameter-group-family redshift-1.0 \ --description "Param group for zero-ETL integrations"
  2. 다음 AWS CLI 명령을 실행하여 파라미터 그룹의 대/소문자 구분을 활성화합니다.

    aws redshift modify-cluster-parameter-group \ --parameter-group-name zero-etl-params \ --parameters ParameterName=enable_case_sensitive_identifier,ParameterValue=true
  3. 다음 명령을 실행하여 파라미터 그룹을 클러스터에 연결합니다.

    aws redshift modify-cluster \ --cluster-identifier target-cluster \ --cluster-parameter-group-name zero-etl-params
  4. 프로비저닝된 클러스터를 사용할 수 있을 때까지 기다립니다. describe-cluster 명령을 사용하여 클러스터의 상태를 확인할 수 있습니다. 그리고 나서 다음 명령을 실행하여 클러스터를 재부팅합니다.

    aws redshift reboot-cluster \ --cluster-identifier target-cluster

Amazon Redshift 데이터 웨어하우스에 대한 권한 부여 구성

통합 소스의 데이터를 Amazon Redshift 데이터 웨어하우스에 복제하려면 먼저 다음 두 엔터티를 추가해야 합니다.

  • 권한 있는 보안 주체 — 데이터 웨어하우스에 제로 ETL 통합을 생성할 수 있는 사용자 또는 역할을 식별합니다.

  • 권한이 부여된 통합 소스 - 데이터 웨어하우스를 업데이트할 수 있는 소스 데이터베이스를 식별합니다.

Amazon Redshift 콘솔의 리소스 정책 탭에서 또는 Amazon Redshift PutResourcePolicy API 작업을 사용하여 권한이 부여된 보안 주체 및 권한이 부여된 통합 소스를 구성할 수 있습니다.

권한 있는 보안 주체 추가

Redshift Serverless 작업 그룹 또는 프로비저닝된 클러스터에 제로 ETL 통합을 생성하려면 연결된 네임스페이스 또는 프로비저닝된 클러스터에 대한 액세스 권한을 부여하세요.

다음 조건이 모두 충족되면 이 단계를 건너뛰어도 됩니다.

  • Redshift Serverless 작업 그룹 또는 프로비저닝된 클러스터를 소유하는 AWS 계정이 소스 데이터베이스도 소유합니다.

  • 해당 보안 주체가 이 Redshift Serverless 네임스페이스 또는 프로비저닝된 클러스터에 제로 ETL 통합을 생성할 수 있는 권한이 있는 ID 기반 IAM 정책과 연결되어 있습니다.

Amazon Redshift 서버리스 네임스페이스에 권한 있는 보안 주체 추가

  1. Amazon Redshift 콘솔의 왼쪽 탐색 창에서 Redshift Serverless를 선택합니다.

  2. 네임스페이스 구성을 선택한 다음 네임스페이스를 선택하고 리소스 정책 탭으로 이동합니다.

  3. 권한 있는 보안 주체 추가를 선택합니다.

  4. 추가하려는 권한이 부여된 보안 주체마다 AWS 사용자나 역할의 ARN 또는 제로 ETL 통합을 만들기 위해 액세스 권한을 부여하려는 AWS 계정의 ID를 네임스페이스에 입력합니다. 계정 ID는 ARN으로 저장됩니다.

  5. 변경 사항 저장을 선택합니다.

Amazon Redshift 프로비저닝된 클러스터에 권한 있는 보안 주체 추가

  1. Amazon Redshift 콘솔의 왼쪽 탐색 창에서 프로비저닝된 클러스터 대시보드를 선택합니다.

  2. 클러스터를 선택한 다음 클러스터를 선택하고 리소스 정책 탭으로 이동합니다.

  3. 권한 있는 보안 주체 추가를 선택합니다.

  4. 추가하려는 권한이 부여된 보안 주체마다 AWS 사용자나 역할의 ARN 또는 제로 ETL 통합을 만들기 위해 액세스 권한을 부여하려는 AWS 계정의 ID를 클러스터에 입력합니다. 계정 ID는 ARN으로 저장됩니다.

  5. Save changes(변경 사항 저장)를 선택합니다.

권한 있는 통합 소스 추가

소스가 Amazon Redshift 데이터 웨어하우스를 업데이트할 수 있도록 하려면 네임스페이스에 권한이 부여된 통합 소스로 추가해야 합니다.

권한 있는 통합 소스를 Amazon Redshift 서버리스 네임스페이스에 추가

  1. Amazon Redshift 콘솔에서 서버리스 대시보드로 이동합니다.

  2. 네임스페이스의 이름을 선택합니다.

  3. 리소스 정책 탭으로 이동합니다.

  4. 권한 있는 통합 소스 추가를 선택합니다.

  5. 제로 ETL 통합을 위한 소스의 ARN을 지정합니다.

참고

권한 있는 통합 소스를 제거하면 네임스페이스에 데이터가 복제되는 것이 중지됩니다. 이 작업을 수행하면 해당 소스에서 이 네임스페이스로의 모든 제로 ETL 통합이 비활성화됩니다.

Amazon Redshift 프로비저닝된 클러스터에 권한 있는 통합 소스 추가

  1. Amazon Redshift 콘솔에서 프로비저닝된 클러스터 대시보드로 이동합니다.

  2. 프로비저닝된 클러스터의 이름을 선택합니다.

  3. 리소스 정책 탭으로 이동합니다.

  4. 권한 있는 통합 소스 추가를 선택합니다.

  5. 제로 ETL 통합을 위한 데이터 소스인 소스의 ARN을 지정합니다.

참고

권한 있는 통합 소스를 제거하면 프로비저닝된 클러스터에 데이터가 복제되는 것이 중지됩니다. 이 작업을 수행하면 해당 소스에서 이 Amazon Redshift 프로비저닝된 클러스터로의 모든 제로 ETL 통합이 비활성화됩니다.

Amazon Redshift API를 사용하여 권한 부여 구성

Amazon Redshift API 작업을 사용하여 제로 ETL 통합에서 작동하는 리소스 정책을 구성할 수 있습니다.

네임스페이스로의 인바운드 통합을 생성할 수 있는 소스를 제어하려면 리소스 정책을 생성하여 네임스페이스에 연결하세요. 리소스 정책을 사용하여 통합에 액세스할 수 있는 소스를 지정할 수 있습니다. 리소스 정책은 대상 데이터 웨어하우스의 네임스페이스에 연결되어 소스가 인바운드 통합을 생성하여 소스의 라이브 데이터를 Amazon Redshift로 복제할 수 있도록 합니다.

다음은 샘플 리소스 정책입니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "redshift.amazonaws.com" }, "Action": "redshift:AuthorizeInboundIntegration", "Condition": { "StringEquals": { "aws:SourceArn": "source_arn" } } }, { "Effect": "Allow", "Principal": { "AWS": "source_principal" }, "Action": "redshift:CreateInboundIntegration" } ] }

다음은 통합을 위한 리소스 정책 구성에 적용할 수 있는 Amazon Redshift API 작업을 요약한 것입니다.

  • PutResourcePolicy API 작업을 사용하여 리소스 정책을 유지할 수 있습니다. 다른 리소스 정책을 제공하면 해당 리소스의 이전 리소스 정책이 대체됩니다. 다음 작업에 대한 권한을 부여하는 이전 리소스 정책 예시를 사용하세요.

    • CreateInboundIntegration - 소스 보안 주체가 소스에서 대상 데이터 웨어하우스로 복제할 데이터에 대한 인바운드 통합을 생성할 수 있도록 허용합니다.

    • AuthorizeInboundIntegration - 대상 데이터 웨어하우스가 소스 ARN에서 복제된 데이터를 수신할 수 있는지 Amazon Redshift가 지속적으로 검증하도록 허용합니다.

  • GetResourcePolicy API 작업을 사용하여 기존 리소스 정책을 볼 수 있습니다.

  • DeleteResourcePolicy API 작업을 사용하여 리소스에서 리소스 정책을 제거할 수 있습니다.

리소스 정책을 업데이트하려면 put-resource-policy AWS CLI 명령을 사용할 수도 있습니다.

다음 단계

이제 대상 Amazon Redshift 데이터 웨어하우스에 대한 권한 부여를 구성했으므로, 제로 ETL 통합을 만들고 데이터 복제를 시작할 수 있습니다.

소스에 따라 다음 중 하나를 수행합니다.