본문 바로가기

Stack/AWS

[AWS DEA] 개념정리 - Domain1 데이터 수집·변환·오케스트레이션

반응형
AWS DEA-C01 Domain 1 완전 정리 | 데이터 수집·변환·오케스트레이션·프로그래밍 개념
AWS DEA-C01 Domain 1 · 전체 압축 정리

Domain 1 — 데이터 수집·변환·오케스트레이션
핵심만 압축 정리

Task 1~4 · 시험에 나오는 것만 · 비유 & 비교표 중심

34%Domain 1
26%Domain 2
22%Domain 3
18%Domain 4
1.1

데이터 수집 (Ingestion)

Task 1 · 어떤 서비스로 데이터를 가져올 것인가

34%
서비스한 줄 비유핵심 특징온프렘 대응
Kinesis Data Streams실시간 컨베이어 벨트직접 Pull. 샤드 단위 처리량. 기본 24시간 보존Apache Kafka
Kinesis Data Firehose자동 배달 트럭완전 서버리스. S3/Redshift/OpenSearch 자동 전달. 변환·압축 내장
Amazon MSK대형 우체국완전관리형 Kafka. 기존 Kafka 코드 그대로. 오프셋 보존Kafka 그대로
AWS IoT Core스마트홈 허브수십억 IoT 디바이스. MQTT. 규칙 엔진 → Kinesis/Lambda
AWS DMS무중단 이사 업체이기종 DB 마이그레이션. CDC 실시간 복제온프렘 Oracle → RDS
Amazon AppFlowSaaS 자동 동기화코드 없이 Salesforce·Slack → S3/Redshift
AWS DataSync창고 간 동기화 트럭온프렘 NAS ↔ S3/EFS. 암호화·검증 포함NFS/SMB → S3
AWS Transfer Family구식 우편배달부FTP/SFTP/FTPS 수신 → S3 저장
Amazon SQS대기표 번호 기계메시지 큐. FIFO(순서 보장) vs Standard. 시스템 디커플링
Amazon SNS방송 스피커Pub/Sub. 1:N 발송. 이메일·Lambda·SQS 동시 전달
⚠️ Kinesis Streams vs Firehose 시험 구분 포인트 Streams = 소비자가 직접 Pull, 샤드 관리 필요, 실시간 처리 가능 (Lambda/KCL로 소비)
Firehose = 완전 서버리스, 목적지까지 자동 Push, 최소 60초 버퍼링 (완전 실시간 X)

1.2

데이터 변환 (Transformation)

Task 2 · SQL? Spark? 어디서 변환할 것인가

SQL vs Spark — 변환 방식 선택 기준

🗄️ SQL 선택

• 팀이 SQL에 익숙한 환경
• 대상이 Redshift (ELT)
• 단순 집계·조인 위주
• Athena, Redshift, Glue Studio

⚡ Spark 선택

• 복잡한 커스텀 변환 로직
• 지연시간·처리량 요구 엄격
• ML 파이프라인(Spark ML) 포함
• AWS Glue(서버리스) / EMR(클러스터)

서비스방식관리핵심 특징온프렘
AWS Glue ETLPySpark서버리스Glue Studio(GUI), DataBrew(노코드). 스키마 진화 지원Spark ETL
AWS Glue Crawler자동 스캔서버리스S3/RDS 스캔 → 스키마 자동 추론 → Data Catalog 등록
Amazon EMRSpark/Hive/FlinkEC2 클러스터최고 제어권. Spot Instance 비용절감. 대규모 복잡 처리Spark 클러스터
Kinesis Data AnalyticsSQL / Flink서버리스Streams/MSK 위에서 실시간 스트림 분석. 윈도우 집계Apache Flink
AWS Lambda코드(Python 등)서버리스이벤트 기반. 최대 15분. 간단한 변환·라우팅
ETL vs ELT 흐름 비교

🔧 ETL (변환 먼저)

원본S3/DB
변환Glue/EMR
S3 Staging
Redshift

Redshift 부하 ↓, 복잡한 변환 가능, 중간 스토리지 비용 발생

🔁 ELT (적재 먼저)

원본S3/DB
Redshift(Raw)
SQL 변환내부 처리

파이프라인 단순, SQL 기반, Redshift 부하 증가

⚠️ Athena 열 이름 규칙 — 시험 출제 Athena는 영숫자 + 밑줄(_)만 허용. /var/logvar_log 으로 변환 필요. 슬래시·공백·마침표 불가.

1.3

파이프라인 오케스트레이션

Task 3 · 어떤 순서로, 어떻게 자동으로 실행할 것인가

