본문 바로가기

Stack/AWS

[AWS DEA] Domain 1 데이터 파이프라인 오케스트레이션 완전 정리

반응형
AWS DEA-C01 Domain 1 Task 3 데이터 파이프라인 오케스트레이션 완전 정리 | Step Functions·MWAA·Glue Workflow
AWS DEA-C01 Domain 1 · Task 3 파이프라인 오케스트레이션 Step Functions · MWAA · Glue DAG · 재시도 · 이벤트 기반 AWS Skill Builder

AWS DEA-C01 Domain 1 Task 3 — 데이터 파이프라인 오케스트레이션(Orchestrate Data Pipelines) 완전 정리

AWS Skill Builder 공식 강의 기반. 데이터 아키텍처 유형, 오케스트레이션 개념, Step Functions 상태 머신, AWS Glue 워크플로, Amazon MWAA(Airflow), DAG, 재시도·백오프 전략, 이벤트 기반 파이프라인, 실패 처리, 전체 서버리스 데이터 레이크 파이프라인 예시를 도식·비교표로 완전 정리합니다.

01 수명 주기에서 오케스트레이션의 위치

오케스트레이션은 수집·변환·저장·분석 단계를 연결하고 관리하는 횡단 관심사입니다.

소스 시스템
생성
수집
Ingestion
저장
Storage
변환
Transform
제공
Serving
🎼 오케스트레이션 — 모든 단계를 올바른 순서·조건으로 흐르게 보장
💡 데이터 오케스트레이션 = 데이터가 수집 서비스 → 처리 서비스 → 스토리지 위치로 올바르게 흐르도록 보장하는 프로세스

02 데이터 아키텍처 유형 — 시험 필수 암기

데이터 아키텍처 = 조직의 진화하는 데이터 요구 사항을 지원하는 시스템 설계. 운영 아키텍처(기능 요건) + 기술 아키텍처(수집·저장·변환·제공 방식).

🏢 데이터 웨어하우스
(Data Warehouse)
정형 데이터 중심 중앙 집중형 분석 시스템. Redshift 대표. OLAP 쿼리 최적화.
🏞️ 데이터 레이크
(Data Lake)
정형·반정형·비정형 원시 데이터를 S3에 모두 저장. 스키마-온-리드(Schema-on-Read).
🏗️ 데이터 레이크하우스
(Data Lakehouse)
데이터 레이크 + 데이터 웨어하우스 특성 결합. S3 + Iceberg/Delta Lake + Redshift Spectrum.
λ Lambda 아키텍처
배치 레이어 + 스피드 레이어(스트리밍) + 서빙 레이어 구조. 배치와 실시간을 병행. 관리 복잡.
κ Kappa 아키텍처
스트리밍만 사용 (배치 레이어 제거). Lambda보다 단순. Kinesis·MSK 중심.
🕸️ 데이터 메시
(Data Mesh)
도메인 오너십 분산 아키텍처. 각 팀이 데이터 제품(Data Product)을 독립 소유·관리.
⚠️ 시험 추가 항목: 데이터 스택(Data Stack) — 데이터 파이프라인을 구성하는 도구·서비스의 집합. 모던 데이터 스택 = Fivetran + dbt + Redshift/BigQuery + Looker 조합 예시

03 오케스트레이션 핵심 개념

📋 데이터 파이프라인 정의
특정 순서로 실행되어야 하는 데이터 처리 태스크의 모음

일부 태스크: 순차적(Sequential) 실행 필요
다른 태스크: 병렬(Parallel) 실행 가능

태스크 순서를 지정하는 것 = 워크플로(Workflow)
🔀 DAG vs 비-DAG
DAG (Directed Acyclic Graph, 방향성 비순환 그래프)

데이터 파이프라인을 반드시 DAG로 정의할 필요는 없음

Apache Airflow (MWAA)반드시 DAG로 정의 필요
Step FunctionsDAG일 필요 없음 (상태 머신 구조)
📅 일정 기반 vs 이벤트 기반 파이프라인
일정 기반 (Schedule-based):
매일 특정 시간에 실행. EventBridge 스케줄 사용

이벤트 기반 (Event-driven):
새 파일 업로드·데이터 변경 감지 시 자동 실행
S3 이벤트 알림, EventBridge, CloudWatch Events 사용
⚡ 서버리스 오케스트레이션 서비스
AWS Step Functions — 상태 머신 언어(Amazon States Language) + JSON

AWS Lambda — 이벤트 기반 트리거·경량 변환

상태·전환·오류 처리·재시도·입출력·이벤트 소스·트리거·모니터링·로깅·테스트·배포 설계

