AWS Glue ETL - AWS 권장 가이드

AWS Glue ETL

AWS Glue ETL은 다양한 소스에서 데이터를 추출하고, 비즈니스 요구 사항에 맞게 이를 변환하여 선택한 대상으로 로드하는 것을 지원합니다. 이 서비스는 Apache Spark 엔진을 사용하여 워커 노드 전체에 빅 데이터 워크로드를 분산하여 인 메모리 프로세싱으로 더 빠르게 변환할 수 있도록 합니다.

AWS Glue는 Amazon Simple Storage Service(Amazon S3), Amazon DynamoDB, Amazon Relational Database Service(Amazon RDS) 등 다양한 데이터 소스를 지원합니다. 지원되는 데이터 소스에 대해 자세히 알아보려면 AWS Glue의 ETL 연결 유형 및 옵션을 참조하세요.

AWS Glue에서 작성

AWS Glue는 사용자 경험과 사용 사례에 따라 ETL 작업을 작성할 수 있는 다양한 방법을 제공합니다.

  • Python 쉘 작업은 Python으로 작성된 기본 ETL 스크립트를 실행하도록 설계되었습니다. 이러한 작업은 단일 머신에서 실행되며 중소 규모의 데이터세트에 더 적합합니다.

  • Apache Spark 작업은 Python 또는 Scala로 작성할 수 있습니다. 이러한 작업은 Spark를 사용하여 여러 워커 노드에 걸쳐 워크로드를 수평적으로 규모를 조정하므로 대규모 데이터세트와 복잡한 변환을 처리할 수 있습니다.

  • AWS Glue 스트리밍 ETL은 Apache Spark Structured Streaming 엔진을 사용하여 스트리밍 데이터를 마이크로 배치 작업으로 변환하며, 정확히 한 번 처리되는 의미론을 제공합니다. AWS Glue 스트리밍 작업은 Python 또는 Scala로 작성할 수 있습니다.

  • AWS Glue Studio는 Apache Spark 프로그래밍을 처음 접하는 개발자도 Spark 기반 ETL을 쉽게 사용할 수 있는 상자와 화살표 스타일의 시각적 인터페이스입니다.

데이터 처리 단위

AWS Glue는 데이터 처리 단위(DPU)를 사용하여 ETL 작업에 할당된 컴퓨팅 리소스를 측정하고 비용을 계산합니다. 각 DPU는 vCPU 4개와 16GB 메모리와 동일합니다. 작업의 복잡성과 데이터 볼륨에 따라 DPU를 AWS Glue 작업에 할당해야 합니다. 적절한 양의 DPU를 할당하면 성능 요구 사항과 비용 제약 사이에서 균형을 맞출 수 있습니다.

AWS Glue는 다양한 워크로드에 최적화된 여러 작업자 유형을 제공합니다.

  • G.1X 또는 G.2X(대부분의 데이터 변환, 조인, 쿼리에 적합)

  • G.4X 또는 G.8X(더 까다로운 데이터 변환, 집계, 조인, 쿼리에 적합)

  • G.025X(소량 및 산발적인 데이터 스트림에 적합)

  • 표준(AWS Glue 버전 1.0 이전 버전용, AWS Glue 이후 버전에는 권장되지 않음)

Python 쉘 사용

Python 쉘 작업의 경우 1DPU를 사용하여 16GB 메모리를 사용하거나 0.0625DPU를 사용하여 1GB 메모리를 사용할 수 있습니다. Python 쉘은 중소 규모의 데이터세트(최대 약 10GB)를 사용하는 기본 ETL 작업에 사용됩니다.

작업자 유형 비교

다음 표는 Apache Spark 환경을 사용하는 배치, 스트리밍 및 AWS Glue Studio ETL 워크로드에 대한 다양한 AWS Glue 작업자 유형을 보여줍니다.

G.1X

G.2X

G.4X

G.8X

G.025X

표준

vCPU

4

8

16

32

2

4

메모리

16 GB

32GB

64GB

128GB

4GB

16 GB

디스크 공간

64GB

128GB

256GB

512GB

64GB

50GB

작업자당 실행기

1

1

1

1

2

DPU

1

2

4

8

0.25

1

AWS Glue 버전 2.0 이상에서는 표준 작업자 유형을 사용하지 않는 것이 좋습니다. G.025X 작업자 유형은 AWS Glue 버전 3.0 이상을 사용하는 스트리밍 작업에만 사용할 수 있습니다.