본문 바로가기

Stack/AWS

[AWS DEA] 개념정리 - Domain3 데이터 운영 및 지원

반응형
AWS DEA-C01 Domain 3 완전 정리 | 데이터 운영·자동화·분석·모니터링·품질
AWS DEA-C01 Domain 3 · 전체 압축 정리

Domain 3 — 데이터 운영 및 지원
핵심만 압축 정리

자동화 · 데이터 분석 · 모니터링 · 품질 보장 · Task 1~4 한 페이지

3.1

데이터 처리 자동화

Task 1 · IaC·CI/CD·파이프라인 오케스트레이션·API 관리

22%
CloudFormation + EventBridge 기반 파이프라인 자동화 흐름
S3 버킷CloudFormation 생성
EventBridge 규칙파일 업로드 탐지
Lambda파일 유형 확인
Step Functions상태 머신 시작
Glue Job파일 처리
Glue Crawler카탈로그 업데이트
SNS성공/실패 알림
CI/CD 파이프라인 자동화
코드 작성Python/Glue Script
CodeCommit Push
CodeBuild빌드 + 단위 테스트
통합 테스트엔드투엔드 검증
CodeDeploy자동 배포
MWAA vs Step Functions 비교
항목Amazon MWAAAWS Step Functions
기반Apache Airflow (오픈소스)AWS 네이티브 상태 머신 (ASL)
워크플로 정의Python DAGJSON/YAML 상태 머신
장점Airflow 생태계 그대로 활용, 복잡한 의존성 관리서버리스, AWS 서비스 직접 통합, 시각적 편집
선택 기준기존 Airflow 코드 이전, 코드 기반 유연한 워크플로이벤트 기반 서버리스 워크플로, AWS 서비스 연동 중심
MWAA 문제해결 순서① CloudWatch Logs 확인 → ② Airflow 자체 로그 → ③ IAM 역할·권한 → ④ 종속성·파일 참조 → ⑤ 리소스 할당 조정
Step Functions 상태 머신 예시 — 파일 처리 파이프라인

🔍 Lambda #1 — 파일 유형 확인

수신 파일 확장자 확인 → 파일 유형 정보를 다음 단계(선택 상태)로 전달

🔀 선택 상태 (Choice)

지원 파일 → Lambda #2 처리 → 성공 종료
미지원 파일 → SNS 알림 → 실패 처리

📌 CloudTrail 데이터 이벤트 — 시험 포인트 CloudTrail은 기본적으로 관리 이벤트(Management Events)만 기록. S3 객체 수준 이벤트(업로드·삭제 등)는 데이터 이벤트(Data Events)로 별도 활성화 필요. EventBridge 규칙이 S3 이벤트를 받으려면 CloudTrail 데이터 이벤트 활성화 필수.
데이터 API 관리 — 주요 서비스 및 모범 사례
역할서비스핵심
API 엔드포인트Amazon API Gateway관리형 API. Lambda/백엔드 프런트엔드. 조절·속도제한·캐싱
비즈니스 로직AWS LambdaAPI 요청 처리·응답. API Gateway 또는 이벤트로 시작
SDK 통합AWS SDK인증·요청 서명·응답 파싱 처리. Python boto3 / Java SDK
캐싱API Gateway 캐싱 / ElastiCache백엔드 부하 절감, 응답 시간 개선
모니터링CloudWatch오류율·지연시간·성능 지표 추적
보안IAM / OAuthAPI 인증·인가. IAM 정책 기반 접근 제어
CDN·성능CloudFront콘텐츠 전송 최적화. API 응답 엣지 캐싱

3.2

데이터 분석

Task 2 · 집계·이동평균·그룹화·피보팅·SQL·시각화

