AWS Schema Conversion Tool을 사용하여 SSIS 패키지를 AWS Glue Studio로 변환 - AWS Schema Conversion Tool

AWS Schema Conversion Tool을 사용하여 SSIS 패키지를 AWS Glue Studio로 변환

AWS SCT를 사용하여 Microsoft SQL Server Integration Services(SSIS) 패키지를 AWS Glue Studio로 변환할 수 있습니다.

SSIS 패키지에는 연결 관리자, 작업, 제어 흐름, 데이터 흐름, 파라미터, 이벤트 핸들러, 변수 등과 같이 특정 추출, 전환, 적재(ETL) 작업을 실행하는 데 필요한 구성 요소가 포함되어 있습니다. AWS SCT는 SSIS 패키지를 AWS Glue Studio와 호환 가능한 형식으로 변환합니다. 소스 데이터베이스를 AWS 클라우드로 마이그레이션한 후 이러한 변환된 AWS Glue Studio 작업을 실행하여 ETL 작업을 수행할 수 있습니다.

Microsoft SSIS 패키지를 AWS Glue Studio로 변환하려면 AWS SCT 버전 1.0.661 이상을 사용해야 합니다.

사전 조건

이 섹션에서는 SSIS 패키지를 AWS Glue로 변환하기 위한 필수 조건에 대해 알아봅니다. 이러한 작업에는 계정에 필요한 AWS 리소스를 생성하는 작업이 포함됩니다.

AWS Identity and Access Management(IAM)를 사용하면 AWS Glue Studio에서 사용하는 리소스에 액세스하는 데 필요한 정책과 역할을 정의할 수 있습니다. 자세한 내용은 AWS Glue Studio 사용자를 위한 IAM 권한 섹션을 참조하세요.

AWS SCT가 소스 스크립트를 AWS Glue Studio로 변환한 후 변환된 스크립트를 Amazon S3 버킷에 업로드합니다. 이 Amazon S3 버킷을 생성하고 AWS 서비스 프로필 설정에서 이를 선택해야 합니다. Amazon S3 버킷 생성에 대한 자세한 내용은 Amazon Simple Storage Service 사용 설명서에서 첫 번째 S3 버킷 생성을 참조하세요.

AWS Glue Studio가 데이터 스토어에 연결할 수 있도록 하려면 사용자 지정 커넥터와 연결을 생성합니다. 또한 AWS Secrets Manager에 데이터베이스 보안 인증 정보를 저장합니다.

사용자 지정 커넥터를 생성하려면
  1. 데이터 스토어의 JDBC 드라이버를 다운로드합니다. AWS SCT에서 사용하는 JDBC 드라이버에 대한 자세한 내용은 AWS Schema Conversion Tool용 JDBC 드라이버 설치 섹션을 참조하세요.

  2. 이 드라이버 파일을 Amazon S3 버킷에 업로드합니다. 자세한 내용은 Amazon Simple Storage Service 사용 설명서에서 버킷에 객체 업로드를 참조하세요.

  3. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/gluestudio/에서 AWS Glue Studio 콘솔을 엽니다.

  4. 커넥터를 선택한 다음 Create custom connector를 선택합니다.

  5. Connector S3 URL에서 Browse S3을 선택하고 Amazon S3 버킷에 업로드한 JDBC 드라이버 파일을 선택합니다.

  6. 커넥터를 나타내는 이름을 입력합니다. 예를 들면 SQLServer를(을) 입력합니다.

  7. 커넥터 유형에서 JDBC를 선택합니다.

  8. 클래스 이름에 JDBC 드라이버의 기본 클래스 이름을 입력합니다. SQL Server의 경우 com.microsoft.sqlserver.jdbc.SQLServerDriver를 입력합니다.

  9. JDBC URL base에 JDBC 기본 URL을 입력합니다. JDBC 기본 URL의 구문은 소스 데이터베이스 엔진에 따라 달라집니다. SQL Server의 경우 jdbc:sqlserver://$<host>:$<port>;databaseName=$<dbname>;user=$<username>;password=$<password> 형식을 사용합니다.

    <host>, <port>, <dbname>, <username><password>를 적절한 값으로 바꿔야 합니다.

  10. URL parameter delimiter에 세미콜론(;)을 입력합니다.

  11. [커넥터 생성(Create connector)]을 선택합니다.