서비스한 줄 비유핵심 특징선택 시나리오
AWS Step Functions요리 레시피 관리자상태 머신(ASL). Lambda·Glue·EMR 연결. 재시도·에러처리 내장. 시각적 편집서버리스 워크플로, 단계별 에러 제어
Amazon MWAA공사 현장 일정 관리자완전관리형 Airflow. DAG Python 코드 → S3 저장. 의존성 기반 스케줄기존 Airflow 코드 그대로 클라우드 이전
Amazon EventBridge자동 반응 알람 시스템이벤트 버스. AWS 이벤트 + cron 스케줄 → Lambda/Step Functions 트리거이벤트 기반 자동 트리거
AWS Batch야간 대량 생산 라인EC2/Spot/Fargate 위 컨테이너 배치. 작업 큐·의존성 관리. 수시간 이상 처리Lambda 15분 초과하는 대규모 배치
💡 Step Functions vs MWAA 선택 기준 Step Functions = 서버리스·간결한 워크플로·AWS 서비스 직접 연동 우선일 때
MWAA = 기존 Airflow DAG 코드 재사용, Python 생태계(Operator/Hook) 활용 필요할 때

1.4

프로그래밍 개념 적용

Task 4 · 코드 최적화, IaC/CI/CD, 알고리즘

코드 최적화 — 런타임 단축 8대 전략
#전략핵심 포인트
01병렬 처리Glue/EMR → Spark 파티션별 병렬 실행
02배치 처리오버헤드 감소. Glue·EMR 배치 처리 내장
03컬럼 기반 포맷Parquet / ORC → 압축률 우수, 스캔 범위 최소화. Athena 비용 대폭 절감
04조기 필터링WHERE 조건을 소스 레벨에서 처리 (Predicate Pushdown)
05파티셔닝날짜/리전 기준 분할. S3 경로: year=2024/month=03/
06데이터 압축Gzip·Snappy. 스토리지 비용↓ + 전송 속도↑
07메모리·리소스 최적화Spark executor 메모리·코어 수 조정. 병목 방지
08증분 처리 (Incremental)마지막 실행 이후 델타만 처리. 전체 재처리 X
Lambda 최적화 체크리스트
  • 메모리 = CPU 비례 — 메모리 늘리면 CPU도 함께 증가 → 처리 빨라져 총비용 절감 가능
  • 프로비저닝된 동시성 — 콜드 스타트 방지 (지연시간 민감 파이프라인 필수)
  • 타임아웃 설정 — 예상 실행 시간 기준. 너무 짧으면 조기 종료, 너무 길면 비용 낭비
  • 비동기 호출 — 즉각 응답 불필요 시 사용 (처리량 향상)
  • ⚠️VPC 배치 시 지연 추가 — 동일 VPC에 배치 + ElastiCache 캐시 활용으로 지연 최소화
IaC / CI/CD 도구 구분
도구방식용도
CloudFormationYAML/JSON 템플릿인프라 전체 정의·배포. 스택 단위 관리
AWS CDKPython·TypeScript 등 실제 언어코드로 인프라 정의. 재사용 가능한 Construct 패턴
AWS SAMCloudFormation 확장Lambda·Step Functions·DynamoDB 서버리스 파이프라인 전용 배포
CodeCommit/GitHub소스 코드 저장소템플릿·스크립트 버전 관리 → 커밋 시 CI/CD 자동 트리거
📝 시험 시나리오 — 데이터 손실 복구

Kinesis → Java 앱 → OpenSearch 파이프라인에서 데이터 손실 발생. 코드로 복구할 수 있나?

멱등성 처리(Idempotent Processing) 적용 + 샤드 반복기(Shard Iterator)가 오류 발생 전 샤드 위치를 가리키도록 수정. 같은 메시지를 여러 번 처리해도 결과가 동일하므로 재처리 시 중복 없음.

🎯 Domain 1 시험 핵심 — 이것만 기억
  • Kinesis Streams vs Firehose — Streams=Pull(직접 소비), Firehose=Push(자동 전달·서버리스)
  • MSK vs Kinesis — MSK=기존 Kafka 코드 그대로, Kinesis=AWS 네이티브·샤드 관리
  • Glue vs EMR — Glue=서버리스 Spark, EMR=클러스터 직접 관리(Spot 비용절감)
  • ETL vs ELT — ETL=Redshift 부하↓(Spark 선처리), ELT=Redshift 내부 SQL 변환(단순)
  • Step Functions vs MWAA — Step=서버리스 AWS 연동, MWAA=기존 Airflow 코드 이전
  • 최적화 3대 포인트 — Parquet/ORC 포맷 + 파티셔닝 + 증분 처리
  • Lambda 콜드스타트 → 프로비저닝된 동시성으로 해결
  • 서버리스 IaC = AWS SAM, 전체 인프라 = CloudFormation/CDK
  • 멱등성 + 샤드 반복기 = Kinesis 데이터 손실 복구 방법
  • Athena 열 이름 = 영숫자 + 밑줄만. 특수문자 불가

AWS DEA-C01 Domain 1 압축 정리 · hyeonlee.net

Domain 2 정리도 확인해보세요 😊

반응형