AWS Glue에 작업 추가 - AWS Glue

AWS Glue에 작업 추가

AWS Glue 작업은 소스 데이터에 연결하여 처리한 다음 데이터 대상에 작성하는 스크립트를 캡슐화합니다. 일반적으로 작업은 추출, 변환 및 로드(ETL) 스크립트를 실행합니다. 작업은 범용 Python 스크립트(Python 셸 작업)를 실행할 수도 있습니다. AWS Glue 트리거는 일정 또는 이벤트에 따라 또는 필요에 따라 작업을 시작할 수 있습니다. 작업 실행을 모니터링하여 완료 상태, 지속 시간, 시작 시간 같은 실행 시간 지표를 이해할 수 있습니다.

AWS Glue에서 생성하는 스크립트를 사용하거나 직접 제공할 수 있습니다. 소스 스키마와 대상 위치 또는 스키마가 있을 경우 AWS Glue 코드 생성기는 Apache Spark API(PySpark) 스크립트를 자동적으로 생성할 수 있습니다. 이 스크립트를 시작 포인트로 사용할 수 있고 목적에 부합하기 위해 편집할 수도 있습니다.

AWS Glue는 JSON, CSV, ORC(Optimized Row Columnar), Apache Parquet 및 Apache Avro를 포함해 몇 가지 데이터 포맷으로 출력 파일을 작성할 수 있습니다. 몇 가지 데이터 포맷의 경우, 일반 압축 포맷이 작성될 수 있습니다.

AWS Glue의 작업은 Spark, 스트리밍 ETL, Python 쉘의 세 가지 유형이 있습니다.

  • Spark 작업은 AWS Glue에서 관리하는 Apache Spark 환경에서 실행됩니다. 데이터를 배치로 처리합니다.

  • 스트리밍 ETL 작업은 데이터 스트림에 대해 ETL을 수행한다는 점을 제외하고 Spark 작업과 유사합니다. 이는 Apache Spark Structured Streaming 프레임워크를 사용합니다. 스트리밍 ETL 작업에 일부 Spark 작업 기능을 사용할 수 없습니다.

  • Python 셸 작업은 Python 스크립트를 셸로 실행하고 사용 중인 AWS Glue 버전에 따라 다른 Python 버전을 지원합니다. 이러한 작업을 사용하여 Apache Spark 환경이 필요하지 않은 작업을 예약하고 실행할 수 있습니다.

Spark 작업에 대한 작업 속성 정의

작업을 AWS Glue 콘솔에서 정의할 경우 AWS Glue 런타임 환경을 제어하기 위한 속성 값을 제공합니다.

다음 목록에서는 Spark 작업의 속성을 설명합니다. Python 셸 작업의 속성은 Python 셸 작업에 대한 작업 속성 정의 단원을 참조하십시오. 스트리밍 ETL 작업의 속성은 스트리밍 ETL 작업에 대한 작업 속성 정의 단원을 참조하십시오.

속성은 AWS Glue 콘솔의 [작업 추가(Add job)] 마법사에 나타나는 순서대로 나열됩니다.

이름

최대 255자 길이의 UTF-8 문자열을 제공합니다.

IAM 역할

작업을 실행하고 데이터 스토어에 액세스하는 데 사용되는 리소스에 대한 권한 부여용 IAM 역할을 지정합니다. AWS Glue 작업을 실행하는 권한에 대한 자세한 내용은 AWS Glue 리소스에 대한 액세스 권한 관리 단원을 참조하십시오.

유형

실행할 작업 환경 유형을 지정합니다.

  • Spark를 선택하여 glueetl 작업 명령으로 Apache Spark ETL 스크립트를 실행합니다.

  • Spark Streaming을 선택하여 gluestreaming 작업 명령으로 Apache Spark 스트리밍 ETL 스크립트를 실행합니다. 자세한 정보는 AWS Glue에서 스트리밍 ETL 작업을 참조하십시오.

  • Python 셸을 선택하여 pythonshell 작업 명령으로 Python 스크립트를 실행합니다. 자세한 정보는 AWS Glue에서 Python 셸 작업을 참조하십시오.