AWS Secrets Manager에 데이터베이스 보안 인증 정보를 저장하려면
  1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/secretsmanager/에서 AWS Secrets Manager 콘솔을 엽니다.

  2. 새 보안 암호 저장을 선택합니다.

  3. 보안 암호 유형 선택(Choose secret type) 페이지에서 다음을 수행합니다.

    1. 보안 암호 유형에서 다른 유형의 보안 암호를 선택합니다.

    2. 키/값 페어host, port, dbname, usernamepassword 키를 입력합니다.

      그런 다음 이들 키의 값을 입력합니다.

  4. 보안 암호 구성 페이지에서 설명이 포함된 보안 암호 이름을 입력합니다. 예를 들면 SQL_Server_secret를(을) 입력합니다.

  5. 다음을 선택합니다. 그 다음, 교체 구성 페이지에서 다음을 다시 선택합니다.

  6. 검토 페이지에서 보안 암호 세부 정보를 검토한 후 저장을 선택합니다.

커넥터에 대한 연결을 생성하려면
  1. AWS Management 콘솔에 로그인하고 https://console.aws.amazon.com/gluestudio/에서 AWS Glue Studio 콘솔을 엽니다.

  2. 연결을 생성할 커넥터를 선택한 다음 연결 생성을 선택합니다.

  3. 연결 생성 페이지에서 연결을 설명하는 이름을 입력합니다. 예를 들면 SQL-Server-connection를(을) 입력합니다.

  4. AWS Secret에서, AWS Secrets Manager에서 생성한 보안 암호를 선택합니다.

  5. 네트워크 옵션을 구성한 다음 연결 생성을 선택합니다.

이제 사용자 지정 커넥터를 사용하여 AWS Glue Studio 작업을 생성할 수 있습니다. 자세한 내용은 AWS Glue Studio 작업 생성 섹션을 참조하세요.

AWS SCT 프로젝트에 SSIS 패키지 추가

단일 AWS SCT 프로젝트에 여러 SSIS 패키지를 추가할 수 있습니다.

AWS SCT 프로젝트에 SSIS 패키지를 추가하려면
  1. AWS SCT로 새 프로젝트를 생성하거나 기존 프로젝트를 엽니다. 자세한 내용은 AWS SCT에서 프로젝트 시작 및 관리 섹션을 참조하세요.

  2. 메뉴에서 소스 추가를 선택한 다음 SQL Server Integration Services를 선택합니다.

  3. 연결 이름에 SSIS 패키지의 이름을 입력합니다. AWS SCT는 왼쪽 패널의 트리에 이 이름을 표시합니다.

  4. SSIS packages folder에 소스 SSIS 패키지가 있는 폴더의 경로를 입력합니다.

  5. 메뉴에서 대상 추가를 선택하고 AWS Glue Studio를 선택합니다.

    AWS Glue Studio에 연결하기 위해 AWS SCT는 AWS 프로필을 사용합니다. 자세한 내용은 AWS Schema Conversion Tool에서 프로필 관리 섹션을 참조하세요.

  6. 소스 SSIS 패키지와 AWS Glue Studio 대상을 포함하는 매핑 규칙을 생성합니다. 자세한 내용은 AWS Schema Conversion Tool에서 데이터 유형 매핑 섹션을 참조하세요.

  7. AWS Glue Studio 콘솔에서 AWS Glue Studio 연결을 생성합니다. 자세한 내용은 커넥터에 대한 연결 생성을 참조하세요.

  8. 왼쪽 트리에서 Connection managers를 선택하고 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 연 다음 연결 구성을 선택합니다.

    AWS SCT에서 연결 구성 창이 표시됩니다.

  9. 각 소스 SSIS 연결에 대해 AWS Glue Studio 연결을 선택합니다.

AWS SCT를 사용하여 SSIS 패키지를 AWS Glue Studio로 변환

다음에서는 AWS SCT를 사용하여 SSIS 패키지를 AWS Glue Studio로 변환하는 방법을 알아봅니다.

