AWS Certified Data Engineer – Associate(DEA-C01) 대비 핵심 개념 정리다. 도메인을 가로지르는 주제별 요약이라 공부하면서 계속 고쳐 나갈 예정이고, 이 글이 원본이다. 인쇄용 스냅샷은 아래 PDF로 받으면 된다.
시험 도메인 비중 — ① 데이터 수집·변환 34% · ② 데이터 스토어 관리 26% · ③ 데이터 운영·지원 22% · ④ 데이터 보안·거버넌스 18%
학습용 요약본. 서비스 한도·기능은 AWS가 수시로 갱신하므로 응시 전 공식 문서·Exam Guide를 확인하세요.
1. 데이터 수집 (Ingestion)
스트리밍 수집 서비스 비교
| 서비스 | 핵심 특성 | 쓰는 상황 |
|---|
| Kinesis Data Streams (KDS) | 샤드 기반. 샤드당 쓰기 1MB/s·1,000 rec/s, 읽기 2MB/s(공유) / Enhanced Fan-Out은 소비자별 2MB/s. 보존 24h~365일. 파티션 키 단위 순서 보장. 다중 소비자, 재처리 가능. On-demand 모드 존재. | 1초 이내 실시간, 커스텀 처리 로직, 여러 소비자, 재생(replay) 필요 |
| Kinesis Data Firehose | 완전관리형 서버리스 적재. 버퍼(1~128MB / 60~900초) 후 전송. 대상: S3, Redshift, OpenSearch, Splunk, HTTP. Lambda로 변환, JSON→Parquet/ORC 변환, 동적 파티셔닝. 최소 지연 약 60초. | 코드 없이 S3/DW로 근실시간 적재, 포맷 변환·압축 |
| Amazon MSK | 완전관리형 Apache Kafka. 파티션·컨슈머 그룹, 보존 설정 자유. MSK Connect, MSK Serverless. Glue 스키마 레지스트리 연동. | 이미 Kafka를 쓰거나 Kafka 생태계(커넥터)가 필요 |
| DynamoDB Streams | 테이블 항목 변경 캡처(보존 24h). Lambda 트리거 또는 Kinesis Data Streams for DynamoDB. | DynamoDB CDC, 변경 이벤트 기반 처리 |
| Amazon SQS | 메시지 큐. 소비 후 삭제, 단일 논리 소비자. Standard(최소 1회, 순서 미보장) / FIFO(정확히 1회, 순서). DLQ. | 작업 분산·디커플링(스트림 분석 아님) |
Kinesis Data Streams 상세
- 처리량 초과:
ProvisionedThroughputExceededException → 샤드 추가(re-sharding: split), 파티션 키를 고르게 분산, 지수 백오프 재시도. - 소비 지연 감지:
GetRecords.IteratorAge(Milliseconds) 지표가 커지면 소비자가 뒤처짐 → 소비자 확장, EFO 사용. - 순서: 같은 파티션 키 → 같은 샤드 → 순서 보장. 리샤딩 시 부모/자식 샤드 순서 주의.
- 생산자: KPL(집계·배칭), Kinesis Agent, SDK
PutRecord/PutRecords. 소비자: KCL(체크포인트를 DynamoDB에 저장), Lambda(이벤트 소스 매핑), Firehose, Managed Service for Apache Flink. - Lambda 소비: 배치 크기·배치 윈도우·병렬화 계수(shard당 최대 10), 실패 시 bisect·DLQ(SQS/SNS)·최대 재시도 설정.
- 암호화: 저장 시 KMS(SSE), 전송 시 HTTPS.
배치 수집 · CDC
- AWS DMS: 동종/이기종 DB 마이그레이션 + CDC(지속 복제). Full load → CDC. 대상으로 S3·Kinesis·Redshift·OpenSearch 가능 → 데이터 레이크 CDC 피드. DMS Serverless. 복제 인스턴스 필요(서버리스 제외).
- AWS SCT: 스키마/코드 변환(Oracle→Aurora PostgreSQL 등), 변환 난이도 평가 리포트. 대용량은 SCT data extraction agent.
- AWS AppFlow: SaaS(Salesforce, SAP, Zendesk…) ↔ AWS 양방향, 필터·매핑·마스킹 내장, 스케줄/이벤트 트리거.
- AWS Transfer Family: 관리형 SFTP/FTPS/FTP/AS2 → S3·EFS 적재.
- S3 이벤트 트리거: S3 Event Notifications → SNS/SQS/Lambda/EventBridge. EventBridge 사용 시 필터·재시도·다중 타겟 유리.
- Redshift 적재: COPY(대량 병렬), Auto-copy from S3, Streaming ingestion(Kinesis/MSK), Zero-ETL(Aurora).
변환 서비스 선택
| 서비스 | 특징 / 선택 기준 |
|---|
| AWS Glue (Spark ETL) | 서버리스 Spark. 인프라 관리 없음. 크롤러·카탈로그·스케줄 통합. 소~중 규모 ETL, 카탈로그 기반 레이크에 최적. 콜드스타트(약 1분). |
| Amazon EMR | 관리형 Hadoop/Spark 클러스터. 큰 규모, 세밀한 튜닝, Hive/Presto/HBase/Flink/Hudi/Iceberg, Spot으로 비용 절감. 장기 클러스터·복잡 워크로드. |
| AWS Lambda | 경량·짧은(≤15분) 이벤트 변환. 파일 도착 시 소규모 처리, 라우팅, 간단 보강. 대용량/조인 부적합. |
| Amazon Redshift (ELT) | 데이터를 먼저 적재 후 SQL로 변환(저장 프로시저, MERGE). 정형 DW 변환, Spectrum으로 S3까지. |
| Glue DataBrew | 코드 없는 250+ 변환·정제·프로파일링. 분석가용, 재사용 레시피. |
| Managed Service for Apache Flink | 스트리밍 SQL/Java, 윈도우 집계·이상탐지. 실시간 스트림 분석. |
AWS Glue 상세
- 잡 유형: Spark(배치), Spark Streaming(Kinesis/MSK micro-batch), Python Shell(경량, pandas), Ray(분산 파이썬).
- 워커: G.1X(4 vCPU/16GB), G.2X, G.4X, G.8X, G.025X(스트리밍 저비용). 과금 단위 DPU-시간(초당, 최소 1분). Auto Scaling, Flex(비긴급 저비용).
- Job Bookmarks: 이미 처리한 데이터 상태 저장 → 재실행 시 신규 데이터만 처리(중복 방지). 재처리하려면 bookmark reset.
- DynamicFrame: 스키마 유연(스키마 온 리드),
ResolveChoice로 타입 충돌 해결, relationalize, toDF()로 Spark DataFrame 전환. - 성능: 파티션 프루닝, push-down predicate(
push_down_predicate), 파티션 인덱스, 작은 파일 병합(groupFiles/groupSize), 컬럼 포맷 출력. - 크롤러: 데이터 스토어 스캔 → 카탈로그 테이블·파티션 생성/갱신. 내장·커스텀 classifier(Grok/JSON/XML/CSV). 스케줄. 스키마 변경 정책(갱신/무시), 중복 방지.
- Glue Workflows: 크롤러+잡 DAG, 트리거(on-demand/scheduled/event(EventBridge)/conditional). 잡 파라미터·상태 공유.
- Glue Data Quality: DQDL 규칙셋, 카탈로그 또는 ETL 내 실행, 추천 규칙 자동 생성, 결과 → CloudWatch/EventBridge, 품질 점수, 불량 행 격리.
- Glue 연결(Connection): VPC 내 JDBC(RDS 등) 접근, Secrets Manager로 자격 증명.
Amazon EMR 상세
- 노드: Primary(조정), Core(HDFS + 작업), Task(연산만, HDFS 없음 → Spot에 이상적).
- 프로비저닝: Instance Fleets(다양한 타입·Spot 목표, 중단 대응) vs Instance Groups(단일 타입).
- 스토리지: HDFS(로컬, 클러스터 수명과 함께 소멸=임시), EMRFS(S3를 파일시스템으로=영구, 여러 클러스터 공유). S3는 이제 강한 일관성(EMRFS consistent view 불필요).
- 형태: Transient(작업 끝나면 종료, 비용↓) vs Long-running(상시). EMR Serverless(용량 관리 불필요), EMR on EKS.
- Managed Scaling(부하 기반 자동 확장/축소), Spot 중단 시 재시도. 부트스트랩 액션으로 초기화.
- 트랜잭션 레이크: Apache Hudi / Iceberg / Delta 지원(upsert, time travel, 스키마 진화).
Spark 튜닝 포인트
- 파티션 수·셔플 파티션(
spark.sql.shuffle.partitions), 브로드캐스트 조인(작은 테이블), 데이터 스큐 → salting. - 작은 파일 문제 →
coalesce/repartition으로 출력 파일 수 조절, 컬럼 포맷+압축. - 캐시/persist 재사용, predicate/projection pushdown, 파티션 컬럼으로 필터.
3. 파이프라인 오케스트레이션
| 도구 | 특징 / 선택 기준 |
|---|
| AWS Step Functions | 상태 머신(ASL JSON). 서버리스. Standard(장기 최대 1년, 정확히 1회, 감사) vs Express(고빈도·최대 5분, 저비용, 최소 1회). 재시도·Catch·Parallel·Map(동적 병렬). Glue/EMR/ECS/Lambda/SNS 등 직접 통합. 오류 처리가 강점. |
| Amazon MWAA (Managed Airflow) | Python DAG 코드로 복잡한 의존성·백필·센서. 풍부한 오퍼레이터, 기존 Airflow 자산 이전. 스케줄러 상시 비용. |
| AWS Glue Workflows | Glue 잡·크롤러 전용 DAG. 트리거 체인. Glue만 쓰는 파이프라인에 간단. |
| Amazon EventBridge | 이벤트 버스: 규칙(패턴 매칭) → 타겟. Scheduler(cron/rate, 대규모 일정). Pipes(소스→필터→보강→타겟). 스키마 레지스트리. 서비스 간 느슨한 결합. |
| Amazon SNS / SQS | SNS: 팬아웃 알림(이메일/HTTP/SQS/Lambda). SQS: 버퍼링·재시도·DLQ. 파이프라인 알림·디커플링. |
- 이벤트 기반: S3 도착 → EventBridge → Step Functions → Glue 잡 → 완료 이벤트 → 다음 단계.
- 스케줄 기반: EventBridge Scheduler / Airflow cron / Glue 트리거.
- 재시도·내결함성: 멱등성 설계, 체크포인트, DLQ, 부분 실패 격리, 알림(SNS).
4. 파일 포맷 · 압축 · 파티셔닝 (성능·비용 핵심)
| 포맷 | 유형 | 특징 |
|---|
| Parquet | 컬럼형 | 분석 표준. 높은 압축, 컬럼 프루닝, predicate pushdown, splittable. Athena/Spectrum/Spark 최적. |
| ORC | 컬럼형 | Hive 최적, 내장 인덱스·통계, 높은 압축. |
| Avro | 행형 | 스키마 진화 우수, 스키마 동봉, 스트리밍/직렬화·쓰기 위주. |
| JSON / CSV | 행형(텍스트) | 가독성↑, 비효율(전체 스캔). CSV는 스키마·타입 없음. 원천 수집 단계에 흔함. |
- 압축: Snappy(빠름, Parquet 내부 기본, splittable) · gzip(압축률↑, 비-splittable) · bzip2(splittable, 느림) · Zstd(균형) · LZO.
- Athena/Spectrum 비용 절감 공식 = 컬럼형(Parquet) + 파티셔닝 + 압축 + 적정 파일 크기(≈128MB~1GB). 과금은 스캔한 바이트 기준.
- 파티셔닝: S3 프리픽스
year=2024/month=01/day=05/(Hive 스타일). 쿼리 필터가 파티션 컬럼이면 파티션 프루닝. - Athena Partition Projection: 파티션 메타데이터 없이 규칙으로 계산 → 파티션 폭발·크롤러 부담 해소.
- 작은 파일 문제: 파일 수백만 개 → 오버헤드↑. 해결: compaction 잡, Firehose 버퍼 크게, Glue
groupFiles, Hudi/Iceberg 컴팩션. - 포맷 변환: Glue 잡, Athena CTAS /
INSERT INTO, Firehose 레코드 포맷 변환, EMR.
5. 데이터 스토어 선택 · S3 수명주기
| 요구 | 적합 서비스 |
|---|
| 데이터 레이크 원본·스테이징 | Amazon S3 (+ Glue Catalog / Lake Formation) |
| 대규모 정형 분석·DW·BI | Amazon Redshift (RA3 / Serverless) |
| 애드혹 S3 SQL 쿼리(서버리스) | Amazon Athena |
| 초저지연 키-값 / 고TPS 앱 | Amazon DynamoDB (+ DAX) |
| OLTP 관계형 | Amazon RDS / Aurora |
| 실시간 스트림 버퍼 | Kinesis Data Streams / MSK |
| 검색·로그 분석 | Amazon OpenSearch Service |
| 인메모리 캐시 | ElastiCache / MemoryDB / DAX |
| 그래프 / 시계열 / 원장 | Neptune / Timestream / QLDB |
Amazon S3
- 스토리지 클래스: Standard → Standard-IA / One Zone-IA(자주 안 씀) → Intelligent-Tiering(접근 패턴 자동, 모를 때 기본) → Glacier Instant / Flexible / Deep Archive(가장 저렴, 복원 수 시간).
- Lifecycle 정책: N일 후 클래스 전환, M일 후 만료(삭제), 미완료 멀티파트 업로드 정리, 이전 버전 관리.
- 버전 관리 + MFA Delete, Object Lock(WORM: 규정 준수/거버넌스 모드) = 보존·불변.
- S3 Select: 객체 내부에서 SQL로 필요한 부분만 조회. Storage Lens: 사용량·비용 가시성.
- Cross-Region Replication(CRR)/SRR: DR·레이턴시. 복제 시간 제어(RTC). 리전 제한으로 데이터 레지던시 관리.
- 성능: prefix 분산으로 자동 확장, 강한 읽기-쓰기 일관성(2020~). 요청자 지불, 전송 가속.
DynamoDB TTL / S3 만료로 수명주기·비용 관리, Redshift ↔ S3는 COPY/UNLOAD로 이동.
6. Amazon Redshift 심화
- 노드 타입: RA3(관리형 스토리지 = 컴퓨트·스토리지 분리, 권장) / DC2(로컬 SSD, 소규모) / Serverless(RPU 단위, 간헐 워크로드). MPP + 컬럼형 저장 + 존 맵.
- 분산 스타일(DISTSTYLE): KEY(조인 컬럼으로 같은 노드 배치 → 큰 팩트-팩트 조인) · ALL(전 노드 복제 → 작은 디멘전) · EVEN(라운드로빈) · AUTO(기본, Redshift가 선택).
- 정렬 키(SORTKEY): Compound(프리픽스 컬럼 순서 중요, 범위·동등 필터) / Interleaved(다중 컬럼 동등 가중, 유지비↑ 요즘 비권장). 존 맵으로 블록 스킵.
- COPY: S3/EMR/DynamoDB/SSH에서 병렬 적재. 파일 수는 슬라이스 수의 배수로 분할, gzip/bzip2/zstd 압축, 매니페스트로 정확한 파일 지정, COMPUPDATE/STATUPDATE.
- UNLOAD: 쿼리 결과를 S3로 병렬 내보내기(Parquet 지원, 파티션 지정 가능).
- WLM: 쿼리 큐·메모리·동시성. Auto WLM(권장) vs Manual. SQA(짧은 쿼리 우선), Concurrency Scaling(읽기 폭주 시 임시 클러스터 자동 추가), QMR(쿼리 모니터링 규칙).
- Spectrum: S3 외부 테이블 직접 쿼리(Glue Catalog), 스캔량 과금, 컴퓨트는 Redshift와 별개 풀.
- Federated Query: RDS/Aurora(PostgreSQL·MySQL) 라이브 쿼리. Materialized View: 사전 계산, 자동 새로고침·자동 쿼리 재작성.
- Data Sharing(RA3): 클러스터·계정·리전 간 복제 없이 라이브 읽기 공유. AWS Data Exchange for Redshift.
- 유지관리: VACUUM(삭제 공간 회수·재정렬), ANALYZE(통계 갱신) — 대개 자동. 딥카피로 재구성.
- 최신 기능: Zero-ETL(Aurora→Redshift), Streaming Ingestion(Kinesis/MSK), Auto-copy(S3), Redshift ML(SageMaker), 동적 데이터 마스킹, 행 수준 보안(RLS).
- 보안: KMS 암호화, VPC 내 배치·강화 VPC 라우팅, IAM 인증·IAM Identity Center, 감사 로그 → S3/CloudWatch, STL/SVL/SVV 시스템 뷰.
7. Amazon DynamoDB 심화
- 기본 키: 파티션 키(해시) 또는 파티션+정렬 키(복합). 파티션 키 카디널리티가 높아야 부하 분산.
- 용량 모드: On-demand(트래픽 예측 불가·스파이크) vs Provisioned(+Auto Scaling, 예측 가능·비용↓). RCU=4KB 강한 일관성 읽기/초(최종=2배), WCU=1KB 쓰기/초.
- 핫 파티션 / 스로틀링: 파티션당 약 3,000 RCU·1,000 WCU 한계. 해결: 고엔트로피 키, write sharding(키에 접미사), 시계열은 테이블/파티션 분리, adaptive capacity는 자동 완화.
- GSI: 다른 파티션·정렬 키, 별도 용량, 최종 일관성, 테이블당 기본 20개. 언제든 추가. 프로젝션 속성 선택.
- LSI: 같은 파티션 키·다른 정렬 키, 테이블 생성 시에만, 강한 일관성 가능, 아이템 컬렉션 10GB 제한.
- DAX: 완전관리형 인메모리 캐시(마이크로초 읽기, read-through/write-through).
- TTL: 만료 타임스탬프 속성으로 자동 삭제(무료, 약 48h 내). 만료 삭제도 Streams에 기록.
- Streams → Lambda 트리거 / Kinesis Data Streams for DynamoDB(더 긴 보존·팬아웃).
- Global Tables: 다중 리전 액티브-액티브(마지막 쓰기 우선). PITR(35일), 온디맨드 백업.
- S3로 내보내기: PITR 기반, 읽기 용량 소비 없음 → Athena/Glue로 분석. Import from S3.
- 모델링: 액세스 패턴 우선 설계, 단일 테이블 디자인, 오버로디드 GSI, 비정규화. 트랜잭션(TransactWrite/Read).
Amazon Athena
- 서버리스 Trino/Presto(SQL) + Spark. S3 데이터를 Glue Catalog 스키마로 쿼리. 관리 서버 없음.
- 과금: 스캔한 데이터 TB당(약 $5). 압축·컬럼형·파티셔닝으로 절감. Athena for Spark는 DPU 기반.
- Workgroup: 쿼리별/그룹별 데이터 스캔 한도, 비용 태그, 결과 위치·암호화 격리, CloudWatch 지표.
- CTAS / INSERT INTO: 쿼리 결과로 새 테이블(포맷·파티션 지정) → 경량 ETL. UNLOAD로 포맷 지정 내보내기.
- Partition Projection, Query result reuse(캐시), Prepared statements, 사용자 정의 함수(Lambda).
- Federated Query: Lambda 커넥터로 DynamoDB·RDS·Redshift·CloudWatch·온프레미스 등 조인.
- ACID·행 수준 업데이트가 필요하면 Apache Iceberg 테이블.
AWS Glue Data Catalog
- 중앙 메타데이터 저장소(Hive 메타스토어 호환). Athena·EMR·Redshift Spectrum·Glue가 공유.
- 구성: Database → Table(스키마, 위치, 포맷, SerDe, 파티션). 파티션 인덱스로 대규모 파티션 성능.
- 크롤러로 스키마·파티션 자동 발견/갱신. 파티션 동기화:
MSCK REPAIR TABLE / ALTER TABLE ADD PARTITION / 크롤러 / 파티션 프로젝션. - 스키마 레지스트리(Avro/JSON/Protobuf) — 스트리밍 스키마 호환성 강제.
- 레이크 중앙 권한 관리: DB/테이블/컬럼·행·셀 수준 권한. IAM 위에 얹는 세분화 레이어.
- LF-Tags(태그 기반 접근 제어): 태그로 대규모 권한 관리. Data filters(열/행 필터).
- 교차 계정 공유, 통합 대상: Athena, Redshift Spectrum, EMR, Glue, QuickSight.
- Blueprints(수집 워크플로 템플릿), 데이터 위치 등록·권한, 데이터 리니지(신규). Hybrid access mode.
9. 데이터 모델링 · 스키마 진화 · 리니지
- 모델링: 정규화(OLTP) vs 차원 모델링/스타 스키마(팩트+디멘전, DW). SCD Type 1(덮어쓰기)·Type 2(이력 행 추가)·Type 3(이전 값 컬럼).
- Redshift: 팩트=DISTKEY(조인 키)+SORTKEY(날짜), 디멘전=DISTSTYLE ALL. 서로게이트 키.
- DynamoDB: 액세스 패턴 기반 비정규화·단일 테이블. S3 레이크: 존(raw→cleansed→curated), Parquet+파티션.
- 스키마 진화: Avro(가장 유연), Parquet(컬럼 추가 OK), Iceberg/Hudi/Delta(스키마·파티션 진화, time travel). Glue 크롤러 스키마 변경 정책, 스키마 레지스트리 호환성 모드(BACKWARD/FORWARD/FULL).
- 스키마 변환: AWS SCT, DMS Schema Conversion(이기종 DB 이전).
- 데이터 리니지: SageMaker ML Lineage Tracking, DataZone, Glue(신규 리니지), DataBrew 계보 뷰.
- 최적화: 파티셔닝·버킷팅, 압축·인코딩(Redshift 컬럼 인코딩 AZ64/ZSTD), 인덱스(파티션 인덱스, RDS 인덱스), 통계 최신화.
10. 운영 · 모니터링 · 로깅
- Amazon CloudWatch: 지표·알람·대시보드. Logs(수집·보존), Logs Insights(쿼리 언어로 로그 분석), Metric Filter(로그→지표), Contributor Insights, EMR/Glue/Kinesis 지표.
- AWS CloudTrail: 모든 API 호출 감사. 관리 이벤트(기본) + 데이터 이벤트(S3 객체·Lambda 실행, 별도 활성화·과금). CloudTrail Lake(SQL로 감사 쿼리, 최대 10년 보존). 조직 트레일.
- 핵심 지표: Kinesis
GetRecords.IteratorAge(소비 지연), Write/ReadProvisionedThroughputExceeded. DynamoDB ThrottledRequests·ConsumedCapacity. Redshift CPUUtilization·PercentageDiskSpaceUsed·QueueLength. Glue job DPU·실행시간. - Glue 잡 관측: Continuous logging, Spark UI/History Server, Job Run Insights(실패 원인·권장), 지표.
- EMR: CloudWatch 지표, YARN·Spark History·Persistent UI, S3 로그 아카이브.
- 로그 분석 패턴: 로그를 S3로 → Athena/Glue로 쿼리, 또는 OpenSearch로 인덱싱, 또는 CloudWatch Logs Insights. 대용량은 EMR.
- 알림: CloudWatch 알람 → SNS. 이벤트 → EventBridge → 자동 조치(Lambda/Step Functions).
- 성능 튜닝: 병렬성·파티션 프루닝·파일 크기·조인 전략·캐시·적정 인스턴스/워커·Spot.
11. 데이터 품질
- 검증 차원: 완전성(결측), 유일성(중복), 유효성(형식·범위), 정확성, 일관성, 적시성(freshness), 참조 무결성.
- AWS Glue Data Quality: DQDL로 규칙셋 작성(예:
Completeness "col" > 0.95, IsUnique, ColumnValues in [...]). 카탈로그 또는 ETL 파이프라인 내 실행, 추천 규칙 자동 생성, 점수·결과 → EventBridge/CloudWatch, 불량 레코드 분리. - Glue DataBrew: 데이터 프로파일링(통계·분포·상관·이상치), 250+ 정제 변환, 데이터 품질 규칙, 재사용 레시피.
- Deequ(EMR/Spark 라이브러리): 대규모 유닛 테스트식 검증, 제약·이상 탐지.
- 파이프라인 내 게이트: 규칙 위반 시 잡 실패/격리/알림. 샘플링·스큐 점검.
12. 데이터 보안 (인증 · 인가 · 암호화)
- IAM: 자격 증명 기반 vs 리소스 기반 정책, 역할(교차 계정·서비스), 최소 권한, 조건 키, 권한 경계, ABAC(태그 기반). AWS 관리형 vs 고객 관리형 정책.
- 인증 방식: 암호 기반 · 인증서 기반 · 역할(임시 자격 증명, 권장). Redshift/RDS는 IAM 인증·IAM Identity Center 연동 가능.
- Secrets Manager: 자격 증명 저장 + 자동 회전(Lambda), RDS/Redshift/DocumentDB 네이티브 회전, 교차 계정. vs SSM Parameter Store(표준은 무료, 회전 없음, SecureString은 KMS).
저장 데이터 암호화
| 방식 | 설명 |
|---|
| SSE-S3 | S3 관리 AES-256 키. 가장 간단(기본 활성). |
| SSE-KMS | KMS 키 사용 → 키 정책·권한·CloudTrail 감사·회전. 고객 관리형 CMK로 세밀 제어. (Bucket Key로 KMS 요청·비용↓) |
| DSSE-KMS | 이중 계층 KMS 암호화(규제 요건). |
| SSE-C | 고객이 키 제공, AWS는 저장 안 함. |
| CSE | 클라이언트 측 암호화(업로드 전). AWS는 평문 미접근. |
- 전송 중 암호화: HTTPS/TLS 강제(S3 버킷 정책
aws:SecureTransport), Redshift SSL, JDBC SSL, VPC 내 트래픽. - KMS: 봉투 암호화(데이터 키), 키 정책+IAM+grant, 자동 연간 회전, 멀티 리전 키, 교차 계정 키 부여. 분석 서비스(Redshift/EMR/Glue/Kinesis/Athena 결과) 모두 KMS 통합.
- 네트워크: VPC Gateway Endpoint(S3·DynamoDB, 무료) / Interface Endpoint(PrivateLink)(유료, 대부분 서비스), 보안 그룹·NACL, S3 Access Points(경로별 정책), 프라이빗 서브넷+NAT, Glue/EMR/Redshift를 VPC에 배치.
- 인가: 최소 권한, RBAC/ABAC, Lake Formation 컬럼·행 권한, Redshift GRANT(사용자·그룹·역할), S3 버킷 정책·ACL 비활성(권장).
13. 데이터 거버넌스 · 프라이버시 · 감사
- PII 탐지: Amazon Macie(S3 민감 데이터 자동 발견·ML, findings → EventBridge/Security Hub), Glue 민감 데이터 탐지(PII detection transform, 탐지·마스킹·삭제), Comprehend, Macie + Lake Formation 연계.
- 마스킹·익명화: Redshift 동적 데이터 마스킹·RLS, Lake Formation 컬럼 권한·데이터 필터, Athena/Glue 뷰·변환, 토큰화·해싱·키 솔팅, k-익명성.
- 데이터 주권·레지던시: 리전 제한 SCP, S3 복제 규칙 제어(허용 안 된 리전 복제 차단), KMS 리전 키, AWS Config 규칙으로 위반 감지.
- AWS Config: 리소스 구성 이력·규칙(비준수 감지)·자동 교정(remediation). 계정 변경 추적.
- 데이터 공유: Redshift datashare, Lake Formation 교차 계정, AWS Data Exchange, S3 Access Grants, Clean Rooms(공동 분석, 원본 비공유).
- 보존·불변: S3 Object Lock(WORM), Glacier Vault Lock, 백업(AWS Backup), 수명주기 만료로 법적 삭제.
- 감사 로그 중앙화: CloudTrail(조직 트레일 → 중앙 S3), CloudTrail Lake, CloudWatch Logs 교차 계정, 로그를 Athena/OpenSearch로 분석.
14. 자주 나오는 시나리오 · 암기 포인트
- 코드 없이 스트림 → S3(포맷 변환) : Kinesis Data Firehose (+ Lambda 변환, Parquet 변환).
- 1초 미만 실시간 + 다중 소비자 + 재처리 : Kinesis Data Streams (+ Enhanced Fan-Out).
- 소비자가 뒤처짐 : IteratorAge 지표 확인 → 샤드/소비자 확장, EFO.
- DB 지속 복제(CDC)를 레이크로 : DMS → S3/Kinesis. 이기종 스키마 변환 : SCT.
- 서버리스 Spark ETL + 카탈로그 : AWS Glue. 대규모·튜닝·Spot·Hudi/Iceberg : EMR.
- Glue 잡 재실행 시 중복 방지 : Job Bookmark.
- S3 애드혹 SQL, 비용 통제 : Athena + Workgroup 스캔 한도. 비용↓ : Parquet+파티션+압축.
- Redshift에서 S3 데이터 조인 : Spectrum. RDS 라이브 조인 : Federated Query. 복제 없이 클러스터 간 공유 : Data Sharing.
- Redshift 큰 팩트-팩트 조인 : 조인 키에 DISTKEY. 작은 디멘전 : DISTSTYLE ALL. 날짜 필터 : SORTKEY.
- Redshift 읽기 동시성 폭주 : Concurrency Scaling + Auto WLM.
- DynamoDB 스로틀/핫키 : 고카디널리티 파티션 키 + write sharding, on-demand 모드.
- DynamoDB 분석 : S3로 Export(용량 소비 없음) → Athena/Glue.
- 복잡한 의존성·백필 오케스트레이션 : MWAA. 오류 처리·상태 머신·서버리스 : Step Functions. Glue 전용 : Glue Workflows.
- 대규모 스케줄 : EventBridge Scheduler. 소스→변환→타겟 연결 : EventBridge Pipes.
- S3 민감정보 자동 발견 : Macie. ETL 중 PII 마스킹 : Glue 민감 데이터 탐지.
- KMS 키로 감사·회전·권한 필요 : SSE-KMS(+ Bucket Key). 자격 증명 자동 회전 : Secrets Manager.
- S3·DynamoDB 프라이빗 접근(무료) : Gateway VPC Endpoint. 그 외 서비스 : Interface Endpoint(PrivateLink).
- 리전 밖 복제 방지 : SCP + S3 복제 규칙 + AWS Config 규칙.
- 데이터 품질 규칙을 파이프라인에 : Glue Data Quality(DQDL). 코드 없는 프로파일링 : DataBrew.
- 컬럼·행 수준 접근 제어 : Lake Formation (LF-Tags / Data Filters).
- 작은 파일 과다 : compaction / Firehose 버퍼↑ / Glue
groupFiles / Iceberg 컴팩션.