AWS Glue 버전

AWS Glue 버전이 다음 표에 지정된 대로 작업에 사용할 수 있는 Apache Spark 및 Python의 버전을 결정합니다.

AWS Glue 버전 지원되는 Spark 및 Python 버전
0.9
  • Spark 2.2.1

  • Python 2.7

1.0
  • Spark 2.4.3

  • Python 2.7

  • Python 3.6

2.0
  • Spark 2.4.3

  • Python 3.7

3.0
  • Spark 3.1.1

  • Python 3.7

AWS Glue 버전 지정 없이 생성된 작업은 AWS Glue 2.0로 기본 지정됩니다.

이 작업이 실행됩니다(생성되거나 사용자 정의된 스크립트).

ETL 스크립트의 코드는 작업 논리를 정의합니다. 이 스크립트는 Python 또는 Scala에 코딩될 수 있습니다. 작업이 실행하는 스크립트가 AWS Glue가 생성했는지 여러분이 제공했는지 선택할 수 있습니다. Amazon Simple Storage Service(Amazon S3)에서 스크립트 이름과 위치를 제공합니다. 경로의 스크립트 디렉터리와 동일한 이름의 파일이 없다는 것을 확인합니다. 스크립트 작성에 대한 자세한 내용은 AWS Glue 콘솔에서 Spark 스크립트 편집 단원을 참조하십시오.

Scala 클래스 이름

Scala로 코딩된 스크립트의 경우, 클래스 이름을 제공해야 합니다. AWS Glue가 생성한 스크립트의 기본 클래스 이름은 GlueApp입니다.

임시 디렉터리

AWS Glue가 스크립트를 실행할 때 임시 중간 결과가 작성된 Amazon S3의 작업 디렉터리의 위치를 제공합니다. 경로의 임시 디렉터리와 동일한 이름의 파일이 없다는 것을 확인합니다. 이 디렉터리는 AWS Glue가 Amazon Redshift에 읽고 쓸 때 및 일부 AWS Glue 변환에 사용됩니다.

참고

리전에 버킷이 아직 없는 경우 AWS Glue에서 작업에 대한 임시 버킷을 생성합니다. 이 버킷은 퍼블릭 액세스를 허용할 수 있습니다. Amazon S3에서 버킷을 수정하여 퍼블릭 액세스 차단을 설정하거나 나중에 해당 리전의 모든 작업이 완료된 후 버킷을 삭제할 수 있습니다.

참고

소스 및 대상은 작업의 콘솔 세부 정보 탭 아래에 나와 있지 않습니다. 소스 및 대상 세부 정보를 보려면 스크립트를 검토하십시오.

고급 속성
작업 북마크

작업 실행 시 AWS Glue가 상태 정보를 진행하는 방법을 지정합니다. 이전에 처리된 데이터를 기억하거나, 상태 정보를 업데이트하거나, 상태 정보를 무시할 수 있습니다. 자세한 정보는 처리된 데이터를 작업 북마크로 추적을 참조하십시오.

모니터링 옵션
작업 지표

이 작업이 실행될 때 Amazon CloudWatch 지표 생성을 설정하거나 해제합니다. 프로파일링 데이터를 보려면 이 옵션을 활성화해야 합니다. 지표를 설정하고 시각화하는 방법에 대한 자세한 내용은 작업 모니터링 및 디버깅 섹션을 참조하세요.

연속 로깅

Amazon CloudWatch에 대한 연속 로깅을 설정합니다. 이 옵션이 활성화되지 않으면 작업이 완료된 후에만 로그를 사용할 수 있습니다. 자세한 정보는 AWS Glue 작업에 대한 지속 로깅을 참조하십시오.

Spark UI

이 작업 모니터링에 Spark UI 사용을 설정합니다. 자세한 정보는 AWS Glue 작업을 위한 Apache Spark 웹 UI 사용 설정을 참조하십시오.

태그

