프로그래밍/aws

AWS Glue VS AWS Step Function

장경훈 2024. 11. 7. 15:56

AWS Glue란 ?

AWS Glue는 사용자가 여러 소스의 데이터를 쉽게 검색, 준비, 이동, 통합할 수 있도록 하는 서버리스 데이터 통합 서비스
중앙 집중식 데이터 카탈로그에서 데이터를 관리할 수 있습니다. 추출, 변환, 로드(ETL) 파이프라인을 시각적으로 생성, 실행, 모니터링하여 데이터 레이크에 데이터를 로드할 수 있다.

AWS Glue 특징

  • ETL(Extract, Transform, Load) 툴이다.
  • Serverless이기 때문에 운영 부담이 줄고, 데이터의 전처리를 쉽고 빠르게 한다.
  • 기본적으로 ETL을 통해서 데이터를 Data Lake(i.e. S3)나 Data Warehouse(i.e. Redshift)에 이동시킨다.
  • Glue는 ETL 작업을 스케줄링하는 기능을 제공한다. 특정 시간이나 이벤트에 따라 ETL 자동 실행하도록 예약가능.
  • Glue는 ETL을 위한 코드를 자동으로 생성한다.
  • Glue의 Console에서 몇 가지 설정만 하면 자동으로 Python이나 Scala 코드를 생성해준다.

Glue Data Catalog

  • AWS 클라우드에 있는 영구적 기술 메타데이터 스토어
  • AWS Identity and Access Management 정책 및 Lake Formation과 함께 사용하여 테이블 및 데이터베이스에 대한 액세스를 제어한다.

Glue Crawler and Classifier

  • AWS Glue는 모든 종류의 리포지토리에서 데이터를 스캔하고 분류하며, 스키마 정보를 추출
  • AWS Glue Data Catalog에서 자동적으로 메타데이터를 저장하는 크롤러를 설정할 수 있다
  • AWS Glue Data Catalog를 사용하여 ETL 작업을 관리할 수 있다.

AWS Step Function란?

서버리스 오케스트레이션을 제공하는 서비스, 아래와 같이 다양한 서비스를 통합할 수 있다.

ETL 작업 Step Function 프로세스 아키텍처

AWS Glue vs Step Functions 비교

주요 특성 비교표

특성 AWS Glue AWS Step Functions
주요 용도 데이터 통합 및 ETL 프로세스 자동화 분산 애플리케이션 및 마이크로서비스 워크플로우 오케스트레이션
핵심 기능 데이터 카탈로그 관리, ETL 작업 자동화, 데이터 크롤링, 스키마 검색, 자동 코드 생성 상태 기반 워크플로우 관리, 다중 서비스 통합, 병렬 처리, 복잡한 에러 핸들링
사용해야 하는 상황 데이터 웨어하우스 구축, 데이터 레이크 구축, 정기적 배치 데이터 처리, 데이터 마이그레이션, 실시간 스트리밍 데이터 처리 마이크로서비스 오케스트레이션, API 기반 워크플로우, 복잡한 승인 프로세스, 장기 실행 비즈니스 프로세스, 서버리스 애플리케이션
장점 서버리스 아키텍처 제공, 자동화된 스키마 감지, 내장된 데이터 변환 기능, 데이터 카탈로그와 통합, 예약 실행 지원 시각적 워크플로우 설계, 정교한 오류 처리, AWS 서비스와 쉬운 통합, 실행 이력 추적, 재시도 로직 내장
단점 복잡한 워크플로우 구현의 한계, 사용자 정의 기능 제한, 실시간 처리의 제약, 디버깅 어려움 ETL 특화 기능 부족, 초기 설정 복잡성, 비용 증가 가능성, 상태 관리 복잡성
비용 구조 DPU 시간당 과금, 크롤러 실행 시간, 데이터 카탈로그 저장 상태 전환 횟수당 과금, 실행 시간, Lambda 호출 비용

AWS Glue 사용 사례

  1. 일일 판매 데이터를 S3에서 Redshift로 적재
  2. CSV 파일을 Parquet 형식으로 변환
  3. 데이터 레이크의 스키마 자동 감지 및 카탈로그화
  4. 여러 소스의 데이터를 통합하여 분석용 데이터셋 생성
  5. 실시간 로그 데이터 처리 및 저장

AWS Step Functions 사용 사례

  1. 전자상거래 주문 처리 워크플로우 관리
  2. 머신러닝 모델 학습 파이프라인 구축
  3. 사용자 등록 및 인증 프로세스 자동화
  4. 정기적인 데이터 백업 및 복구 프로세스
  5. API 기반 마이크로서비스 오케스트레이션

상황에 맞는 추천 선택 

  1. 순수 데이터 처리/변환 작업 → AWS Glue
  2. 복잡한 비즈니스 로직이나 다중 서비스 조율 → AWS Step Functions
  3. 둘 다 필요한 경우 → 두 서비스를 통합하여 사용