데이터 조작 작업 — 서비스별 지원 기능
작업설명지원 서비스SQL 키워드
집계 (Aggregation)여러 레코드를 단일 값으로 요약Redshift, Athena, OpenSearchSUM, AVG, COUNT, GROUP BY
이동 평균지정 윈도우 기간 값의 평균 계산. 데이터 스무딩Redshift, QuickSightAVG() OVER (윈도우 함수)
그룹화 (Grouping)특정 속성 기반 데이터 그룹화Redshift, Athena, QuickSightGROUP BY
피보팅 (Pivoting)행 → 열 변환. 보고 목적 데이터 재구성Redshift, QuickSightPIVOT (집계 함수)
데이터 분석 서비스 — 용도별 선택 가이드
서비스주 용도특징
Amazon AthenaS3 데이터 인터랙티브 SQL 쿼리서버리스. 스캔량 과금. Parquet+파티셔닝으로 비용 절감
Amazon Redshift대규모 데이터 집계 분석컬럼 기반. 윈도우 함수·PIVOT·복잡 조인 지원
Amazon QuickSightBI 대시보드·시각화이동 평균 기본 내장. SPICE 인메모리. 자연어 Q&A
Amazon OpenSearch텍스트 검색·로그 분석·대시보드날짜 히스토그램·용어 집계. 실시간 모니터링
AWS Glue DataBrew노코드 데이터 정제·프로파일링시각적 데이터 준비. 코드 없이 정리·정규화
Amazon EMR (Spark)대용량 배치 분석Jupyter Notebook 지원. Spark DataFrame API
DB별 SQL 쿼리 방식
서비스쿼리 언어특이사항
RDS / Aurora표준 SQLCRUD 완전 지원. Multi-AZ 고가용성
DynamoDBPartiQLSQL 호환 오픈소스 쿼리 언어. 정형·반정형·스키마리스 모두 처리
DocumentDBMongoDB 호환 SQL 유사 쿼리완전관리형 NoSQL. JSON 문서 스토어
Athena표준 SQL (Presto 기반)S3 / 데이터 레이크 직접 쿼리. CSV·Parquet·JSON
AWS GlueSQL 유사 변환ETL 코드 자동 생성. 데이터 스토어 간 변환
💡 Athena에서 Spark 실행 Athena에서 Python 또는 Athena Notebook API로 Spark 애플리케이션 개발 가능. EMR의 Jupyter Notebook 인터페이스로도 Spark 코드 작성·실행. 데이터 탐색에는 Athena(간단·서버리스) vs EMR(복잡·대규모) 구분.
데이터 검증·정리 서비스 선택 기준
목적서비스
사용자 지정 데이터 검증·보강AWS Lambda
SQL 기반 데이터 검증Amazon Athena
데이터 시각화·탐색Amazon QuickSight
복잡한 데이터 정제·탐색적 분석Jupyter Notebook (EMR)
ML 모델을 위한 데이터 준비SageMaker Data Wrangler
📝 시험 시나리오 — 대시보드 + 검색 추가

8시간마다 EC2에서 S3 데이터를 추출·정리·CSV 변환하는 스크립트가 있음. 대시보드 시각화 + 검색 기능을 추가하려면?

스크립트를 Lambda 함수로 이전 → 결과를 Amazon OpenSearch 클러스터로 전송. EventBridge로 8시간마다 Lambda 트리거. OpenSearch = 대시보드 + 로그 분석 + 실시간 모니터링 + 검색 기능 모두 제공.
📝 시험 시나리오 — IoT 비용 효율 분석

IoT 센서 데이터 수집 + 매일 시각적 보고서. 비용 효율적인 솔루션은?

EMR 임시 클러스터(Transient)로 매일 야간 데이터 집계 → 완료 후 자동 종료. 영구 클러스터 불필요로 비용 절감. 보고서는 QuickSight로 시각화. EMR 임시 = 필요할 때만 실행·종료, 초당 과금.

3.3

파이프라인 유지관리 및 모니터링

Task 3 · 로깅·추적·성능 튜닝·관찰 가능성

