데이터 파이프라인에서 가장 힘든 일 중 하나는 반복 작업입니다. 매일 아침 8시에 전날 판매 데이터를 처리하고, S3에 새 파일이 업로드될 때마다 변환을 실행하고, 매주 월요일에 보고서를 생성하는 작업들을 사람이 직접 실행할 수는 없습니다. 자동화는 이런 반복 작업을 시스템이 대신 실행하게 만드는 것입니다. DEA-C01 시험에서 자동화 관련 문제는 어떤 트리거(시간 또는 이벤트)를 사용하고 어떤 서비스를 조합할지를 묻습니다.
시간 기반 자동화 — 스케줄대로 실행
가장 직관적인 자동화는 "매일 몇 시에 실행"처럼 시간을 정해두는 방식입니다.
EventBridge Scheduler: AWS EventBridge의 스케줄러 기능입니다. cron 표현식으로 정확한 실행 시간을 지정하거나, rate 표현식으로 주기를 지정합니다. 예를 들어 는 매일 오전 8시에 실행합니다. 대상으로는 Lambda 함수, Step Functions 상태 머신, Glue 작업, SQS 큐 등을 지정할 수 있습니다.
MWAA (Amazon Managed Workflows for Apache Airflow): Apache Airflow는 오픈소스 워크플로우 오케스트레이션 도구입니다. 파이썬으로 DAG(Directed Acyclic Graph, 방향성 비순환 그래프)를 작성해 작업 간 의존관계를 정의합니다. MWAA는 Airflow를 AWS에서 관리형으로 제공하는 서비스입니다. 서버를 직접 설치하고 관리할 필요 없이 Airflow 환경을 바로 사용할 수 있습니다.
MWAA가 적합한 경우: 여러 단계의 복잡한 파이프라인 (예: 데이터 추출 → 변환 → 검증 → 로드) 작업 간 의존관계가 복잡한 경우 실패 시 재시도 로직이 필요한 경우 기존 Airflow DAG를 그대로 마이그레이션하려는 경우
EventBridge Scheduler vs MWAA:
| 항목 | EventBridge Scheduler | MWAA | |------|----------------------|------| | 복잡도 | 단순 | 복잡한 DAG 지원 | | 관리 | 완전 서버리스 | 관리형 서버 필요 | | 적합 용도 | 단일 작업 스케줄 | 다단계 워크플로우 | | 비용 | 이벤트 수 기반 | 환경 실행 시간 기반 |
이벤트 기반 자동화 — 무언가 일어났을 때 실행
스케줄이 아니라 "특정 일이 발생했을 때" 자동으로 처리가 시작되는 방식입니다.
S3 이벤트 → Lambda: S3 버킷에 파일이 업로드되는 순간 Lambda 함수가 자동으로 실행됩니다. 예를 들어 CSV 파일이 업로드되면 Lambda가 파일을 읽어 검증하고, 유효한 데이터만 DynamoDB에 넣는 로직을 자동화할 수 있습니다. 설정은 S3 버킷의 이벤트 알림에서 대상을 Lambda로 지정하면 됩니다.
DynamoDB Streams → Lambda: DynamoDB 테이블에서 데이터가 삽입, 수정, 삭제될 때마다 변경 내역이 Streams에 기록됩니다. Lambda가 이 스트림을 폴링해 변경 이벤트를 처리합니다. 예를 들어 주문 상태가 "배송완료"로 바뀌면 자동으로 알림을 보내거나 집계 테이블을 업데이트하는 용도로 사용합니다.
이벤트 기반 패턴의 장점: 불필요한 대기 없이 즉시 처리 처리할 데이터가 없으면 비용이 들지 않음 처리량이 자동으로 확장됨
Athena 쿼리 자동화
Athena는 S3 데이터를 SQL로 분석하는 서버리스 서비스입니다. 이 쿼리도 자동화할 수 있습니다.
StartQueryExecution API: Athena의 AWS SDK API입니다. Lambda나 Glue 작업에서 코드로 Athena 쿼리를 실행할 수 있습니다. 쿼리 실행 후 API로 완료 여부를 확인하고, API로 결과를 가져옵니다.
Athena Notebooks: Apache Spark 기반의 노트북 환경입니다. 데이터 탐색과 분석을 인터랙티브하게 진행할 수 있습니다. SQL과 Python(PySpark)을 혼합해서 사용할 수 있어 복잡한 분석에 적합합니다.
CTAS (Create Table As Select): Athena 쿼리 결과로 새 테이블을 만드는 방법입니다. 자주 실행하는 복잡한 쿼리 결과를 미리 집계해 저장해두면 이후 쿼리 비용과 속도를 개선할 수 있습니다.
DataBrew — 코드 없는 데이터 정제
AWS Glue DataBrew는 비개발자도 데이터를 정제하고 변환할 수 있는 시각적 도구입니다. 스프레드시트처럼 데이터를 보면서 변환 규칙을 클릭으로 적용합니다.
주요 기능:
250가지 이상의 내장 변환: 날짜 형식 통일, 결측값 채우기, 중복 제거, 텍스트 정규화, 열 분리, 열 합치기 등 다양한 변환을 코드 없이 적용할 수 있습니다. 데이터 프로파일링: 데이터셋을 분석해 각 열의 통계(평균, 최대/최솟값, 결측률, 고유값 수)를 자동으로 계산합니다. 데이터 품질 문제를 빠르게 파악할 수 있습니다. 레시피(Recipe): 적용한 변환 단계들을 레시피로 저장합니다. 저장된 레시피는 다른 데이터셋에 재적용하거나 스케줄로 자동 실행할 수 있습니다. 품질 규칙: 데이터가 특정 조건을 만족하는지 검사하는 규칙을 설정합니다. 예를 들어 "나이 열은 0~150 사이의 값이어야 한다"처럼 지정하면, 규칙을 위반한 레코드를 자동으로 분리합니다.
DataBrew가 적합한 경우: SQL이나 Python을 모르는 비즈니스 분석가가 데이터를 정제해야 할 때 반복적인 데이터 정제 작업을 레시피로 표준화하려 할 때 데이터 품질 문제를 시각적으로 파악하고 싶을 때
SDK 기반 자동화 — Boto3
Boto3는 Python용 AWS SDK입니다. AWS의 거의 모든 서비스를 Python 코드로 제어할 수 있습니다. 데이터 파이프라인을 완전히 코드로 자동화하고 싶을 때 사용합니다.
자주 사용하는 패턴: Glue 작업 시작: S3 파일 복사: Athena 쿼리 실행: DynamoDB 아이템 조회:
Lambda 함수 안에서 Boto3를 사용하면 EventBridge 스케줄이나 S3 이벤트에 반응해 복잡한 파이프라인 로직을 실행할 수 있습니다.
시험 핵심 정리
"일정 시간에 단일 작업 자동 실행" → EventBridge Scheduler "복잡한 다단계 워크플로우 스케줄" → MWAA (Apache Airflow) "S3 업로드 시 자동 처리" → S3 이벤트 → Lambda "DynamoDB 변경 시 자동 처리" → DynamoDB Streams → Lambda "Athena 쿼리를 코드로 자동 실행" → StartQueryExecution API "Athena 결과를 새 테이블로 저장" → CTAS "코드 없이 데이터 정제" → DataBrew "DataBrew 변환 단계 저장 및 재사용" → 레시피(Recipe) "AWS 서비스를 Python으로 제어" → Boto3