태그 키와 선택 사항인 태그 값으로 작업에 태그를 지정합니다. 생성된 태그 키는 읽기 전용입니다. 일부 리소스에서 태그를 이용하면 리소스를 정리하고 식별하는 데 도움이 됩니다. 자세한 정보는 AWS Glue의 AWS 태그을 참조하십시오.

보안 구성, 스크립트 라이브러리 및 작업 파라미터
보안 구성

목록에서 보안 구성을 선택합니다. 보안 구성은 암호화 없음, AWS KMS 관리형 키(SSE-KMS)를 사용한 서버 측 암호화, Amazon S3 관리형 암호화 키(SSE-S3) 등 Amazon S3 대상의 데이터 암호화 방법을 지정합니다.

서버 측 암호화

이 옵션을 선택할 경우, ETL 작업을 Amazon S3에 작성하면 SSE-S3 암호화를 사용하여 데이터는 암호화합니다. Amazon S3 임시 디렉터리에 쓴 모든 데이터와 Amazon S3 데이터 대상 모두 암호화됩니다. 이 옵션은 작업 파라미터로 전달됩니다. 자세한 내용은 Amazon Simple Storage Service 사용 설명서Amazon S3 관리형 암호화 키(SSE-S3)로 서버 측 암호화를 사용하여 데이터 보호를 참조하세요.

중요

보안 구성이 지정된 경우 이 옵션은 무시됩니다.

Python 라이브러리 경로, 종속 jar 경로 및 참조된 파일 경로

스크립트에 필요한 경우 이러한 옵션을 지정합니다. 작업을 정의할 때 이러한 옵션에 대해 쉼표로 구분된 Amazon S3 경로를 정의할 수 있습니다. 작업을 실행할 때 이 경로를 무시할 수 있습니다. 자세한 정보는 사용자 지정 스크립트 제공을 참조하십시오.

작업자 유형

다음 작업자 유형을 사용할 수 있습니다.

  • Standard – 이 유형을 선택할 경우 [최대 용량(Maximum capacity)] 값도 제공합니다. 최대 용량은 이 작업이 실행될 때 할당할 수 있는 AWS Glue 데이터 처리 단위(DPU)의 수입니다. DPU는 4 vCPU의 컴퓨팅 파워와 16GB 메모리로 구성된 프로세싱 파워의 상대적 측정값입니다. Standard 작업자 유형에는 50GB 디스크 하나와 실행기 2개가 있습니다.

  • G.1X – 이 유형을 선택할 경우 [작업자 수(Number of workers)] 값도 제공합니다. 각 작업자는 1DPU(4vCPU, 16GB 메모리, 64GB 디스크)에 매핑되고, 작업자당 실행기 1개를 제공합니다. 메모리 집약적인 작업의 경우 이 작업자 유형을 사용하는 것이 좋습니다. AWS Glue 버전 2.0 이상 작업의 기본 [작업자 유형(Worker type)]입니다.

  • G.2X – 이 유형을 선택할 경우 [작업자 수(Number of workers)] 값도 제공합니다. 각 작업자는 2DPU(8vCPU, 32GB 메모리, 128GB 디스크)에 매핑되고, 작업자당 실행기 1개를 제공합니다. 메모리 집약적인 작업과 기계 학습 변환을 실행하는 작업의 경우 이 작업자 유형을 사용하는 것이 좋습니다.

  • G.025X – 이 유형을 선택할 경우 [작업자 수(Number of workers)] 값도 제공합니다. 각 작업자는 0.25 DPU(vCPU 2개, 4GB 메모리, 64GB 디스크)에 매핑되고, 작업자당 실행기 1개를 제공합니다. 볼륨이 낮은 스트리밍 작업에 이 작업자 유형을 사용하는 것이 좋습니다. 이 작업자 유형은 AWS Glue 버전 3.0 스트리밍 작업에만 사용할 수 있습니다.

ETL 작업을 실행하는 데 사용된 DPU의 개수에 따라 시간당 비용이 부과됩니다. 자세한 내용은 AWS Glue 요금 페이지를 참조하십시오.