모니터링 · 관찰 가능성 서비스 전체 정리
서비스역할핵심 기능시험 판단 기준
CloudWatch지표·로그·알람·대시보드CPU·메모리·에러율 등 지표 수집. Logs Insights로 로그 SQL 쿼리. Composite Alarm"지표 이상?" "알람 설정?" → CloudWatch
CloudWatch Logs로그 수집·저장·분석로그 그룹/스트림 관리. 보존 정책 설정 가능. CloudFormation으로 구성 자동화"애플리케이션 로그 수집" → CloudWatch Logs
CloudTrailAPI 호출 감사 로그모든 AWS API 직접 호출 기록. S3 또는 CloudWatch Logs로 전송. Athena로 분석"누가 삭제했나?" "API 호출 기록?" → CloudTrail
AWS X-Ray분산 추적·엔드투엔드 분석마이크로서비스 간 상호작용 시각화. 성능 병목 식별. 분산 아키텍처 디버깅"분산 서비스 추적?" "마이크로서비스 병목?" → X-Ray
AWS Config리소스 구성 변경 감사AWS 리소스 구성 변경 이력. 관리형 규칙으로 모범 사례 준수 평가"버킷 퍼블릭 여부?" "구성 변경 추적?" → Config
EventBridge이벤트 기반 자동화이벤트 → Lambda/Step Functions 자동 라우팅. CloudWatch Events의 발전형"이벤트 기반 자동 트리거?" → EventBridge
VPC Flow Logs네트워크 트래픽 기록네트워크 인터페이스 IP 트래픽 캡처. 보안·규정 준수 감사"네트워크 트래픽 모니터링" → VPC Flow Logs
AWS Security Hub보안 알람 통합 대시보드GuardDuty·Inspector·Config 결과를 단일 뷰로 통합"보안 경고 통합 관리" → Security Hub
Amazon GuardDuty위협 탐지ML 기반. CloudTrail·VPC Flow Logs·DNS 로그 분석. 즉시 활성화"이상 접근 탐지" → GuardDuty
⚡ Macie + EventBridge 자동 수정 — 시험 포인트 Macie는 CloudWatch Logs로 직접 로그 전송 X. Macie 검색 결과 → EventBridge 이벤트로 자동 Push → Lambda 자동 수정(S3 버킷 퍼블릭 접근 차단 등). 또는 Security Hub로 Push(게시 설정 필요). CloudTrail과 통합되어 API 호출도 기록.
모니터링 지표 — 파이프라인 핵심 항목

📊 시스템 지표

CPU 사용률, 메모리, 네트워크, 디스크 I/O

🗄️ DB 지표

쿼리 대기열 길이, 쿼리 동시성, 스토리지 사용률

⏱️ 성능 지표

지연 시간, 처리량, 오류율, 타임아웃

성능 문제 해결 절차
단계행동사용 도구
1AWS Health Dashboard 확인 → AWS 서비스 중단 여부 먼저 확인AWS Health Dashboard
2CloudWatch 지표 확인 → CPU·메모리·에러율 기준선 대비 비교CloudWatch 지표·알람
3애플리케이션 로그 분석 → 오류 메시지·예외·패턴 식별CloudWatch Logs Insights
4서비스별 로그 확인 → RDS 슬로우 쿼리, Lambda 타임아웃 등RDS 로그, Lambda 로그
5네트워크 트래픽 패턴 모니터링VPC Flow Logs, NLB 액세스 로그
6Auto Scaling 정책 검토·조정CloudWatch + Auto Scaling
📝 시험 시나리오 — Kinesis + DynamoDB 지연 문제

Kinesis 40샤드 + KCL 앱(Auto Scaling EC2) + DynamoDB. 피크 시간 지연 발생. 어떻게 해결?

① CloudWatch에서 EC2 평균 CPU 사용률 35% 미만 확인 (인스턴스 문제 X)
② Kinesis 프로비저닝된 처리량 초과 예외 로그 확인 (샤드 문제 X)
DynamoDB 프로비저닝된 쓰기 용량 확인 → 쓰기 처리량 증가 (병목 지점)
④ VPC 흐름 로그로 네트워크 지연·패킷 손실 확인
📝 시험 시나리오 — Redshift 장기 쿼리 vs 단기 쿼리

장기 실행 쿼리가 단기 쿼리를 블로킹하는 Redshift 클러스터. 어떻게 해결?