04 오케스트레이션 AWS 서비스 — 언제 무엇을 선택하는가

서비스 풀네임 주요 특징 선택 기준
AWS Step Functions AWS Step Functions 서버리스 오케스트레이션. 시각적 설계 도구(드래그앤드롭). 로우코드 접근. Amazon States Language(JSON) 복잡한 환경
여러 AWS 서비스 연결, 에러 처리·재시도, 상태 머신
AWS Glue 워크플로 AWS Glue Workflows Glue 구성 요소(크롤러·ETL 작업)만 사용하는 파이프라인 전용. 워크플로 그래프에 트리거 추가·정의 Glue 전용 파이프라인
크롤러 → ETL → 크롤러 순서 구성
Amazon MWAA Amazon Managed Workflows for Apache Airflow 완전관리형 Apache Airflow. Python으로 DAG 정의. Glue·Lambda·EMR 태스크 스케줄링 가능 복잡한 의존성
기존 Airflow 코드 재사용, Python DAG 필요
AWS Data Pipeline AWS Data Pipeline 지정된 간격으로 AWS ↔ 온프레미스 데이터 소스 간 ETL. EC2·ECR·온프레미스 컴퓨팅 리소스 사용 가능. JDBC 데이터 스토어 읽기/쓰기 가능 덜 복잡한 환경
단순 주기적 이동, 온프레미스 JDBC 연결
⚠️ 복잡도 선택 원칙: 덜 복잡한 환경 → AWS Data Pipeline / 더 복잡한 환경 → Step Functions

05 Step Functions — 상태 머신으로 Spark 작업 오케스트레이션

여러 Spark 작업을 특정 순서로 실행하면서 별도의 애플리케이션 유지 없이 Amazon EMR과 통합하는 예시

  • 1
    입력 파일 경로를 전달하여 Step Functions 상태 머신 트리거
    EventBridge 스케줄(일정 기반) 또는 S3 이벤트(이벤트 기반)로 시작. 또는 Step Functions API 직접 호출
  • 2
    첫 번째 상태 → Lambda 함수 시작
    상태 머신의 첫 번째 단계가 AWS Lambda 함수를 호출
  • 3
    Lambda → Amazon EMR의 Spark에 작업 제출
    LambdaAmazon EMR에서 실행 중인 Spark와 상호 작용하여 Spark 작업 제출
  • 4
    상태 머신이 몇 초 대기 후 Spark 작업 상태 확인
    Wait 상태 → 폴링(Polling) 방식으로 작업 완료 여부 확인
  • 5
    작업 상태에 따라 성공 또는 실패 상태로 분기
    Choice 상태 사용. 성공 → 다음 단계 진행 / 실패 → 오류 처리 단계로 이동
  • 6
    작업 완료 대기 → 최종 상태 업데이트
    작업이 완료될 때까지 Wait 상태 유지. 완료되면 상태 머신 최종 상태(성공/실패)로 업데이트
🔗 Step Functions으로 복잡한 ETL 오케스트레이션 예시
온라인 사용자 참여 ↔ 예상 판매 수익 상관관계 분석 시나리오

S3 파일 업로드
이벤트
CloudWatch 이벤트
트리거
Step Functions
상태 머신 시작
작업 성공 여부
선택(Choice)
→ 성공
Glue 크롤러 실행
(Lambda 통해)
→ 실패
오류 단계
Lambda → SNS 알림

06 AWS Glue 워크플로 — Glue 전용 파이프라인 오케스트레이션

데이터 파이프라인이 AWS Glue 구성 요소만 사용하는 경우 Glue 워크플로가 훌륭한 선택. 워크플로 그래프에 트리거 추가·이벤트와 작업 정의.

📋 기본 Glue 워크플로 예시 (CSV → Parquet)

CSV 파일
수집
Glue 크롤러 ①
새 파티션 추가
Glue Spark Job
CSV→Parquet 변환
Glue 크롤러 ②
Parquet 카탈로그 추가

📋 병렬 작업 실행 예시

Glue 크롤러
Glue Spark Job
Parquet 변환
→ 병렬 분기
브랜치 A
Glue 작업 — 데이터 집계
Amazon DynamoDB 테이블에 기록
브랜치 B
Glue 작업 — 새 데이터 + 기존 참조 데이터셋 조인
→ 보강된 데이터셋 생성
최종: Glue Python 셸 작업 — 작업 성공/실패 알림 발송 (SNS)
💡 Glue 워크플로 + 외부 서비스 통합: EMR·SQS 같은 Glue 외부 서비스는 Boto3 라이브러리를 사용하는 Glue Python 셸 작업으로 통합. 예: Amazon SQS 대기열에 파일 기록 → EMR Hive 작업 트리거

