AWS 기술 블로그

AWS Schema Conversion tool(SCT)를 활용하여 Google BigQuery에서 Amazon Redshift로 마이그레이션하기

이 글은 AWS Big Data 블로그의 Migrate Google BigQuery to Amazon Redshift using AWS Schema Conversion tool (SCT) by Jagadish Kumar, Anusha Challa, Amit Arora, and Cedrick Hoodye의 한국어 번역입니다.

Amazon Redshift는 페타바이트 규모의 완전관리형 고속 데이터 웨어하우스로서, 분석 워크로드에서 프로비저닝 혹은 서버리스 형태의 컴퓨팅을 사용할 수 있는 유연성을 제공합니다. Amazon Redshift ServerlessQuery Editor v2를 사용하면 클릭 몇 번으로 대규모 데이터 세트를 로드 및 쿼리할 수 있고 사용한 만큼만 비용을 지불하면 됩니다. Amazon Redshift는 컴퓨팅과 스토리지가 분리되어 있고, 이러한 아키텍처를 통해 확장성과 복원력이 뛰어나며 비용 효율적인 워크로드를 구축할 수 있습니다. 많은 고객이 데이터 웨어하우징 워크로드를 Amazon Redshift로 마이그레이션하여 다양한 기능을 활용합니다. 다음은 주목할 만한 기능 중 일부에 불과합니다.

  • Amazon Redshift는 AWS의 광범위한 분석 서비스와 원활하게 통합됩니다. 이를 통해 올바른 작업에 적합한 도구를 선택할 수 있습니다. 최신 분석은 SQL 기반 데이터 웨어하우징보다 훨씬 광범위합니다. Amazon Redshift를 사용하면 lake house 아키텍처를 구축한 다음 대화형 분석, 운영 분석, 빅 데이터 처리, 시각적 데이터 준비, 예측 분석, 기계 학습 (ML) 등과 같은 모든 종류의 분석을 수행할 수 있습니다.
  • ETL, 대시보드, 애드혹 쿼리 등과 같은 워크로드가 서로 영향을 미치고 간섭하는 것에 대해 걱정할 필요가 없습니다. 동일한 기본 데이터세트를 사용하면서도 데이터 공유를 하며 워크로드를 분리할 수 있습니다.
  • 사용자가 피크 타임에 많은 쿼리를 실행하면 몇 초 내에 컴퓨팅이 원활하게 확장되어 높은 동시성으로 일관된 성능을 제공합니다. 24시간 동안 사용할 수 있는 1시간의 무료 동시성 확장 용량이 제공됩니다. 이 무료 크레딧은 Amazon Redshift 고객 기반의 97% 의 동시 사용 수요를 충족합니다.
  • Amazon Redshift는 자체 조정 및 자체 최적화 기능을 갖추고 있어 사용이 간편합니다. 데이터 웨어하우스를 관리하는 데 귀중한 시간을 들이지 않고도 더 빠르게 인사이트를 얻을 수 있습니다.
  • 내결함성 기능이 내장되어 있습니다. Amazon Redshift에 기록된 모든 데이터는 Amazon Simple Storage Service (Amazon S3)에 자동으로 지속적으로 복제됩니다. 모든 하드웨어 장애는 자동으로 교체됩니다.
  • Amazon Redshift는 상호 작용이 간단합니다. 전통적 방식, 클라우드 네이티브, 컨테이너식 및 서버리스 웹 서비스 기반 또는 이벤트 기반 애플리케이션 등을 사용하여 데이터에 액세스할 수 있습니다.
  • Redshift ML을 사용하면 데이터 사이언티스트가 익숙한 SQL을 사용하여 ML 모델을 쉽게 생성, 훈련 및 배포할 수 있습니다. SQL을 사용하여 예측을 실행할 수도 있습니다.
  • Amazon Redshift는 추가 비용 없이 포괄적인 데이터 보안을 제공합니다. 종단간 데이터 암호화를 설정하고, 방화벽 규칙을 구성하고, 민감한 데이터에 대한 세분화된 행 및 열 수준 보안 제어를 정의하는 등의 작업을 수행할 수 있습니다.
  • Amazon Redshift는 다른 AWS 서비스 및 타사 도구와 원활하게 통합됩니다. 대규모 데이터 세트를 빠르고 안정적으로 이동, 변환, 로드 및 쿼리할 수 있습니다.