워크로드 관리(WLM) 대기열을 클러스터 파라미터 그룹에서 구성. 단기 쿼리용 대기열 / 장기 쿼리용 대기열 분리 → 단기 쿼리가 장기 쿼리에 막히지 않도록 설정. 자동 WLM은 우선순위에 따라 동적으로 메모리·동시성 할당.
서비스별 주요 문제 해결 패턴
서비스주요 장애 유형해결 방법
Kinesis Streams생산자 연결 불가, 소비자 느린 수신생산자/소비자 분리 디버깅. 샤드 처리량 초과 확인. 멱등성 처리 + 샤드 반복기로 데이터 손실 복구
Kinesis Firehose전송 실패재시도 기간 만료 시 S3 백업 버킷에 자동 저장. 재시도 기간 설정 확인
Amazon EMR클러스터 실패·지연소규모 데이터 하위 집합으로 먼저 테스트. 단계별 실행·개별 테스트. CloudWatch 로그 확인
Apache Flink (MSF)스트림 접근 불가, 데이터 손실CloudWatch Logs 쿼리로 애플리케이션 관련 오류 조사
MWAADAG 실행 오류CloudWatch Logs → Airflow 로그 → IAM 권한 → 종속성 순 확인

3.4

데이터 품질 보장

Task 4 · 프로파일링·검증·편향·샘플링·파티셔닝·버킷팅

🎯 핵심 원칙 — 데이터 품질은 신뢰의 문제 좋지 않은 데이터를 게시하는 것보다 데이터를 게시하지 않는 것이 낫다. 품질 검사는 변환 이전 · 변환 도중 · 변환 이후 3단계에 모두 추가. 검사가 너무 많으면 오탐 → 검사가 너무 적으면 품질 문제. 데이터 프로파일링으로 적절한 검사 위치 결정.
데이터 품질 4대 기준

✅ 완전성 (Completeness)

누락된 값·Null·빈 필드 없는지 확인. 필수 필드에 Null이 아닌 값 존재 여부

🔄 일관성 (Consistency)

사전 정의된 규칙·제약 조건 준수 여부. 비일관성·불일치 식별

🎯 정확성 (Accuracy)

데이터 값이 실제와 일치하는지. 형식·범위 규칙 검증

🔐 무결성 (Integrity)

생성~삭제 전체 수명주기에서 데이터가 변경되지 않고 일관성 유지

데이터 프로파일링 — 서비스별 활용
서비스프로파일링 방식적합한 경우
AWS Glue DataBrew노코드. 데이터 통계·빈도 분포·품질 인사이트 자동 생성코드 없이 빠른 프로파일링
Amazon AthenaSQL로 통계 요약·데이터 패턴 분석S3 데이터 기본 프로파일링
Amazon RedshiftSQL 집계로 데이터 분산 계산·이상 식별웨어하우스 내 데이터 품질 지표 생성
EMR + Spark사용자 지정 프로파일링 스크립트복잡한 대용량 데이터 프로파일링
DataBrew 데이터 품질 규칙 종류
규칙 유형검사 내용예시
완전성특정 열의 누락·Null 값 레코드 플래그customer_id = Null 레코드 탐지
형식값이 특정 형식·패턴과 일치하는지이메일 형식, 전화번호 형식 검증
범위숫자 값이 지정 범위 내에 속하는지나이 0~120, 가격 > 0
고유성중복 레코드·값 식별기본 키 열의 중복 값 탐지
데이터 샘플링 기술 — 서비스별 방법
서비스샘플링 방법
S3 SelectSQL 유사 쿼리로 S3 객체에서 특정 하위 집합 직접 검색
Athena / RedshiftLIMIT 절로 제한된 행 검색
EMR + Spark체계적·무작위·층화 샘플링 사용자 지정 스크립트
SageMaker Data Wrangler모델 훈련·테스트용 균형 잡힌 데이터셋 샘플링
Glue DataBrew변환으로 데이터 하위 집합 필터링·선택
파티셔닝 vs 버킷팅 — 헷갈리는 개념 정리

📂 파티셔닝 (Partitioning)

특정 기준(날짜·리전 등)으로 데이터를 논리적 폴더로 분할.
S3 경로 예: year=2024/month=03/day=20/
WHERE 절 조건으로 스캔 범위 최소화 → Athena 비용 절감.
파티션 수 많을수록 쿼리 대상 파일 수 감소.