AWS Glue 버전 1.0 이전 작업의 경우 콘솔을 사용하여 작업을 구성하고 [작업자 유형(Worker type)]을 [표준(Standard)]로 지정하면, [최대 용량(Maximum capacity)]이 설정되고 [작업자 수(Number of workers)]는 [최대 용량(Maximum capacity)] - 1이 됩니다. AWS Command Line Interface(AWS CLI) 또는 AWS SDK를 사용하는 경우, [최대 용량(Max capacity)] 파라미터를 지정하거나, [작업자 유형(Worker type)]과 [작업자 수(Number of workers)]를 모두 지정할 수 있습니다.

AWS Glue 버전 2.0 이상 작업의 경우 [최대 용량(Maximum capacity)]을 대신 지정할 수 없습니다. 대신 [작업자 유형(Worker type)] 및 [작업자 수(Number of workers)]를 지정해야 합니다. 자세한 내용은 작업을 참조하십시오.

작업자 수

G.1X 및 G.2X 작업자 유형의 경우, 작업이 실행될 때 할당되는 작업자 수를 지정해야 합니다.

실행 클래스

AWS Studio 또는 API를 사용하여 작업을 구성하면 표준 또는 유연한 작업 실행 클래스를 지정할 수 있습니다. 작업의 우선순위와 시간 민감도는 다를 수 있습니다. 표준 실행 클래스는 빠른 작업 시작 및 전용 리소스가 필요한 시간에 민감한 워크로드에 적합합니다.

유연한 실행 클래스는 사전 프로덕션 작업, 테스트 및 일회성 데이터 로드와 같은 긴급하지 않은 작업에 적합합니다. 유연한 작업 실행은 AWS Glue 버전 3.0 이상 및 G.1X 또는 G.2X 작업자 유형을 사용하는 작업에 지원됩니다.

유연한 작업 실행은 한 번에 실행하는 작업자 수를 기준으로 요금이 청구됩니다. 유연한 작업 실행에 대한 작업자 수를 추가하거나 제거할 수 있습니다. Max Capacity*Execution Time의 간단한 계산으로 청구하는 대신 각 작업자는 작업 실행 중에 실행된 시간으로 요금이 청구됩니다. 청구 금액은 (Number of DPUs per worker*time each worker ran)의 합입니다.

자세한 내용은 AWS Studio 또는 작업작업 실행의 도움말 패널을 참조하십시오.

최대 용량

AWS Glue 버전 1.0 이전 적업의 경우 표준 작업자 유형을 사용하여 이 작업을 실행할 때 할당할 수 있는 최대 AWS Glue 데이터 처리 장치(DPU) 수를 지정해야 합니다. ETL 작업을 실행하는 데 사용된 DPU의 개수에 따라 시간당 비용이 부과됩니다. 자세한 내용은 AWS Glue 요금 페이지를 참조하십시오.

정수를 2~100 사이에서 선택합니다. 기본값은 10입니다. 이 작업 유형에는 부분적인 DPU 할당을 사용할 수 없습니다.

AWS Glue 버전 2.0 이상 작업의 경우 [최대 용량(Maximum capacity)]을 대신 지정할 수 없습니다. 대신 [작업자 유형(Worker type)] 및 [작업자 수(Number of workers)]를 지정해야 합니다. 자세한 내용은 작업을 참조하십시오.

최대 동시성

이 작업에 허용된 최대 동시 실행 수를 설정합니다. 기본값은 1입니다. 이 임계값에 도달하면 오류가 반환됩니다. 지정할 수 있는 최대값은 서비스 제한에 따라 통제됩니다. 예를 들어, 새로운 인스턴스가 시작된 후에도 이전 작업이 여전히 실행되고 있다면 오류를 반환하여 동일한 작업의 두 개의 인스턴스를 동시에 실행하지 않도록 방지합니다.

작업 제한 시간

최대 실행 제한을 분으로 설정합니다. 배치 작업의 경우 기본값은 2,880분(48시간)입니다. 작업 실행 시간이 이 제한을 초과하면 작업 실행 상태가 TIMEOUT으로 변경됩니다.