이 게시물에서는 AWS Schema Conversion Tool(AWS SCT)AWS SCT data extraction agents를 사용하여 Google BigQuery에서 Amazon Redshift로 데이터 웨어하우스를 마이그레이션하는 방법을 안내합니다. AWS SCT는 대부분의 데이터베이스 코드 및 스토리지 객체를 타겟 데이터베이스와 호환되는 형식으로 자동 변환하여 이기종 데이터베이스 마이그레이션을 예측 가능하게 만드는 서비스입니다. 자동으로 변환할 수 없는 모든 객체는 명확하게 표시되므로 수동으로 변환하여 마이그레이션을 완료할 수 있습니다. 또한 AWS SCT는 애플리케이션 코드에서 포함된 SQL 문을 스캔하여 변환할 수 있습니다.

솔루션 개요

AWS SCT는 서비스 계정을 사용하여 BigQuery 프로젝트에 연결합니다. 먼저, BigQuery 데이터를 마이그레이션 할 Amazon Redshift 데이터베이스를 만듭니다. 다음으로 S3 버킷을 생성합니다. 그런 다음 AWS SCT를 사용하여 BigQuery 스키마를 변환하고 이를 Amazon Redshift에 적용합니다. 마지막으로 데이터를 마이그레이션하기 위해 BigQuery에서 데이터를 추출하여 S3 버킷에 업로드한 다음 Amazon Redshift에 복사하는 AWS SCT data extraction agents를 사용합니다.

사전 요구 사항

이 연습을 시작하기 전에 다음과 같은 사전 요구 사항을 충족해야 합니다:

  1. AWS SCT, Amazon Corretto 11 및 Amazon Redshift 드라이버가 탑재된 워크스테이션
    1. Amazon Elastic Compute Cloud (Amazon EC2) 인스턴스 또는 로컬 데스크톱을 워크스테이션으로 사용할 수 있습니다. 이 안내에서는 Amazon EC2 Windows 인스턴스를 사용합니다. 생성하려면 이 안내서를 사용하십시오.
    2. 이전에 생성한 EC2 인스턴스에 AWS SCT를 다운로드하여 설치하려면 이 안내서를 사용하십시오.
    3. 이 위치에서 Amazon JDBC 드라이버를 다운로드합니다.
    4. Amazon Corretto 11을 다운로드하여 설치하십시오.
  2. AWS SCT가 소스 BigQuery 프로젝트에 연결하는 데 사용할 수 있는 GCP 서비스 계정
    1. BigQuery AdminStorage Admin 역할을 서비스 계정에 부여합니다.
    2. Google 클라우드 관리 콘솔에서 만든 서비스 계정 키 파일을 AWS SCT가 있는 EC2 인스턴스로 복사합니다.
    3. GCP에서 Cloud Storage 버킷을 생성하여 마이그레이션에 사용할 소스 데이터를 저장합니다.

이 연습에서는 다음 단계를 다룹니다:

  • Amazon Redshift 서버리스 워크그룹 및 네임스페이스 생성
  • AWS S3 버킷 및 폴더 생성
  • AWS SCT를 사용하여 BigQuery 스키마를 Amazon Redshift로 변환 및 적용
    • Google BigQuery 소스에 연결
    • Amazon Redshift 타겟에 연결
    • BigQuery 스키마를 Amazon Redshift로 변환
    • 평가 보고서 분석 및 조치 항목 해결
    • 변환된 스키마를 대상 Amazon Redshift에 적용
  • AWS SCT data extraction agents를 사용하여 데이터를 마이그레이션
    • Trust 및 키 스토어 생성 (선택 사항)
    • data extraction agents 설치 및 시작
    • data extraction agents 등록
    • large 테이블용 가상 파티션 추가 (선택 사항)
    • 로컬 마이그레이션 작업 생성
    • 로컬 데이터 마이그레이션 작업 시작
  • Amazon Redshift에서 데이터 보기

Amazon Redshift 서버리스 워크그룹 및 네임스페이스 생성

이 단계에서는 Amazon Redshift 서버리스 워크그룹과 네임스페이스를 생성합니다. 워크그룹은 컴퓨팅 리소스 모음이고 네임스페이스는 데이터베이스 객체 및 사용자 모음입니다. Amazon Redshift Serverless에서 워크로드를 격리하고 다양한 리소스를 관리하려면 네임스페이스와 작업 그룹을 생성하고 스토리지 및 컴퓨팅 리소스를 별도로 관리할 수 있습니다.

