1. AWS Glue vs Airflow ?
RDS DB를 클라우드 DW에 이관하려고 한다. 어떤게 더 적합할까?
(1) 특성별로 비교
| 항목 | AWS Glue | Airflow |
| 주요 역할 | ETL 수행 도구 (Extract–Transform–Load) | 워크플로우 오케스트레이션 도구 |
| ETL 수행 여부 | 직접 수행 (Spark 기반) | Python 등 외부 코드 통해 수행 |
| 기술 기반 | Serverless Spark + Python Shell | Python 기반 DAG (Directed Acyclic Graph) |
| 주요 기능 | 데이터 추출, 정제, 변환, 적재, 크롤러, Job 관리 | DAG 기반 작업 스케줄링, 재시도, 병렬처리, 조건 분기 |
| 사용 편의성 | 콘솔 UI에서 GUI 또는 코딩 가능 | Python 코드 기반, 셋업은 복잡하나 유연함 |
| 운영/모니터링 | CloudWatch, 자동 retry, Job 알림 내장 | UI + Slack/email 알림 설정 가능 |
| 확장성 | AWS 내에서 가장 최적화됨 | 다양한 외부 시스템 연동 가능 (GCP, S3, Snowflake 등) |
| 대표 사용 예시 | AWS RDS → S3 → Redshift/BigQuery 이관 | 테이블별 순차 이관, 조건 분기 로직, 에러 핸들링 강화된 파이프라인 |
| 요약 | “ETL 자체를 수행하는 플랫폼” | “ETL 흐름을 통제하는 감독자” |
(2) Airflow가 적합한 상황은?
| Step A가 끝나야 B 실행 | DAG에서 의존성 쉽게 설정 가능 |
| Step 중 일부 실패 시 재시도 | Retry/Failure 정책 정의 가능 |
| Step별 조건 분기 처리 | Python 코드로 유연한 분기 가능 |
| 하루에 수십 개 테이블 순차 이관 | 반복/템플릿화된 DAG 생성 가능 |
(3) Aws Glue 가 적합한 상황은?
| Glue는 ETL 자체를 수행하는 도구 | RDS → S3 → GCP로 데이터 추출·정제·적재까지 자동화 가능 |
| 서버리스 | 서버 세팅 없이 사용 가능 → 빠르게 시작 & 유지관리 쉬움 |
| Glue Job UI 지원 | 파이썬 몰라도 GUI로 Job 생성 가능 (코드 수정도 가능) |
| AWS 서비스와 연동 최적화 | RDS, S3, IAM 권한 설정 등이 AWS 내에서 seamless |
| 단순 반복 작업에 최적 | 테이블 1:1 이관, 특정 칼럼 필터링 등 반복작업에 적합 |
| 비용도 상대적으로 낮음 | Airflow처럼 인프라 운영 비용 거의 없음 (실행 시간 기준 과금) |
2. S3에 파일 저장 형식 비교하기
왜 S3에 parquet 파일로 저장하는거야?
GPT:
Parquet(파킷) 파일은 대용량 데이터를 저장하고 처리할 때 효율성이 아주 뛰어난 포맷이기 때문에,
AWS Glue에서 데이터를 S3에 저장할 때 Parquet 형식으로 저장하면
→ 저장 용량이 줄고
→ 분석 처리 속도는 빨라져서
BigQuery로 넘기거나 분석 쿼리를 돌릴 때 훨씬 유리해.
(1) parquet파일 특징
| 열(Column) 기반 저장 | 쿼리에서 필요한 열만 읽음 → 읽는 양 ↓ 처리 속도 ↑ |
| 압축률 높음 | 같은 데이터라도 Parquet가 CSV보다 2~10배 적게 저장됨 |
| Spark/BigQuery 친화적 | Glue도 Spark 기반이고, BigQuery도 Parquet를 네이티브로 처리 가능 |
| 스키마 자동 인식 | 컬럼명, 타입 등 자동 포함되어 있어 schema 관리 쉬움 |
| 데이터 타입 다양 지원 | 중첩 구조, 리스트, 딕셔너리 형태도 잘 처리함 (JSON보다 유리) |
(2) Parquet vs CSV vs JSON
| 포맷 | 저장방식 | 용량 | 처리속도 | 적합성 |
| Parquet | 열 기반 | ⬇ 매우 작음 | ⬆ 매우 빠름 | ✅ 대규모 분석 적합 |
| CSV | 행 기반 | ⬆ 큼 | ⬇ 느림 | ❌ 대용량 부적합 |
| JSON | 계층형 구조 | ⬆ 큼 | ⬇ 느림 | ⚠️ 로그, API 결과용 |
(3) Glue 에서 parquet 파일을 사용하는 이유
GPT
“Glue는 Spark 기반이라 열 기반 포맷인 Parquet와의 궁합이 좋고,
Parquet로 저장하면 이후 BigQuery로 적재하거나 쿼리 수행 시 처리 속도가 크게 개선됩니다.
특히 대용량 로그나 여러 테이블 이관 작업에서 효율성과 비용 절감 측면에서도 효과적이기 때문에 Parquet를 선택했습니다.”