SSIS 패키지를 AWS Glue Studio로 변환하려면
  1. AWS SCT 프로젝트에 SSIS 패키지를 추가합니다. 자세한 내용은 AWS SCT 프로젝트에 SSIS 패키지 추가 섹션을 참조하세요.

  2. 왼쪽 패널에서 ETLSSIS 노드를 확장합니다.

  3. 패키지를 선택하고 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 연 다음 Convert package를 선택합니다.

    AWS SCT는 선택한 SSIS 패키지를 JSON 파일로 변환합니다. 이러한 JSON 객체는 DAG(방향성 비순환 그래프)로 노드를 표시합니다 오른쪽 트리의 Package DAGs 노드에서 변환된 파일을 찾습니다.

  4. Package DAGs를 선택하고 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 연 다음 Save to Amazon S3을 선택합니다.

    이제 이러한 스크립트를 사용하여 AWS Glue Studio에서 작업을 생성할 수 있습니다.

변환된 코드를 사용하여 AWS Glue Studio 작업 생성

소스 SSIS 패키지를 변환한 후 변환된 JSON 파일을 사용하여 AWS Glue Studio 작업을 생성할 수 있습니다.

AWS Glue Studio 작업을 생성하려면
  1. 오른쪽 트리에서 Package DAGs를 선택하고 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 연 후 Configure AWS Glue Studio job을 선택합니다.

  2. (선택 사항) AWS Glue Studio에서 SSIS 함수를 에뮬레이션하는 확장 팩을 적용합니다.

  3. Configure AWS Glue Studio job 창이 열립니다.

    Basic job properties 섹션을 완료합니다.

    • 이름 – AWS Glue Studio 작업의 이름을 입력합니다.

    • 스크립트 파일 이름 - 작업 스크립트의 이름을 입력합니다.

    • 작업 파라미터 – 파라미터를 추가하고 값을 입력합니다.

    다음을 선택합니다.

  4. Advanced job properties 섹션을 완료합니다.

    • IAM 역할 - AWS Glue Studio에 권한을 부여하고 데이터 스토어에 액세스하는 데 사용되는 IAM 역할을 선택합니다.

    • Script file S3 path - 변환된 스크립트의 Amazon S3 경로를 입력합니다.

    • 임시 디렉터리 - 중간 결과를 위한 Amazon S3 임시 디렉터리 경로를 입력합니다. AWS Glue Studio는 이 디렉터리를 사용하여 Amazon Redshift를 읽거나 씁니다.

    • AWS SCT는 Python 라이브러리의 경로를 자동으로 생성합니다. Generated python library path에서 이 경로를 검토할 수 있습니다. 자동으로 생성된 이 경로는 편집할 수 없습니다. 추가 Python 라이브러리를 사용하려면 User python library path에 경로를 입력합니다.

    • User python library path - 추가 사용자 Python 라이브러리의 경로를 입력합니다. 쉼표로 Amazon S3 경로를 구분합니다.

    • 종속된 jar 경로 - 종속된 *.jar 파일의 경로를 입력합니다. 쉼표로 Amazon S3 경로를 구분합니다.

    • 참조된 파일 경로 - 스크립트에 필요한 추가 파일(예: 구성 파일)의 경로를 입력합니다. 쉼표로 Amazon S3 경로를 구분합니다.

    • 작업자 유형 - G.1X 또는 G.2X를 선택합니다.

      G.1X를 선택하면 각 작업자가 1 DPU(4 vCPU, 16GB 메모리, 64GB 디스크)에 매핑합니다.

      G.2X를 선택하면 각 작업자가 2 DPU(8 vCPU, 32GB 메모리, 128GB 디스크)에 매핑합니다.

    • Requested number of workers - 작업이 실행될 때 할당되는 작업자 수를 입력합니다.

    • 최대 동시성 - 이 작업에 허용되는 최대 동시 실행 수를 입력합니다. 기본값은 1입니다. 이 임계값에 도달하면 AWS Glue에서 오류가 반환됩니다.

    • 작업 제한 시간(분) - 런어웨이 작업을 방지하기 위해 ETL 작업에 대한 제한 시간 값을 입력합니다. 배치 작업의 경우 기본값은 2,880분(48시간)입니다. 작업이 이 제한을 초과하면 작업 실행 상태가 TIMEOUT으로 변경됩니다.

    • Delay 알림 임계값(분) - AWS SCT에서 지연 알림을 보내기 전의 임계값(분)을 입력합니다.

    • 재시도 횟수 - 작업이 실패할 경우 AWS Glue에서 자동으로 작업을 재시작할 횟수(0~10)를 입력합니다. 제한 시간에 도달한 작업은 재시작되지 않습니다. 기본값은 0입니다.

    마침을 클릭합니다.

    AWS Glue Studio가 선택된 AWS SCT 작업을 구성합니다.

  5. 오른쪽 트리의 ETL jobs에서 구성된 작업을 찾을 수 있습니다. 구성된 작업을 선택하고 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 연 후 Create AWS Glue Studio job을 선택합니다.

  6. Apply status를 선택하고 작업의 상태 값이 성공인지 확인합니다.

  7. AWS Glue Studio 콘솔을 열고 새로 고침을 선택한 다음 작업을 선택합니다. 그런 다음 실행(Run)을 선택합니다.