다음 단계에 따라 Amazon Redshift 서버리스 워크그룹 및 네임스페이스를 생성하십시오.

  • Amazon Redshift 콘솔로 이동합니다.
  • 오른쪽 상단에서 사용하려는 AWS 리전을 선택합니다.
  • 왼쪽의 Amazon Redshift 창을 확장하고 Redshift Serverless를 선택합니다.
  • Create Workgroup을 선택합니다.
  • Workgroup name에 컴퓨팅 리소스를 설명하는 이름을 입력합니다.
  • VPC가 AWS SCT를 사용하는 EC2 인스턴스와 VPC와 동일한지 확인합니다.
  • Next을 선택합니다.

  • Namesace name에는 데이터세트를 설명하는 이름을 입력합니다.
  • Database name and password 섹션에서 Customize admin user credentials 체크박스를 선택합니다.
    • Admin user name에는 원하는 사용자 이름 (예: awsuser) 을 입력합니다.
    • Admin user password: 원하는 암호를 입력합니다 (예: MyRedshiftPW2022).

  • Next를 선택합니다. Amazon Redshift 서버리스 네임스페이스의 데이터는 기본적으로 암호화된다는 점에 유의하십시오.
  • Review and Create 페이지에서 Create을 선택합니다.
  • AWS Identity and Access Management (IAM) 역할을 생성하고 다음 설명에 따라 이를 네임스페이스의 기본값으로 설정합니다. 기본 IAM 역할은 하나만 있을 수 있다는 점에 유의하십시오.
    • Amazon Redshift Serverless Dashboard로 이동합니다.
    • Namespaces / Workgroups에서 방금 만든 네임스페이스를 선택합니다.
    • Security and encryption으로 이동합니다.
    • Permissions에서 Manage IAM roles를 선택합니다.
    • Manage IAM roles로 이동합니다. 그런 다음 Manage IAM roles 드롭다운을 선택하고 Create IAM role을 선택합니다.
    • Specify an Amazon S3 bucket for the IAM role to access에서 다음 방법 중 하나를 선택합니다:
      • 생성된 IAM 역할이 redshift로 시작하는 이름을 가진 S3 버킷에만 액세스할 수 있도록 하려면 No Additional Amazon S3 bucket을 선택합니다.
      • 생성된 IAM 역할이 모든 S3 버킷에 액세스할 수 있도록 하려면 Any Amazon S3 bucket을 선택합니다.
      • 생성된 IAM 역할이 액세스할 하나 이상의 S3 버킷을 지정하려면 Specific Amazon S3 buckets을 선택합니다. 그런 다음 테이블에서 하나 이상의 S3 버킷을 선택합니다.
    • Create IAM role as default를 선택합니다. Amazon Redshift는 자동으로 IAM 역할을 생성하고 기본값으로 설정합니다.
  • 방금 생성한 Amazon Redshift 서버리스 워크그룹의 엔드포인트를 캡처합니다.
    • Amazon Redshift Serverless Dashboard로 이동합니다.
    • Namespaces / Workgroups에서 방금 만든 워크그룹을 선택합니다.
    • General information에서 Endpoint를 복사합니다.

S3 버킷 및 폴더 생성

데이터 마이그레이션 프로세스 중에 AWS SCT는 Amazon S3를 추출된 데이터의 스테이징 영역으로 사용합니다. 다음 단계에 따라 S3 버킷을 생성하십시오:

  • Amazon S3 콘솔로 이동합니다.
  • Create bucket을 선택합니다. Create bucket 마법사가 열립니다.
  • Bucket name에는 고유한 DNS-compliant 한 이름 (예: uniquename-bq-rs) 을 입력합니다. 이름을 선택할 때는 버킷 이름 지정 규칙을 참조하십시오.
  • AWS 리전의 경우 Amazon Redshift 서버리스 워크그룹을 생성한 리전을 선택합니다.
  • Create bucket을 선택합니다.
  • Amazon S3 콘솔에서 방금 생성한 S3 버킷 (예: uniquename-bq-rs) 으로 이동합니다.
  • 새 폴더를 만들려면 **“Create folder”**를 선택합니다.
  • Folder nameincoming을 입력하고 Create Folder을 선택합니다.

AWS SCT를 사용하여 BigQuery 스키마를 Amazon Redshift로 변환 및 적용

BigQuery 스키마를 Amazon Redshift 의 포맷으로 변환하려면 AWS SCT를 사용합니다. 먼저 이전에 생성한 EC2 인스턴스에 로그인한 다음 AWS SCT를 시작합니다.

AWS SCT를 사용하여 다음 단계를 따르십시오:

