AWS Glue 완전 정리 (DEA-C01 시험 핵심)
들어가며
DEA-C01 시험의 Domain 1: Data Ingestion and Transformation (34%) 영역에서 가장 비중 있게 다뤄지는 서비스가 바로 AWS Glue입니다.
AWS Glue는 완전 관리형 서버리스 ETL 서비스로, 데이터 추출, 변환, 적재 전 과정을 자동화합니다. 시험에서는 Glue의 다양한 구성 요소와 고급 기능들을 상황에 맞게 선택하는 문제가 자주 출제됩니다.
이 글에서는 시험 대비 관점에서 핵심 내용을 정리해보겠습니다.
---
AWS Glue란?
AWS Glue의 기본 개념부터 정리합니다.
| 항목 | 내용 | | --- | --- | | 정의 | 완전 관리형 서버리스 ETL 서비스 | | 처리 엔진 | Apache Spark (분산 컴퓨팅) | | ETL 코드 | Python(PySpark) 또는 Scala 자동 생성 및 커스터마이징 | | 인프라 관리 | 불필요 (서버리스) | | 과금 단위 | DPU(Data Processing Unit) 기준 | | 주요 연동 | S3, Redshift, RDS, Athena, EMR |
시험에서는 "서버리스 ETL이 필요하다"라는 시나리오가 나오면 AWS Glue를 선택하면 됩니다.
---
DPU (Data Processing Unit)
AWS Glue의 컴퓨팅 자원 단위입니다.
| 항목 | 내용 | | --- | --- | | 1 DPU | 4 vCPU + 16 GB 메모리 | | 과금 | DPU 수 x 처리 시간 | | 스케일링 | 자동 조정 (수동 지정도 가능) | | 모니터링 | AWS Glue 콘솔 Job Run Monitoring 섹션에서 적정 DPU 확인 |
DPU가 부족하면 파라미터를 높여 DPU 수를 증가시킬 수 있습니다.
---
DynamicFrames와 Spark DataFrame의 차이
Glue에서 데이터를 처리할 때 사용하는 두 가지 프레임워크를 비교합니다.
| 비교 항목 | Spark DataFrame | AWS Glue DynamicFrames | | --- | --- | --- | | 스키마 | 사전 정의 필요 | 자동 처리 (사전 정의 불필요) | | 반구조화 데이터 | 처리 어려움 | JSON, XML, CSV 등 자동 처리 | | 중첩 구조 | 수동 플래튼 필요 | 자동으로 중첩 구조 및 배열 처리 | | 활용 | 구조화된 데이터 | 스키마가 유동적인 데이터 레이크 |
시험에서는 스키마가 자주 변하거나 사전에 알 수 없는 데이터를 처리해야 할 때 DynamicFrames가 정답으로 자주 등장합니다.
---
Job Bookmarks를 통한 중복 처리 방지
Job Bookmarks는 ETL 작업 간 처리 상태를 추적하는 기능입니다.
주요 특징은 다음과 같습니다.
이미 처리된 데이터는 재처리하지 않음 (증분 로드) 대용량 데이터셋에서 불필요한 재처리 방지로 비용과 시간 절감 처리된 데이터의 체크포인트를 저장하여 다음 실행 시 참조
시험에서 "새로운 데이터만 처리하고 싶다"는 시나리오가 나오면 Job Bookmarks가 정답입니다.
---
AWS Glue Crawlers
Crawlers는 데이터 소스를 자동 스캔하여 스키마를 탐색하고 Glue Data Catalog를 최신 상태로 유지합니다.
| 기능 | 내용 | | --- | --- | | 스키마 자동 탐색 | S3, RDS 등 데이터 소스 스캔 후 테이블 자동 생성 및 업데이트 | | 지원 포맷 | CSV, JSON, Parquet, ORC 등 | | 파티션 감지 | 자동으로 파티션 탐지하여 쿼리 성능 향상 | | 스케줄링 | 정기 실행으로 Data Catalog 최신 유지 | | 접근 제어 | IAM 정책으로 메타데이터 조작 세밀하게 제어 |
여기서 중요한 시험 포인트는 접근 제어의 두 레이어 구분입니다.
이 두 레이어는 별도로 관리됩니다.
---
Schema Registry를 통한 스트리밍 데이터 스키마 관리
스트리밍 데이터(Kinesis, Kafka)에서 스키마 일관성을 보장하는 기능입니다.
주요 특징은 다음과 같습니다.
스키마 버전 관리 (Schema Version Control) 프로듀서가 신규 레코드를 스트림에 추가할 때 스키마 유효성 검증 스키마 불일치 시 레코드 거부 또는 변환 KPL(Kinesis Producer Library), KCL(Kinesis Client Library)과 통합
시험에서 "Kinesis/Kafka 스트리밍 데이터의 스키마 일관성 보장"이라는 시나리오가 나오면 Glue Schema Registry가 정답입니다.
---
주요 변환 기능
Glue에서 제공하는 핵심 변환 기능들입니다.
| 기능 | 설명 | | --- | --- | | ResolveChoice | 컬럼에 혼재하는 데이터 타입 처리 (예: 같은 컬럼에 문자열+정수 혼재) | | FindMatches ML | 공통 키 없이도 같은 엔티티 레코드 식별 (머신러닝 기반) | | Pivot | 행을 컬럼으로 변환 (분석 쿼리 최적화) | | CTAS | SELECT 결과로 새 테이블 생성 (포맷 변환, 요약 테이블) |
시험에서 "중복 레코드를 ML로 탐지하고 통합"하는 시나리오가 나오면 FindMatches ML Transform이 정답입니다.
---
실행 환경별 비교
Glue는 작업 유형에 따라 다양한 실행 환경을 제공합니다.
| 환경 | 특징 | 적합한 작업 | | --- | --- | --- | | Spark | 분산 컴퓨팅, 대규모 처리 | 대용량 ETL, 복잡한 변환 | | Python Shell | 경량 스크립트 실행 | 간단한 변환, AWS 서비스 연동 | | Ray | Python 병렬 처리 | ML/AI 워크로드, Python 스케일 아웃 | | Streaming ETL | 실시간 스트림 처리 | Kinesis 및 Kafka 실시간 데이터 처리 |
시험에서 자주 등장하는 선택 포인트는 다음과 같습니다.
가벼운 Python ETL → Python Shell ML 워크로드 Python 스케일 아웃 → Ray
---
성능 최적화 전략
ETL 작업의 성능을 개선하기 위한 주요 전략입니다.
| 전략 | 설명 | | --- | --- | | 데이터 파티셔닝 | 날짜, 지역 등으로 파티션 분리하여 쿼리 성능 향상 | | 파티션 인덱스 | GetPartitions API가 일치하는 파티션만 직접 조회하여 대용량 파티션 성능 개선 | | Broadcast Join | 작은 데이터셋을 모든 노드에 복사하여 대용량 조인 시 셔플링 최소화 | | 소형 파일 통합 | 다수의 소형 파일은 Spark 성능 저하 원인이므로 대형 파일로 통합 | | 서버사이드 필터링 | DynamicFrames 생성 시 파티션 프레디케이트로 데이터 미리 필터링 |
---
AWS Glue DataBrew
DataBrew는 코드 없이 데이터를 정제하고 정규화할 수 있는 시각적 데이터 준비 도구입니다.
| 기능 | 내용 | | --- | --- | | 코드 없는 변환 | 250개 이상의 사전 정의 변환 (드래그 앤 드롭) | | 데이터 프로파일링 | 컬럼별 통계, 결측값, 중복, 이상치 자동 탐지 | | 커스텀 데이터 품질 규칙 | 비즈니스 요건에 맞는 유효성 검증 규칙 정의 | | PII 탐지 및 마스킹 | ML 기반으로 개인정보 탐지 후 마스킹 및 익명화 | | 서버리스 | 인프라 관리 불필요 |
시험에서 자주 등장하는 시나리오는 다음과 같습니다.
코딩 없이 데이터 정제와 프로파일링이 필요하다 → AWS Glue DataBrew 개인정보(PII) 탐지와 마스킹이 필요하다 → DataBrew 또는 Glue Sensitive Data Detection
---