1. AWS Glue란?
AWS Glue는 AWS에서 제공하는 서버리스(서버 관리 불필요) 데이터 통합 서비스.
데이터를 탐색(Discover) → 준비(Prepare) → 변환(Transform) → 적재(Load) 하는 과정을 자동화하여 ETL(Extract, Transform, Load) 작업을 쉽게 할 수 있도록 지원한다.
주요 특징:
- 서버리스: 인프라 관리 필요 없음
- 자동화: 데이터 카탈로그 생성 및 스키마 추론
- 유연성: Spark 기반(분산 처리 가능)
- 통합: S3, RDS, Redshift, DynamoDB 등과 원활하게 연동
즉, Glue는 데이터 엔지니어가 복잡한 ETL 파이프라인을 쉽고 빠르게 구성하도록 돕는 서비스.
2. 아키텍처 개념도
┌───────────────────┐
│ 데이터 소스 │ (S3, RDS, DynamoDB 등)
└─────────┬─────────┘
│
▼
┌───────────────┐
│ Glue Crawler │ → 메타데이터 추출 (스키마 자동 생성)
└───────────────┘
│
▼
┌───────────────┐
│ Glue Catalog │ → 데이터베이스/테이블 메타데이터 저장
└───────────────┘
│
▼
┌───────────────┐
│ Glue Job │ → ETL 코드(PySpark) 실행
└───────────────┘
│
▼
┌───────────────────┐
│ 대상 저장소 │ (S3, Redshift, RDS 등)
└───────────────────┘
3. 주요 컴포넌트
- Crawler
- 데이터 소스를 자동으로 스캔해 스키마를 추론하고 Glue Catalog에 테이블 생성.
- Data Catalog
- Glue의 핵심 메타데이터 저장소.
- 테이블, 스키마, 위치 정보를 저장. Athena, Redshift Spectrum 등에서도 활용 가능.
- Job
- ETL 실행 단위.
- PySpark 기반 코드 자동 생성 가능.
- Trigger
- 스케줄링 혹은 이벤트 기반 실행을 지원.
4. Glue Notebook 실행 예제
S3 -> 변환 -> S3 파이프라인의 예제.
from awsglue.context import GlueContext
from pyspark.context import SparkContext
# GlueContext 생성
sc = SparkContext.getOrCreate()
glueContext = GlueContext(sc)
spark = glueContext.spark_session
# S3에서 데이터 읽기
datasource = glueContext.create_dynamic_frame.from_options(
connection_type="s3",
connection_options={"paths": ["s3://my-bucket/input/"]},
format="csv",
format_options={"withHeader": True}
)
# 변환 예시: 컬럼 매핑
transformed = datasource.apply_mapping([
("id", "string", "user_id", "string"),
("name", "string", "user_name", "string"),
("age", "string", "user_age", "int")
])
# 결과 확인 (Notebook은 display() 가능)
transformed.show()
# 변환된 데이터를 다시 S3에 저장
glueContext.write_dynamic_frame.from_options(
frame=transformed,
connection_type="s3",
connection_options={"path": "s3://my-bucket/output/"},
format="parquet"
)
5. 실무 활용 시나리오
- 데이터 레이크 구축: S3에 저장된 다양한 원천 데이터를 카탈로그화 후 Athena/Redshift로 분석
- ETL 파이프라인 자동화: 매일 크롤링된 로그 데이터를 정제하여 S3/Redshift에 적재
- 서버리스 데이터 엔지니어링: Spark 클러스터 관리 부담 없이 대규모 데이터 처리
반응형
'AWS' 카테고리의 다른 글
| AWS 네트워크 인프라 구축 정리 (0) | 2025.09.09 |
|---|---|
| AWS Redshift란? (0) | 2025.09.08 |