BigQuery 소스에 연결

  • File Menu에서 Create New Project를 선택합니다.
  • 프로젝트 파일 및 데이터를 저장할 위치를 선택합니다.
  • 유의미하고 기억하기 쉬운 프로젝트 이름 (예: BigQuery to Amazon Redshift) 을 입력합니다.
  • BigQuery 소스 데이터 웨어하우스에 연결하려면 기본 메뉴에서 Add source를 선택합니다.
  • BigQuery를 선택하고 Next을 선택합니다. Add source 대화 상자가 나타납니다.
  • Connection name에는 BigQuery 연결을 설명하는 이름을 입력합니다. AWS SCT는 왼쪽 패널의 트리에 이 이름을 표시합니다.
  • Key path에는 이전에 Google Cloud 관리 콘솔에서 만든 서비스 계정 키 파일의 경로를 입력합니다.
  • Test Connection을 선택하여 AWS SCT가 소스 BigQuery 프로젝트에 연결할 수 있는지 확인합니다.
  • 연결이 성공적으로 검증되면 Connect를 선택합니다.

Amazon Redshift 타겟에 연결

Amazon Redshift에 연결하려면 다음 단계를 따르십시오:

  • AWS SCT의 기본 메뉴에서 Add Target를 선택합니다.
  • Amazon Redshift를 선택한 후 Next을 선택합니다. Add Target 대화 상자가 나타납니다.
  • Connection name에는 Amazon Redshift 연결을 설명하는 이름을 입력합니다. AWS SCT는 오른쪽 패널의 트리에 이 이름을 표시합니다.
  • Server name에는 이전에 캡처한 Amazon Redshift 서버리스 워크그룹 엔드포인트를 입력합니다.
  • Server port5439를 입력합니다.
  • Databasedev를 입력합니다.
  • User name에는 Amazon Redshift 서버리스 워크그룹을 생성할 때 선택한 사용자 이름을 입력합니다.
  • Password에 Amazon Redshift 서버리스 워크그룹을 생성할 때 선택한 암호를 입력합니다.
  • “Use AWS Glue” 체크박스를 선택 취소하십시오.
  • Test Connection을 선택하여 AWS SCT가 대상 Amazon Redshift 워크그룹에 연결할 수 있는지 확인합니다.
  • Connect을 선택하여 Amazon Redshift 대상에 연결합니다.

AWS Secrets Manager에 저장된 연결 값을 사용할 수도 있다는 점을 참고하십시오.

BigQuery 스키마를 Amazon Redshift로 변환

소스 및 타겟 연결이 성공적으로 이루어지면 왼쪽 창에 소스 BigQuery 객체 트리가 표시되고 오른쪽 창에 대상 Amazon Redshift 객체 트리가 표시됩니다.

BigQuery 스키마를 Amazon Redshift 형식으로 변환하려면 다음 단계를 따르세요:

  • 왼쪽 창에서 변환하려는 스키마를 마우스 오른쪽 버튼으로 클릭합니다.
  • Convert Schema를 선택합니다.
  • The objects might already exist in the target database. Replace? 라는 질문과 함께 대화 상자가 나타납니다. Yes 를 선택합니다.

변환이 완료되면 Amazon Redshift 패널 (오른쪽 창) 에 BigQuery 스키마와 동일한 이름으로 새 스키마가 생성된 것을 볼 수 있습니다.

사용한 샘플 스키마에는 테이블 16개, 뷰 3개, 프로시저 3개가 있습니다. 오른쪽 창에서 Amazon Redshift 포맷으로 이러한 객체를 볼 수 있습니다. AWS SCT는 모든 BigQuery 코드 및 데이터 객체를 Amazon Redshift 포맷으로 변환합니다. 또한 AWS SCT를 사용하여 외부 SQL 스크립트, 애플리케이션 코드 또는 SQL이 내장된 추가 파일을 변환할 수 있습니다.

평가 보고서 분석 및 조치 항목 해결

AWS SCT는 마이그레이션 복잡성을 평가하기 위한 평가 보고서를 생성합니다. AWS SCT는 대부분의 코드 및 데이터베이스 객체를 변환할 수 있습니다. 그러나 일부 객체는 수동 변환이 필요할 수 있습니다. AWS SCT는 전환 통계 다이어그램에서 이러한 객체를 파란색으로 강조 표시하고 복잡성이 수반되는 작업 항목을 생성합니다.

평가 보고서를 보려면 다음과 같이 Main view에서 Assessment Report view로 전환하십시오:

Summary 탭에는 자동으로 변환된 객체와 자동으로 변환되지 않은 객체가 표시됩니다. 녹색은 자동으로 변환되거나 간단한 작업 항목이 포함된 것을 나타냅니다. 파란색은 수동 개입이 필요한 중간 및 복잡한 작업 항목을 나타냅니다.

Action Items 탭에는 각 전환 문제에 대한 권장 조치가 표시됩니다. 목록에서 작업 항목을 선택하면 AWS SCT가 작업 항목이 적용되는 객체를 강조 표시합니다.

