Domain 3 — 데이터 운영 및 지원
핵심만 압축 정리
자동화 · 데이터 분석 · 모니터링 · 품질 보장 · Task 1~4 한 페이지
데이터 처리 자동화
Task 1 · IaC·CI/CD·파이프라인 오케스트레이션·API 관리
| 항목 | Amazon MWAA | AWS Step Functions |
|---|---|---|
| 기반 | Apache Airflow (오픈소스) | AWS 네이티브 상태 머신 (ASL) |
| 워크플로 정의 | Python DAG | JSON/YAML 상태 머신 |
| 장점 | Airflow 생태계 그대로 활용, 복잡한 의존성 관리 | 서버리스, AWS 서비스 직접 통합, 시각적 편집 |
| 선택 기준 | 기존 Airflow 코드 이전, 코드 기반 유연한 워크플로 | 이벤트 기반 서버리스 워크플로, AWS 서비스 연동 중심 |
| MWAA 문제해결 순서 | ① CloudWatch Logs 확인 → ② Airflow 자체 로그 → ③ IAM 역할·권한 → ④ 종속성·파일 참조 → ⑤ 리소스 할당 조정 | |
🔍 Lambda #1 — 파일 유형 확인
수신 파일 확장자 확인 → 파일 유형 정보를 다음 단계(선택 상태)로 전달
🔀 선택 상태 (Choice)
지원 파일 → Lambda #2 처리 → 성공 종료
미지원 파일 → SNS 알림 → 실패 처리
| 역할 | 서비스 | 핵심 |
|---|---|---|
| API 엔드포인트 | Amazon API Gateway | 관리형 API. Lambda/백엔드 프런트엔드. 조절·속도제한·캐싱 |
| 비즈니스 로직 | AWS Lambda | API 요청 처리·응답. API Gateway 또는 이벤트로 시작 |
| SDK 통합 | AWS SDK | 인증·요청 서명·응답 파싱 처리. Python boto3 / Java SDK |
| 캐싱 | API Gateway 캐싱 / ElastiCache | 백엔드 부하 절감, 응답 시간 개선 |
| 모니터링 | CloudWatch | 오류율·지연시간·성능 지표 추적 |
| 보안 | IAM / OAuth | API 인증·인가. IAM 정책 기반 접근 제어 |
| CDN·성능 | CloudFront | 콘텐츠 전송 최적화. API 응답 엣지 캐싱 |
데이터 분석
Task 2 · 집계·이동평균·그룹화·피보팅·SQL·시각화
| 작업 | 설명 | 지원 서비스 | SQL 키워드 |
|---|---|---|---|
| 집계 (Aggregation) | 여러 레코드를 단일 값으로 요약 | Redshift, Athena, OpenSearch | SUM, AVG, COUNT, GROUP BY |
| 이동 평균 | 지정 윈도우 기간 값의 평균 계산. 데이터 스무딩 | Redshift, QuickSight | AVG() OVER (윈도우 함수) |
| 그룹화 (Grouping) | 특정 속성 기반 데이터 그룹화 | Redshift, Athena, QuickSight | GROUP BY |
| 피보팅 (Pivoting) | 행 → 열 변환. 보고 목적 데이터 재구성 | Redshift, QuickSight | PIVOT (집계 함수) |
| 서비스 | 주 용도 | 특징 |
|---|---|---|
| Amazon Athena | S3 데이터 인터랙티브 SQL 쿼리 | 서버리스. 스캔량 과금. Parquet+파티셔닝으로 비용 절감 |
| Amazon Redshift | 대규모 데이터 집계 분석 | 컬럼 기반. 윈도우 함수·PIVOT·복잡 조인 지원 |
| Amazon QuickSight | BI 대시보드·시각화 | 이동 평균 기본 내장. SPICE 인메모리. 자연어 Q&A |
| Amazon OpenSearch | 텍스트 검색·로그 분석·대시보드 | 날짜 히스토그램·용어 집계. 실시간 모니터링 |
| AWS Glue DataBrew | 노코드 데이터 정제·프로파일링 | 시각적 데이터 준비. 코드 없이 정리·정규화 |
| Amazon EMR (Spark) | 대용량 배치 분석 | Jupyter Notebook 지원. Spark DataFrame API |
| 서비스 | 쿼리 언어 | 특이사항 |
|---|---|---|
| RDS / Aurora | 표준 SQL | CRUD 완전 지원. Multi-AZ 고가용성 |
| DynamoDB | PartiQL | SQL 호환 오픈소스 쿼리 언어. 정형·반정형·스키마리스 모두 처리 |
| DocumentDB | MongoDB 호환 SQL 유사 쿼리 | 완전관리형 NoSQL. JSON 문서 스토어 |
| Athena | 표준 SQL (Presto 기반) | S3 / 데이터 레이크 직접 쿼리. CSV·Parquet·JSON |
| AWS Glue | SQL 유사 변환 | ETL 코드 자동 생성. 데이터 스토어 간 변환 |
| 목적 | 서비스 |
|---|---|
| 사용자 지정 데이터 검증·보강 | AWS Lambda |
| SQL 기반 데이터 검증 | Amazon Athena |
| 데이터 시각화·탐색 | Amazon QuickSight |
| 복잡한 데이터 정제·탐색적 분석 | Jupyter Notebook (EMR) |
| ML 모델을 위한 데이터 준비 | SageMaker Data Wrangler |
8시간마다 EC2에서 S3 데이터를 추출·정리·CSV 변환하는 스크립트가 있음. 대시보드 시각화 + 검색 기능을 추가하려면?
IoT 센서 데이터 수집 + 매일 시각적 보고서. 비용 효율적인 솔루션은?
파이프라인 유지관리 및 모니터링
Task 3 · 로깅·추적·성능 튜닝·관찰 가능성
| 서비스 | 역할 | 핵심 기능 | 시험 판단 기준 |
|---|---|---|---|
| CloudWatch | 지표·로그·알람·대시보드 | CPU·메모리·에러율 등 지표 수집. Logs Insights로 로그 SQL 쿼리. Composite Alarm | "지표 이상?" "알람 설정?" → CloudWatch |
| CloudWatch Logs | 로그 수집·저장·분석 | 로그 그룹/스트림 관리. 보존 정책 설정 가능. CloudFormation으로 구성 자동화 | "애플리케이션 로그 수집" → CloudWatch Logs |
| CloudTrail | API 호출 감사 로그 | 모든 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 |
📊 시스템 지표
CPU 사용률, 메모리, 네트워크, 디스크 I/O
🗄️ DB 지표
쿼리 대기열 길이, 쿼리 동시성, 스토리지 사용률
⏱️ 성능 지표
지연 시간, 처리량, 오류율, 타임아웃
| 단계 | 행동 | 사용 도구 |
|---|---|---|
| 1 | AWS Health Dashboard 확인 → AWS 서비스 중단 여부 먼저 확인 | AWS Health Dashboard |
| 2 | CloudWatch 지표 확인 → CPU·메모리·에러율 기준선 대비 비교 | CloudWatch 지표·알람 |
| 3 | 애플리케이션 로그 분석 → 오류 메시지·예외·패턴 식별 | CloudWatch Logs Insights |
| 4 | 서비스별 로그 확인 → RDS 슬로우 쿼리, Lambda 타임아웃 등 | RDS 로그, Lambda 로그 |
| 5 | 네트워크 트래픽 패턴 모니터링 | VPC Flow Logs, NLB 액세스 로그 |
| 6 | Auto Scaling 정책 검토·조정 | CloudWatch + Auto Scaling |
Kinesis 40샤드 + KCL 앱(Auto Scaling EC2) + DynamoDB. 피크 시간 지연 발생. 어떻게 해결?
② Kinesis 프로비저닝된 처리량 초과 예외 로그 확인 (샤드 문제 X)
③ DynamoDB 프로비저닝된 쓰기 용량 확인 → 쓰기 처리량 증가 (병목 지점)
④ VPC 흐름 로그로 네트워크 지연·패킷 손실 확인
장기 실행 쿼리가 단기 쿼리를 블로킹하는 Redshift 클러스터. 어떻게 해결?
| 서비스 | 주요 장애 유형 | 해결 방법 |
|---|---|---|
| Kinesis Streams | 생산자 연결 불가, 소비자 느린 수신 | 생산자/소비자 분리 디버깅. 샤드 처리량 초과 확인. 멱등성 처리 + 샤드 반복기로 데이터 손실 복구 |
| Kinesis Firehose | 전송 실패 | 재시도 기간 만료 시 S3 백업 버킷에 자동 저장. 재시도 기간 설정 확인 |
| Amazon EMR | 클러스터 실패·지연 | 소규모 데이터 하위 집합으로 먼저 테스트. 단계별 실행·개별 테스트. CloudWatch 로그 확인 |
| Apache Flink (MSF) | 스트림 접근 불가, 데이터 손실 | CloudWatch Logs 쿼리로 애플리케이션 관련 오류 조사 |
| MWAA | DAG 실행 오류 | CloudWatch Logs → Airflow 로그 → IAM 권한 → 종속성 순 확인 |
데이터 품질 보장
Task 4 · 프로파일링·검증·편향·샘플링·파티셔닝·버킷팅
✅ 완전성 (Completeness)
누락된 값·Null·빈 필드 없는지 확인. 필수 필드에 Null이 아닌 값 존재 여부
🔄 일관성 (Consistency)
사전 정의된 규칙·제약 조건 준수 여부. 비일관성·불일치 식별
🎯 정확성 (Accuracy)
데이터 값이 실제와 일치하는지. 형식·범위 규칙 검증
🔐 무결성 (Integrity)
생성~삭제 전체 수명주기에서 데이터가 변경되지 않고 일관성 유지
| 서비스 | 프로파일링 방식 | 적합한 경우 |
|---|---|---|
| AWS Glue DataBrew | 노코드. 데이터 통계·빈도 분포·품질 인사이트 자동 생성 | 코드 없이 빠른 프로파일링 |
| Amazon Athena | SQL로 통계 요약·데이터 패턴 분석 | S3 데이터 기본 프로파일링 |
| Amazon Redshift | SQL 집계로 데이터 분산 계산·이상 식별 | 웨어하우스 내 데이터 품질 지표 생성 |
| EMR + Spark | 사용자 지정 프로파일링 스크립트 | 복잡한 대용량 데이터 프로파일링 |
| 규칙 유형 | 검사 내용 | 예시 |
|---|---|---|
| 완전성 | 특정 열의 누락·Null 값 레코드 플래그 | customer_id = Null 레코드 탐지 |
| 형식 | 값이 특정 형식·패턴과 일치하는지 | 이메일 형식, 전화번호 형식 검증 |
| 범위 | 숫자 값이 지정 범위 내에 속하는지 | 나이 0~120, 가격 > 0 |
| 고유성 | 중복 레코드·값 식별 | 기본 키 열의 중복 값 탐지 |
| 서비스 | 샘플링 방법 |
|---|---|
| S3 Select | SQL 유사 쿼리로 S3 객체에서 특정 하위 집합 직접 검색 |
| Athena / Redshift | LIMIT 절로 제한된 행 검색 |
| EMR + Spark | 체계적·무작위·층화 샘플링 사용자 지정 스크립트 |
| SageMaker Data Wrangler | 모델 훈련·테스트용 균형 잡힌 데이터셋 샘플링 |
| Glue DataBrew | 변환으로 데이터 하위 집합 필터링·선택 |
📂 파티셔닝 (Partitioning)
특정 기준(날짜·리전 등)으로 데이터를 논리적 폴더로 분할.
S3 경로 예: year=2024/month=03/day=20/
WHERE 절 조건으로 스캔 범위 최소화 → Athena 비용 절감.
파티션 수 많을수록 쿼리 대상 파일 수 감소.
🪣 버킷팅 (Bucketing)
동일한 속성 값 레코드를 같은 버킷(파일)에 저장.
해시 함수로 버킷 결정. 버킷당 균등한 데이터 분배.
파일명에 버킷 번호 인코딩.
Athena v2: Hive 버킷팅 / v3: Spark 버킷팅도 지원.
Spark 버킷팅 사용 시 TBLPROPERTIES bucketing_format='spark'
| 방법 | 도구/서비스 | 설명 |
|---|---|---|
| 커스텀 CloudWatch 지표 | CloudWatch | 파티션별 레코드 수·처리 시간 모니터링. 임계값 초과 시 실시간 알람 |
| Glue 작업 북마크 | AWS Glue | 마지막 처리 레코드에서 재시작. 후속 실행 편향 추적 |
| Spark 애플리케이션 로그 | EMR + CloudWatch Logs | 장기 실행 태스크·불균일 분산 징후 탐지 |
| 편향 조인 최적화 | Amazon EMR | 조인 키 데이터 편향 자동 감지·처리. 편향 키 재분산으로 로드 밸런싱 |
| 적응형 조인 알고리즘 | Amazon Redshift | 데이터 분포에 따라 해시 조인·병합 조인 동적 전환 |
| 데이터 재파티셔닝 | Spark / EMR | 관찰된 편향 기반 동적 파티션 재분산 |
Glue 작업으로 CSV → Redshift 테이블 기록. 여러 번 실행 후 중복 레코드 발생. 해결 방법은?
② UPSERT(INSERT + UPDATE) 또는 병합 작업 수행: 스테이징 테이블을 대상 테이블과 조인 → 기존 행이면 UPDATE, 없으면 INSERT
③ 결과: 중복 없는 최신 데이터만 대상 테이블에 유지
데이터 센터 온도 센서 실시간 모니터링. 비정상 고온 감지 시 알림 + 에어컨 제어하려면?
이상 감지 → SNS 알림 발송 + Lambda 함수로 에어컨 시스템 자동 제어.
- ①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 자동 대응 패턴
'Stack > AWS' 카테고리의 다른 글
| [AWS DEA] 문제풀이 - Day 01 (0) | 2026.03.20 |
|---|---|
| [AWS DEA] 개념정리 - Domain4 데이터 보안 및 거버넌스 (0) | 2026.03.20 |
| [AWS DEA] 개념정리 - Domain2 데이터 스토어 관리 (0) | 2026.03.20 |
| [AWS DEA] 개념정리 - Domain1 데이터 수집·변환·오케스트레이션 (0) | 2026.03.20 |
| [AWS DEA] 실생활 비유로 전체 그림 잡기 (1) | 2026.03.18 |