🪣 버킷팅 (Bucketing)

동일한 속성 값 레코드를 같은 버킷(파일)에 저장.
해시 함수로 버킷 결정. 버킷당 균등한 데이터 분배.
파일명에 버킷 번호 인코딩.
Athena v2: Hive 버킷팅 / v3: Spark 버킷팅도 지원.
Spark 버킷팅 사용 시 TBLPROPERTIES bucketing_format='spark'

데이터 편향 (Data Skew) — 탐지 및 해결
방법도구/서비스설명
커스텀 CloudWatch 지표CloudWatch파티션별 레코드 수·처리 시간 모니터링. 임계값 초과 시 실시간 알람
Glue 작업 북마크AWS Glue마지막 처리 레코드에서 재시작. 후속 실행 편향 추적
Spark 애플리케이션 로그EMR + CloudWatch Logs장기 실행 태스크·불균일 분산 징후 탐지
편향 조인 최적화Amazon EMR조인 키 데이터 편향 자동 감지·처리. 편향 키 재분산으로 로드 밸런싱
적응형 조인 알고리즘Amazon Redshift데이터 분포에 따라 해시 조인·병합 조인 동적 전환
데이터 재파티셔닝Spark / EMR관찰된 편향 기반 동적 파티션 재분산
📝 시험 시나리오 — Redshift 중복 레코드 제거

Glue 작업으로 CSV → Redshift 테이블 기록. 여러 번 실행 후 중복 레코드 발생. 해결 방법은?

스테이징 테이블에 먼저 데이터 로드
UPSERT(INSERT + UPDATE) 또는 병합 작업 수행: 스테이징 테이블을 대상 테이블과 조인 → 기존 행이면 UPDATE, 없으면 INSERT
③ 결과: 중복 없는 최신 데이터만 대상 테이블에 유지
📝 시험 시나리오 — Apache Flink 이상 탐지

데이터 센터 온도 센서 실시간 모니터링. 비정상 고온 감지 시 알림 + 에어컨 제어하려면?

Amazon Managed Service for Apache FlinkRandom_Cut_Forest(RCF) 함수로 데이터 스트림에서 이상 탐지.
이상 감지 → SNS 알림 발송 + Lambda 함수로 에어컨 시스템 자동 제어.

🎯 Domain 3 시험 핵심 — 이것만 기억
  • CloudTrail 데이터 이벤트 = 기본 비활성화. S3 객체 수준 이벤트 기록하려면 별도 활성화 필요
  • 모니터링 3종 구분 — CloudWatch(지표·알람) / CloudTrail(API 감사) / Config(구성 변경·규정 준수)
  • Macie → EventBridge 자동 Push. CloudWatch Logs로는 전송 X. Security Hub 게시는 별도 설정 필요
  • Kinesis 데이터 손실 = 멱등성 처리 + 샤드 반복기(Shard Iterator)로 오류 시점부터 재처리
  • Kinesis Firehose 전송 실패 = 재시도 기간 만료 후 S3 백업 버킷에 자동 저장
  • Redshift WLM = 워크로드 관리 대기열로 장기 쿼리가 단기 쿼리 블로킹 방지
  • EMR 임시 클러스터 = 사용 후 자동 종료. 비용 효율 배치 처리에 적합
  • 파티셔닝 = 날짜·리전 기준 S3 폴더 분할 → 스캔 범위 최소화. 버킷팅 = 해시 함수로 균등 분배 → 조인 최적화
  • 데이터 품질 검사 위치 = 변환 전·도중·후 3단계 모두. DataBrew 레시피로 자동화
  • UPSERT = 스테이징 테이블 → 대상 테이블 병합. 기존 행 UPDATE + 신규 행 INSERT → 중복 방지
  • DynamoDB 지연 문제 → 프로비저닝된 쓰기 처리량(Write Capacity) 증가 먼저 확인
  • Flink RCF 함수 = 실시간 이상 탐지. + SNS 알림 + Lambda 자동 대응 패턴

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

Domain 4(보안·거버넌스) 정리도 곧 올라옵니다 😊

반응형