보고서에는 스키마 항목을 수동으로 변환하는 방법에 대한 권장 사항도 포함되어 있습니다. 예를 들어, 평가가 실행된 후 데이터베이스/스키마에 대한 세부 보고서에는 작업 항목 변환을 위한 권장 사항을 설계하고 구현하는 데 필요한 노력이 표시됩니다. 수동 전환 처리 방법을 결정하는 방법에 대한 자세한 내용은 Handling manual conversions in AWS SCT를 참조하십시오. Amazon Redshift는 스키마를 Amazon Redshift로 변환하는 동안 일부 작업을 자동으로 수행합니다. 이러한 동작을 수행하는 객체에는 빨간색 경고 기호가 표시됩니다.

오른쪽 창에서 개별 객체 DDL을 선택하여 평가 및 검사할 수 있으며 필요에 따라 편집할 수도 있습니다. 다음 예시에서는 AWS SCT가 BigQuery 테이블 ncaaf_referee_data의 레코드 및 JSON 데이터 유형 열을 Amazon Redshift의 SUPER 데이터 유형으로 수정합니다. ncaaf_referee_data 테이블의 파티션 키는 Amazon Redshift의 배포 키 및 정렬 키로 변환됩니다.

변환된 스키마를 타겟 Amazon Redshift에 적용

변환된 스키마를 Amazon Redshift에 적용하려면 오른쪽 창에서 변환된 스키마를 선택하고 마우스 오른쪽 버튼을 클릭한 다음 Apply to database를 선택합니다.

AWS SCT data extraction agents를 사용하여 BigQuery에서 Amazon Redshift로 데이터를 마이그레이션

AWS SCT extraction agents는 원본 데이터베이스에서 데이터를 추출하여 AWS 클라우드로 마이그레이션합니다. 이 안내에서는 BigQuery에서 데이터를 추출하고 Amazon Redshift로 마이그레이션하도록 AWS SCT extraction agents를 구성하는 방법을 보여줍니다.

먼저, AWS SCT가 설치된 동일한 Windows 인스턴스에 AWS SCT extraction agent를 설치합니다. 성능 향상을 위해 가능하면 별도의 Linux 인스턴스를 사용하여 추출 에이전트를 설치하는 것이 좋습니다. 큰 데이터셋의 경우 여러 데이터 추출 에이전트를 사용하여 데이터 마이그레이션 속도를 높일 수 있습니다.

trust 및 키 스토어 생성 (선택 사항)

AWS SCT data extractors와 함께 보안 소켓 계층 (SSL) 암호화 통신을 사용할 수 있습니다. SSL을 사용하면 애플리케이션 간에 전달되는 모든 데이터는 비공개로 및 통합된 상태로 유지됩니다. SSL 통신을 사용하려면 AWS SCT를 사용하여 trust와 키 스토어를 생성해야 합니다. SSL을 사용하지 않으려면 이 단계를 건너뛰어도 됩니다.운영 워크로드에는 SSL을 사용하는 것이 좋습니다.

다음 단계에 따라 trust 및 키 스토어를 생성하십시오:

  1. AWS SCT에서 Settings → Global Settings → Security으로 이동합니다.
  2. Generate trust and key store을 선택합니다.
  3. trust와 키 스토어의 이름과 비밀번호를 입력하고 저장할 위치를 선택합니다.
  4. Generate를 선택합니다.

Data Extraction Agent 설치 및 구성

AWS SCT용 설치 패키지에는 하위 폴더 에이전트 (\aws-schema-conversion-tool-1.0.latest.zip\ agents) 가 있습니다. aws-schema-conversion-tool-extractor-xxxxxxxx.msi 같은 이름의 실행 파일을 찾아 설치합니다.

설치 프로세스에서 다음 단계에 따라 AWS SCT Data Extractor를 구성하십시오:

  1. Listening port에는, 에이전트가 수신하는 포트 번호를 입력합니다. 기본값은 8192입니다.
  2. Add a source vendor에는, BigQuery에 연결하는 데 드라이버가 필요하지 않으므로 no를 입력합니다.
  3. Add the Amazon Redshift driver에는, YES를 입력합니다.
  4. Enter Redshift JDBC driver file or files에는, Amazon Redshift JDBC 드라이버를 다운로드한 위치를 입력합니다.
  5. Working folder에는, AWS SCT data extraction agent가 추출된 데이터를 저장할 경로를 입력합니다. working foler는 에이전트와 다른 컴퓨터에 있을 수 있으며, 하나의 working folder를 서로 다른 컴퓨터에 있는 여러 에이전트가 공유할 수 있습니다.
  6. Enable SSL communicationyes를 입력합니다. SSL을 사용하지 않으려면 여기서 No를 선택하십시오.
  7. Key store의 경우 trust 및 키 저장소를 만들 때 선택한 저장 위치를 입력합니다.
  8. Key store password에 키 스토어의 비밀번호를 입력합니다.
  9. Enable client SSL authenticationyes를 입력합니다.
  10. Trust store의 경우 trust 및 키 저장소를 만들 때 선택한 저장 위치를 입력합니다.
  11. Trust store password에 trust 스토어의 비밀번호를 입력합니다.