AWS SCT를 사용하여 SSIS 패키지에 대한 평가 보고서 생성

ETL 마이그레이션 평가 보고서는 SSIS 패키지를 AWS Glue Studio와 호환 가능한 형식으로 변환하는 방법에 대한 정보를 제공합니다. 평가 보고서에는 SSIS 패키지의 구성 요소에 대한 작업 항목이 포함되어 있습니다. 이러한 작업 항목은 AWS SCT가 자동으로 변환할 수 없는 구성 요소를 보여줍니다.

ETL 마이그레이션 평가 보고서를 생성하려면
  1. 왼쪽 패널의 ETL에서 SSIS 노드를 확장합니다.

  2. 패키지를 선택하고 컨텍스트(마우스 오른쪽 버튼 클릭) 메뉴를 연 다음 보고서 생성을 선택합니다.

  3. 요약 탭을 검토합니다. 여기에서 AWS SCT는 ETL 마이그레이션 평가 보고서의 핵심 요약 정보를 표시합니다. 여기에는 SSIS 패키지의 모든 구성 요소에 대한 변환 결과가 포함됩니다.

  4. (선택 사항) ETL 마이그레이션 평가 보고서의 로컬 사본을 PDF 파일 또는 쉼표로 구분된 값(CSV) 파일로 저장합니다.

    • ETL 마이그레이션 평가 보고서를 PDF 파일로 저장하려면 오른쪽 상단에서 Save to PDF를 선택합니다.

      PDF 파일에는 스크립트 변환에 대한 요약 정보, 작업 항목 및 권장 사항이 포함됩니다.

    • ETL 마이그레이션 평가 보고서를 CSV 파일로 저장하려면 오른쪽 상단에서 Save to CSV를 선택합니다.

      AWS SCT는 세 개의 CSV 파일을 생성합니다. 이러한 파일에는 스크립트 변환에 필요한 작업 항목, 권장 작업 및 예상 수작업의 복잡성 등이 포함됩니다.

  5. 작업 항목 탭을 선택합니다. 이 탭에는 AWS Glue Studio로의 수동 변환이 필요한 항목 목록이 포함되어 있습니다. 목록에서 작업 항목을 선택하면 AWS SCT가 소스 SSIS 패키지에서 해당 작업 항목이 적용되는 항목을 강조 표시합니다.

AWS SCT가 AWS Glue Studio로 변환할 수 있는 SSIS 구성 요소

AWS SCT를 사용하여 SSIS 데이터 흐름 구성 요소 및 파라미터를 AWS Glue Studio로 변환할 수 있습니다.

지원되는 데이터 흐름 구성 요소는 다음과 같습니다.

  • ADO NET Destination

  • ADO NET Source

  • Aggregate

  • 문자 맵

  • 조건부 분할

  • 열 복사

  • 데이터 변환

  • 파생된 영

  • 조회

  • 병합

  • 병합 조인

  • 멀티캐스트

  • ODBCDestination

  • ODBCSource

  • OLEDBDestination

  • OLEDBSource

  • 행 수

  • 정렬

  • SQL Server Destination

  • Union All

AWS SCT가 더 많은 SSIS 구성 요소를 AWS Glue로 변환할 수 있습니다. 자세한 내용은 AWS SCT가 AWS Glue로 변환할 수 있는 SSIS 구성 요소 섹션을 참조하세요.