07 Amazon MWAA — 완전관리형 Apache Airflow

🌪️ Amazon MWAA 핵심 특징
완전관리형 Apache Airflow
Python으로 DAG(Directed Acyclic Graph) 정의

DAG = 파이프라인의 태스크 + 태스크 간 종속성 정의

스케줄 가능 태스크:
Glue ETL 작업 / Lambda 함수 / EMR Spark 작업 / 기타 사용자 정의 태스크
⚖️ Step Functions vs MWAA 선택 기준
Step Functions 선택 시:
AWS 네이티브 서비스 연결, 시각적 워크플로, 코드 최소화, 상태 머신

MWAA 선택 시:
기존 Airflow Python DAG 코드 재사용, 복잡한 태스크 의존성·스케줄링, 커뮤니티 오퍼레이터 사용
📌 Glue 워크플로 — 멀티리전 Athena 쿼리 오케스트레이션
데이터 과학자가 두 AWS 리전의 S3 버킷 데이터를 Athena로 쿼리해야 하는 경우

리전 A S3
+
리전 B S3
한 리전에서
Glue 크롤러 실행
(모든 리전 카탈로그화)
데이터 과학자
Athena 쿼리 실행

08 파이프라인 실패 유형 — 하드 실패 vs 소프트 실패

실패 원인 유형 설명 복구 방법
데이터 품질 문제 하드 실패 CSV 수신 파이프라인에 JSON 형식 파일이 들어온 경우. 처리 방법 모름 데이터 품질 문제 해결 전까지 복구 불가. 데이터 검증 게이트 필요
코드 오류 하드 실패 작업 업데이트 중 로직·구문 오류 발생. 배포 전 테스트로도 잡지 못하는 경우 코드 수정 후 재배포. 단위 테스트·통합 테스트 강화가 모범 사례
엔드포인트 오류 — 일시적 소프트 실패 일시적 네트워크 오류로 연결 실패 재시도(Retry)로 해결 가능
엔드포인트 오류 — 권한 하드 실패 작업이 필요한 IAM 권한으로 구성되지 않은 경우 IAM 정책 수정 후 재시도. 자동 재시도로 해결 불가
종속성 오류 하드/소프트 파이프라인 내부 또는 파이프라인 간 복잡한 종속성. 선행 작업 미완료·실패 DAG/상태 머신으로 종속성 명확히 정의. 체크포인트 메커니즘 구성

09 재시도 전략 — 백오프 비율(Backoff Rate)

Step Functions·Apache Airflow(MWAA) 모두 재시도 횟수·재시도 간격·백오프 비율 지정 가능

📐 백오프 비율(Backoff Rate) 계산 예시
재시도 간격(Interval) = 10초, 백오프 비율(BackoffRate) = 1.5
재시도마다 지연 시간이 배율만큼 증가
1회 재시도
10초
10 × 1.5⁰
2회 재시도
15초
10 × 1.5¹
3회 재시도
22.5초
10 × 1.5²
4회 재시도
33.75초
10 × 1.5³
💡 Step Functions의 Catch 문: 상태 머신 실행 중 오류 상태 감지 시 오류 단계 실행 → Lambda 함수 트리거 → 팀에 SNS 알림(이메일) 발송

10 이벤트 기반 파이프라인 — 매니페스트 파일 패턴

소용량 파일을 배치로 처리해 단일 Parquet 파일로 변환하는 파이프라인. S3 이벤트 알림으로 트리거.

소용량 파일들
S3 업로드
배치 마지막에
manifest.* 파일 기록
S3 이벤트 알림
"manifest"로 시작하는
파일 감지 시 트리거
파이프라인 시작
① 매니페스트 파일 읽기
② 나열된 파일 존재 확인
모든 파일 배치 처리
→ 단일 Parquet 변환
설계 포인트: 모든 업로드 이벤트에 반응하지 않고 manifest 파일이라는 신호를 기다림. 매니페스트 파일에는 배치를 구성하는 다른 파일들의 정보가 포함됨. → 이것도 이벤트 기반 파이프라인.

11 전체 서버리스 데이터 레이크 파이프라인 예시

Amazon S3를 기본 데이터 스토어로 사용하는 서버리스 데이터 레이크 전체 흐름

① 다양한 수집 방법 → S3 원시 영역(Raw Zone)