*************************************************
*                                               *
*     AWS SCT Data Extractor Configuration      *
*              Version 2.0.1.666                *
*                                               *
*************************************************
User name: Administrator
User home: C:\Windows\system32\config\systemprofile
*************************************************
Listening port [8192]: 8192
Add a source vendor [YES/no]: no
No one source data warehouse vendors configured. AWS SCT Data Extractor cannot process data extraction requests.
Add the Amazon Redshift driver [YES/no]: YES
Enter Redshift JDBC driver file or files: C:\Users\Administrator\Desktop\BQToRedshiftSCTProject\redshift-jdbc42-2.1.0.9.jar
Working folder [C:\Windows\system32\config\systemprofile]: C:\Users\Administrator\Desktop\BQToRedshiftSCTProject
Enable SSL communication [YES/no]: YES
Setting up a secure environment at "C:\Windows\system32\config\systemprofile". This process will take a few seconds...
Key store [ ]: C:\Users\Administrator\Desktop\BQToRedshiftSCTProject\TrustAndKeyStores\BQToRedshiftKeyStore
Key store password:
Re-enter the key store password:
Enable client SSL authentication [YES/no]: YES
Trust store [ ]: C:\Users\Administrator\Desktop\BQToRedshiftSCTProject\TrustAndKeyStores\BQToRedshiftTrustStore
Trust store password:
Re-enter the trust store password:

Data Extraction Agent(s) 시작

다음 절차를 사용하여 extraction agents를 시작하십시오. Extraction agent가 설치된 각 컴퓨터에서 이 절차를 반복합니다.

Extraction agents는 리스너 역할을 합니다. 이 절차를 사용하여 agent를 시작하면 agent는 지침을 듣기 시작합니다. 이후 섹션에서 agents에게 데이터 웨어하우스에서 데이터를 추출하라는 지침을 보냅니다.

Extraction agents를 시작하려면 AWS SCT Data Extractor 디렉터리로 이동합니다.예를 들어, 마이크로소프트 윈도우에서는 다음을 더블 클릭합니다.

C:\Program Files\AWS SCT Data Extractor Agent\StartAgent.bat

  • Extraction agent가 설치된 컴퓨터의 명령 프롬프트 또는 터미널 창에서 운영 체제에 따른 명령을 실행합니다.
  • 에이전트의 상태를 확인하려면 동일한 명령을 실행하되 start를 status로 바꾸십시오.
  • 에이전트를 중지하려면 동일한 명령을 실행하되 start를 stop으로 바꾸십시오.
  • 에이전트를 다시 시작하려면 동일한 RestartAgent.bat 파일을 실행합니다.

Data Extraction Agent 등록

다음 단계에 따라 Data Extraction Agent를 등록하십시오:

  1. AWS SCT에서 view를 Data Migration view (other) 로 변경하고 + Register을 선택합니다.
  2. connection 탭에서:

    1. Description에 Data Extraction Agent를 식별하는 이름을 입력합니다.
    2. AWS SCT와 동일한 워크스테이션에 Data Extraction Agent를 설치한 경우 Host name에 0.0.0.0을 입력하여 로컬 호스트를 표시합니다. 그렇지 않으면 AWS SCT Data Extraction Agent가 설치된 시스템의 호스트 이름을 입력하십시오. 성능 향상을 위해 Linux에 Data Extraction Agents를 설치하는 것이 좋습니다.
    3. Port에는 AWS SCT Data Extraction Agent를 설치할 때 Listening Port에 입력한 번호를 입력합니다.
    4. SSL (SSL을 사용하는 경우) 을 사용하여 Data Extraction Agent에 대한 AWS SCT 연결을 암호화하려면 체크박스를 선택합니다.
  1. SSL을 사용하는 경우 SSL 탭에서:
    1. Trust store의 경우 trust 및 키 저장소를 생성할 때 만든 trust store 이름을 선택합니다 (SSL 연결이 필요하지 않은 경우 선택적으로 이 이름을 건너뛸 수 있음).
    2. Key Store의 경우 trust 및 키 저장소를 생성할 때 생성된 키 저장소 이름을 선택합니다 (SSL 연결이 필요하지 않은 경우 선택적으로 이 이름을 건너뛸 수 있음).

  1. Test Connection을 선택합니다.
  2. 연결이 성공적으로 검증되면 Register 를 선택합니다.