무기한 실행되는 스트리밍 작업의 경우 값을 비워 둡니다(스트리밍 작업의 기본값).

지연 알림 임계값

지연 알림이 전송되기 전까지의 임계값(분)을 설정합니다. RUNNING, STARTING 또는 STOPPING 작업 실행이 예상 시간(분)을 초과할 때 알림을 전송하도록 이 임계값을 설정할 수 있습니다.

재시도 횟수

AWS Glue가 자동적으로 작업을 재시작하지 못하면 재시작하도록 시간 수를 0~10사이에서 지정합니다. 시간 제한에 도달한 작업은 다시 시작되지 않습니다.

작업 파라미터

이름이 지정된 파라미터로 스크립트에 전달되는 키-값 쌍의 집합입니다. 이러한 값은 스크립트가 실행될 때 사용되는 기본값이지만 트리거에서 또는 작업을 실행할 때 재정의할 수 있습니다. 키 이름 앞에 --를 붙여야 합니다(예: --myKey). AWS Command Line Interface를 사용할 때 맵으로 작업 파라미터를 전달합니다 .

예를 들어 AWS Glue에서 Python 파라미터 전달 및 액세스의 Python 파라미터를 참조하십시오.

재정의할 수 없는 작업 파라미터

트리거에서 또는 작업을 실행할 때 재정의할 수 없는 특수 작업 파라미터 집합입니다. 이러한 키 값 쌍은 이름이 지정된 파라미터로 스크립트에 전달됩니다. 이러한 값은 스크립트가 실행될 때 사용되며 트리거에서 또는 작업을 실행할 때 재정의할 수 없습니다. 키 이름 앞에 --를 붙여야 합니다(예: --myKey). getResolvedOptions()는 단일 맵에서 작업 파라미터와 재정의가 불가능한 작업 파라미터를 모두 반환합니다. 자세한 정보는 getResolvedOptions를 사용한 파라미터 액세스을 참조하십시오.

카탈로그 옵션
AWS Glue 데이터 카탈로그를 Hive 메타스토어로 사용

이를 선택하여 AWS Glue Data Catalog를 Hive 메타스토어로 사용합니다. 작업에 사용되는 IAM 역할에는 glue:CreateDatabase 권한이 있어야 합니다. "기본값"이라는 데이터베이스가 없는 경우에 Data Catalog에서 생성됩니다.

데이터 원본

Data Catalog 테이블을 선택합니다.

변형 유형

다음 중 하나를 선택합니다.

스키마 변경

생성된 스크립트에 ApplyMapping 변환을 추가합니다. 원본 데이터의 스키마를 변경하고 새 대상 데이터 집합을 생성할 수 있습니다.

일치하는 레코드 찾기

원본 데이터 내에서 일치하는 레코드를 찾는 데 사용할 기계 학습 변환을 선택할 수 있습니다.

대상

다음 중 하나를 수행하세요.

  • Amazon S3 경로 또는 JDBC 데이터 스토어를 지정하려면 [데이터 대상에서 테이블 생성(Create tables in your data target)]을 선택합니다.

  • 카탈로그 테이블을 지정하려면 데이터 카탈로그 내 테이블을 사용하고 데이터 대상을 업데이트를 선택합니다.

Amazon S3 대상 위치로는 출력을 쓸 디렉터리의 위치를 입력합니다. 경로에 대상 경로 디렉터리와 동일한 이름의 파일이 없다는 것을 확인합니다. JDBC 대상의 경우, 지정된 객체가 없으면 AWS Glue는 필요에 따라 스키마 객체를 만듭니다.

AWS Glue 콘솔을 사용하여 작업을 추가하는 방법에 대한 자세한 내용은 AWS Glue 콘솔 작업 관련 작업 단원을 참조하십시오.

Lake Formation 관리형 테이블에 액세스하는 작업에 대한 제한 사항

AWS Lake Formation에서 관리되는 테이블에서 읽거나 쓰는 작업을 생성하는 경우 다음 참고 사항과 제한 사항에 유의하세요.