Kinesis Data Firehose
스트리밍 데이터
+
AWS DMS
관계형 DB
+
DataSync
온프레미스 NFS
S3 Raw Zone
(원시 영역)

② 데이터 카탈로그화 (자동화)

S3 Raw Zone
Lambda 함수 ①
(S3 이벤트로 호출)
Glue 크롤러 시작
스키마 카탈로그화
CloudWatch Events
크롤러 완료 감지
Lambda 함수 ②
호출

③ ETL 처리 → S3 처리된 영역(Processed Zone)

Lambda 함수 ②
Glue ETL 작업 시작
Parquet 변환 + 파티셔닝
S3 Processed Zone
(처리된 영역)
💡 ETL 작업 수정으로 추가 목표 달성 가능: 세분화된 파티셔닝 / 압축 / 데이터 보강(Enrichment)

④ 모니터링 & 알림

ETL 작업 완료
CloudWatch 규칙
완료 이벤트 감지
Amazon SNS 주제
이메일 알림 발송

12 일반 데이터 분석 파이프라인 단계 순서

  • 1
    수집 & 조정 (Ingest & Coordinate)
    적절한 도구가 데이터를 수집하고 조정. 오케스트레이션이 이 단계부터 시작됨
  • 2
    영구 저장 (Persistent Storage)
    데이터가 영구적 방식으로 저장. S3, Redshift, DynamoDB 등
  • 3
    변환·처리·분석
    데이터 처리·분석 솔루션이 스토리지에서 데이터를 가져와 작업 수행 후 새로운 위치에 저장. 필요 시 다른 도구 또는 같은 도구가 반복적으로 처리
  • 4
    시각화 & 제공 (Visualize & Serve)
    비즈니스 사용자가 데이터를 활용할 수 있도록 시각화. QuickSight·Athena·Redshift로 인사이트 확보 → 비즈니스 결정에 활용

13 성능·가용성·확장성·복원력·내결함성 모범 사례

⚡ 성능 & 확장성
  • 분산 처리: Spark·EMR·Glue로 병렬 처리
  • 자동 크기 조정: 최적 성능·비용 효율
  • 데이터 파티셔닝: 여러 리소스에 분산
🛡️ 가용성 & 내결함성
  • 내결함성 스토리지: Amazon S3, Amazon EFS
  • 백업 전략: Amazon S3, AWS Backup으로 데이터 보호
  • 재해 복구 계획 구현
📊 모니터링 & 알림
  • CloudWatch: 파이프라인 상태·성능 모니터링
  • 경보·알림: 문제 적극적 탐지·대응
  • Amazon SNS: 이메일·SMS 알림 발송
🔧 오류 처리 & 품질
  • Step Functions·Glue 워크플로: 오류 처리·재시도 구현
  • 데이터 검증·품질 검사 자동화
  • CI/CD: 변경 사항 효율적 배포
🔒 격리 & 캡슐화
  • 파이프라인 단계를 단위로 격리 (문제 해결·유지보수 용이)
  • Lambda·Glue·컨테이너로 구성 요소 캡슐화
🔄 버전 제어 & 자동화
  • 자동화된 테스트: 단위·통합·엔드투엔드
  • 버전 제어 및 배포 프로세스 포함
  • AWS CodePipeline·CodeBuild로 CI/CD

14 Domain 1 Task 3 오케스트레이션 전체 AWS 서비스

🎼 Orchestrate Data Pipelines — AWS Services Overview
📋Step Functions상태 머신·시각적
🌪️Amazon MWAA관리형 Airflow
🔄Glue WorkflowsGlue 전용 파이프라인
📊AWS Data Pipeline단순 주기적 ETL
AWS Lambda이벤트 트리거
Amazon EventBridge스케줄·이벤트 규칙
📡CloudWatch EventsAWS 이벤트 감지
📣Amazon SNS알림·이메일 발송
📊Amazon CloudWatch모니터링·알람
🦎AWS Glue ETL서버리스 변환
🐘Amazon EMRSpark 분산처리
🪣Amazon S3Raw·Processed Zone
#AWS_DEA-C01 #파이프라인_오케스트레이션 #Orchestrate_Data_Pipelines #Step_Functions #Amazon_MWAA #Apache_Airflow #Glue_워크플로 #DAG #데이터_아키텍처 #Lambda_아키텍처 #Kappa_아키텍처 #데이터_메시 #재시도_전략 #백오프_비율 #BackoffRate #이벤트_기반_파이프라인 #하드_실패_소프트_실패 #Amazon_SNS #CloudWatch #AWS_Data_Pipeline #서버리스_데이터_레이크 #AWS자격증 #데이터엔지니어
반응형