대형 테이블을 위한 가상 파티션 추가 (선택 사항)

AWS SCT를 사용하여 가상 파티션을 생성하여 마이그레이션 성능을 최적화할 수 있습니다. 가상 파티션이 생성되면 AWS SCT는 파티션용 데이터를 병렬로 추출합니다. 대형 테이블에는 가상 파티션을 만드는 것이 좋습니다.

다음 단계에 따라 가상 파티션을 생성하십시오:

  1. AWS SCT의 source database view에서 모든 객체를 선택 취소합니다.
  2. 가상 파티셔닝을 추가할 테이블을 선택합니다.
  3. 테이블을 마우스 우클릭하고 Add Virtual Partitioning를 선택합니다.
  4. List, Range 또는 Auto Split partitions을 사용할 수 있습니다. 가상 파티셔닝에 대해 자세히 알아보려면 Use virtual partitioning in AWS SCT을 참조하십시오. 이 예에서는 range 파티션을 자동으로 생성하는 Auto split partitioning을 사용합니다. 시작값, 끝값 및 파티션의 크기를 지정합니다. AWS SCT는 파티션을 자동으로 결정합니다. 데모를 보려면 Lineorder table에서:
    1. Start Value에 1000000을 입력합니다.
    2. End Value에 3000000을 입력합니다.
    3. Interval에 1000000을 입력하여 파티션 크기를 표시합니다.
    4. Ok을 선택합니다.

Virtual Partitions 탭에서 자동으로 생성된 파티션을 볼 수 있습니다. 이 예제에서 AWS SCT는 필드에 대해 다음과 같은 5개의 파티션을 자동으로 생성했습니다.

  1. <1000000
  2. =1000000 및 <=2000000
  3. 2000000 및 <=3000000
  4. 3000000
  5. IS NULL

로컬 마이그레이션 작업 생성

BigQuery에서 Amazon Redshift로 데이터를 마이그레이션하려면 AWS SCT에서 로컬 마이그레이션 작업을 생성, 실행 및 모니터링해야 합니다. 이 단계에서는 data extraction agent를 사용하여 작업을 생성하여 데이터를 마이그레이션합니다.

다음 단계에 따라 로컬 마이그레이션 작업을 생성하십시오:

  1. AWS SCT에서 왼쪽 창의 스키마 이름 아래에서 Standard tables을 마우스 우클릭합니다.
  2. Create Local task을 선택합니다.
  3. 다음과 같은 세 가지 마이그레이션 모드 중에서 선택할 수 있습니다.
    1. 소스 데이터를 추출하여 에이전트가 실행되는 로컬 PC/가상 머신 (VM) 에 저장합니다.
    2. 데이터를 추출하여 S3 버킷에 업로드합니다.
    3. 데이터를 S3 버킷으로 추출한 다음 Amazon Redshift에 복사하는 추출 업로드 및 복사를 선택합니다.
  4. Advanced 탭에서 Google CS bucket folder의 경우 이전에 GCP 관리 콘솔에서 만든 Google 클라우드 스토리지 버킷/폴더를 입력합니다. AWS SCT는 추출된 데이터를 이 위치에 저장합니다.
  5. Amazon S3 Settings 탭에서 Amazon S3 bucket folder의 경우 이전에 생성한 S3 버킷의 버킷 및 폴더 이름을 입력합니다. AWS SCT data extraction agent는 Amazon Redshift에 복사하기 전에 데이터를 S3 버킷/폴더에 업로드합니다.
  6. Test Task를 선택합니다.
  7. 작업이 성공적으로 검증되면 Create 를 선택합니다.

로컬 데이터 마이그레이션 작업 시작

작업을 시작하려면 Tasks 탭에서 Start 버튼을 선택합니다.

  • 먼저 Data Extraction Agent는 BigQuery에서 GCP 스토리지 버킷으로 데이터를 추출합니다.
  • 그런 다음 에이전트는 Amazon S3에 데이터를 업로드하고 복사 명령을 실행하여 데이터를 Amazon Redshift로 이동합니다.
  • 이제 AWS SCT는 소스 BigQuery 테이블에서 Amazon Redshift 테이블로 데이터를 성공적으로 마이그레이션했습니다.

Amazon Redshift에서 데이터 보기

데이터 마이그레이션 작업이 성공적으로 실행되면 Amazon Redshift에 연결하여 데이터를 검증할 수 있습니다.

다음 단계에 따라 Amazon Redshift에서 데이터를 검증하십시오:

  1. Amazon Redshift QueryEditor V2로 이동합니다.
  2. 생성한 Amazon Redshift 서버리스 워크그룹 이름을 더블클릭합니다.
  3. Authentication에서 Federated User 옵션을 선택합니다.
  4. Create Connection을 선택합니다.
  5. + 아이콘을 선택하여 새 편집기를 생성합니다.
  6. 편집기에서 확인하려는 스키마 이름과 테이블 이름/뷰 이름 중에서 선택하는 쿼리를 작성합니다. 데이터를 탐색하고, 임시 쿼리를 실행하고, 시각화와 차트 및 뷰를 만들 수 있습니다.

다음은 이 연습에서 사용한 스포츠 데이터 세트에 대한 소스 BigQuery와 대상 Amazon Redshift를 나란히 비교한 것입니다.

실습을 위해 생성한 AWS 리소스를 모두 정리하십시오.

다음 단계에 따라 EC2 인스턴스를 종료합니다:

  1. Amazon EC2 콘솔로 이동합니다.
  2. 탐색 창에서 Instances 를 선택합니다.
  3. 생성한 EC2 인스턴스의 체크박스를 선택합니다.
  4. Instance state를 선택한 다음 Terminate instance를 선택합니다.
  5. 확인 메시지가 표시되면 Terminate를 선택합니다.

Amazon Redshift 서버리스 워크그룹 네임스페이스를 삭제하려면 다음 단계를 따르십시오.

  1. Amazon Redshift 서버리스 대시보드로 이동합니다.
  2. Namespaces / Workgroups에서 생성한 작업 영역을 선택합니다.
  3. Actions에서 Delete workgroup를 선택합니다.
  4. Delete the associated namespace 체크박스를 선택합니다.
  5. Create final snapshot를 선택 취소합니다.
  6. delete confirmation 텍스트 상자에 delete를 입력하고 Delete를 선택합니다.

다음 단계에 따라 S3 버킷을 삭제하십시오.

  1. Amazon S3 콘솔로 이동합니다.
  2. 생성한 버킷을 선택합니다.
  3. Delete를 선택합니다.
  4. 삭제를 확인하려면 텍스트 입력 필드에 버킷 이름을 입력합니다.
  5. Delete bucket을 선택합니다.

마무리

데이터 웨어하우스 마이그레이션은 까다롭고 복잡하지만 보람 있는 프로젝트일 수 있습니다. AWS SCT는 데이터 웨어하우스 마이그레이션의 복잡성을 줄여줍니다. 이 안내를 통해 데이터 마이그레이션 작업이 어떻게 BigQuery에서 데이터를 추출, 다운로드한 다음 Amazon Redshift로 마이그레이션하는지 이해할 수 있습니다. 이 게시물에서 제시한 솔루션은 데이터베이스 객체 및 데이터의 일회성 마이그레이션을 수행합니다. 마이그레이션이 진행 중일 때 BigQuery에서 변경한 데이터는 Amazon Redshift에 반영되지 않습니다. 데이터 마이그레이션이 진행 중이면 BigQuery에 ETL 작업을 보류하거나 마이그레이션 후 Amazon Redshift를 가리키면 ETL을 다시 실행할 수 있습니다. AWS SCT의 모범 사례 활용을 고려해 보십시오.

AWS SCT에서는 BigQuery를 소스로 사용할 때 몇 가지 제한 사항이 있습니다. 예를 들어, AWS SCT는 분석 함수, 지리 함수, 통계 집계 함수 등의 하위 쿼리를 변환할 수 없습니다. AWS SCT 사용 설명서에서 전체 제한 목록을 확인하십시오. 향후 릴리스에서 이러한 제한 사항을 해결할 계획입니다. 이러한 제한에도 불구하고 AWS SCT를 사용하여 대부분의 BigQuery 코드 및 스토리지 객체를 자동으로 변환할 수 있습니다.

AWS SCT를 다운로드 및 설치하고, AWS 콘솔에 로그인하고, Amazon Redshift 서버리스를 통해, 마이그레이션을 시작하세요!

Yubin Cho

Yubin Cho

조유빈 솔루션즈 아키텍트는 인프라 아키텍트 / 데이터 분석 파이프라인 구축 경험을 기반으로, 스마트 비즈니스를 위한 고객에게 클라우드 환경에서 효율적인 아키텍처를 구성하도록 지원하고 있습니다.