분석 서비스
분석 파이프라인은 쿼리 도구와 데이터 처리 엔진, 저장소, 시각화 계층을 나눠 설계한다. S3 데이터를 바로 질의할지, 대규모 Spark 작업을 실행할지, 지연이 짧은 스트림 처리가 필요한지에 따라 선택이 달라진다. 아래에서는 각 서비스가 맡는 역할과 연결 지점을 중심으로 정리한다.
1. 분석 서비스 전체 구조
데이터 수집
├── Kinesis Data Streams — 실시간 스트림
├── Kinesis Firehose — 스트림 → S3/Redshift 적재
└── AWS DMS — DB 데이터 이전
데이터 저장
├── S3 — 데이터 레이크 (원천 저장)
└── Redshift — 데이터 웨어하우스 (분석 최적화)
데이터 카탈로그
└── AWS Glue Data Catalog — 메타데이터 중앙 관리
ETL / 변환
├── AWS Glue — 서버리스 ETL
└── EMR — 대규모 배치 처리 (Spark, Hadoop)
쿼리 / 분석
├── Athena — S3 직접 SQL 쿼리 (서버리스)
├── Redshift — 대용량 데이터 웨어하우스 쿼리
└── Managed Service for Apache Flink — 실시간 스트림 처리와 분석
시각화
└── QuickSight — BI 대시보드
2. Amazon Athena
핵심 개념
Athena는 S3에 저장된 데이터를 서버리스로 SQL 쿼리하는 서비스다. 인프라 관리 없이, 쿼리한 데이터 스캔 양만큼 비용을 낸다.
S3 (CSV, JSON, Parquet, ORC, Avro 등)
→ Athena SQL 쿼리
→ 결과 반환 (S3에 저장)
과금 방식
스캔한 데이터 1TB당 $5
→ 비용 절감 핵심: 스캔 데이터 줄이기
비용 최적화
컬럼형 포맷 (Parquet, ORC) 사용
CSV 1TB → Parquet 변환 → 실제 쿼리 스캔 100GB (90% 절감)
이유: 필요한 컬럼만 스캔 (컬럼 pruning)
높은 압축률
파티셔닝
S3 경로 구조:
s3://bucket/logs/year=2026/month=04/day=22/
쿼리:
WHERE year='2026' AND month='04'
→ 해당 파티션만 스캔 → 비용·속도 대폭 개선
압축
Gzip, Snappy, Zstd 압축 → 스캔 데이터 감소 → 비용 절감
Parquet + Snappy 조합 권장
Athena Federated Query
S3 외 다른 소스도 Athena로 쿼리 가능
→ Lambda 데이터 소스 커넥터 사용
지원 소스:
RDS, Aurora, DynamoDB, Redshift,
ElasticSearch, CloudWatch Logs, 온프레미스 DB
Athena ACID (Iceberg 테이블)
Apache Iceberg 테이블 포맷 사용 시:
→ INSERT, UPDATE, DELETE 지원
→ ACID 트랜잭션
→ 타임 트래블 (과거 데이터 조회)
SAP 핵심: S3 데이터 임시·간헐적 쿼리 = Athena (서버리스, 스캔 과금) / 지속적 대용량 분석 = Redshift
3. Amazon EMR (Elastic MapReduce)
핵심 개념
EMR은 Apache Spark, Hadoop, Hive, Presto 등 오픈소스 빅데이터 프레임워크를 관리형으로 실행하는 서비스다.
EMR 클러스터
├── 마스터 노드 (1개): 클러스터 관리, 작업 조율
├── 코어 노드 (N개): 데이터 처리 + HDFS 저장
└── 태스크 노드 (N개): 데이터 처리만 (스팟 활용)
지원 프레임워크
- Spark: 인메모리 대용량 처리, ML (MLlib)
- Hadoop MapReduce: 디스크 기반 배치
- Hive: SQL 유사 쿼리 (HiveQL)
- Presto: 인터랙티브 SQL (빠른 응답)
- HBase: NoSQL 컬럼 스토어
EMR 스토리지 옵션
HDFS (Hadoop Distributed File System)
→ 코어 노드 로컬 디스크에 분산 저장
→ 클러스터 종료 시 데이터 소멸
→ 처리 중 임시 데이터에 적합
EMRFS (EMR File System, S3 기반)
→ S3를 HDFS처럼 사용
→ 클러스터 종료 후에도 데이터 보존
→ 비용 효율 (클러스터와 스토리지 독립)
→ 권장 방식
EMR 비용 최적화
태스크 노드에 스팟 인스턴스 활용
→ 코어 노드: 온디맨드 (안정성)
→ 태스크 노드: 스팟 (최대 90% 절감)
임시 클러스터 (Transient Cluster)
→ 작업 완료 후 자동 종료
→ 실행 시간만큼만 과금
영구 클러스터 (Persistent Cluster)
→ 지속 실행 (대화형 분석, 실시간 처리)
EMR Serverless
클러스터 관리 없이 Spark·Hive 작업 실행
→ 워크로드에 따라 자동 확장·축소
→ 클러스터 시작 대기 없음
→ 사용한 vCPU·메모리 시간만큼 과금
SAP 핵심: ML·복잡한 변환·Spark = EMR / 간단한 S3 SQL 쿼리 = Athena
4. Amazon Redshift
핵심 개념
Redshift는 페타바이트 규모의 데이터 웨어하우스다. 컬럼형 스토리지, 병렬 처리로 대용량 분석 쿼리에 최적화되어 있다.
데이터 소스
├── S3 (COPY 명령)
├── DynamoDB
├── Kinesis Firehose
└── DMS (DB 마이그레이션)
→ Redshift 클러스터
→ SQL 분석 쿼리
→ QuickSight, Tableau 등
핵심 아키텍처
리더 노드 (Leader Node)
→ SQL 수신, 실행 계획 수립, 결과 집계
컴퓨트 노드 (Compute Node) × N개
→ 실제 데이터 저장·처리 (병렬)
→ 노드 내 슬라이스 단위로 분산
분산 스타일 (Distribution Style)
| 스타일 | 설명 | 사용 시나리오 |
|---|---|---|
| EVEN | 라운드 로빈 균등 분산 | 조인 없는 테이블 |
| KEY | 특정 컬럼 값 기준 분산 | 자주 조인하는 컬럼 |
| ALL | 모든 노드에 전체 복사 | 소규모 차원 테이블 |
| AUTO | Redshift가 자동 선택 | 기본값 |
정렬 키 (Sort Key)
자주 WHERE 조건에 쓰는 컬럼을 정렬 키로 설정
→ 해당 범위만 스캔 (Zone Map 활용)
→ 쿼리 성능 대폭 향상
Redshift Spectrum
Redshift에서 S3 데이터 직접 쿼리 (외부 테이블)
→ Redshift 클러스터에 데이터 로드 없이 S3 쿼리
→ Redshift 내부 테이블과 S3 데이터 조인 가능
→ Glue Data Catalog 사용
Athena vs Redshift Spectrum
Athena: 클러스터 없음, 순수 서버리스
Redshift Spectrum: Redshift 클러스터 필요, 내부 테이블과 조인 가능
Redshift 고가용성
Multi-AZ 배포 (ra3 노드)
→ 두 AZ에 걸쳐 자동 복제
→ AZ 장애 시 자동 페일오버
스냅샷 (자동·수동)
→ S3에 저장
→ 크로스 리전 복사 가능 (DR)
→ 새 클러스터로 복원
Redshift Serverless
클러스터 관리 없이 Redshift 사용
→ 쿼리 실행 시 자동으로 용량 확장
→ 사용하지 않을 때 자동 일시 중지
→ 사용한 RPU(Redshift Processing Unit) 초 단위 과금
5. AWS Glue
핵심 개념
Glue는 서버리스 ETL(Extract, Transform, Load) 서비스다. 데이터 소스를 발견하고, 변환하고, 목적지에 적재하는 파이프라인을 관리한다.
소스 (S3, RDS, Redshift, DynamoDB 등)
→ Glue Crawler (스키마 자동 발견)
→ Glue Data Catalog (메타데이터 저장)
→ Glue ETL Job (Spark 기반 변환)
→ 목적지 (S3, Redshift, RDS 등)
Glue Data Catalog
AWS 분석 서비스의 중앙 메타데이터 저장소
→ 테이블 스키마, 파티션 정보, 위치 저장
→ Athena, Redshift Spectrum, EMR이 공유 참조
Glue Crawler:
→ S3, RDS, DynamoDB 등을 자동 스캔
→ 스키마 자동 추론 → Data Catalog에 등록
→ 스케줄 기반 주기 실행 가능
Glue ETL Job
Python Shell (간단한 스크립트)
Spark (대규모 분산 처리)
→ 자동 생성 코드 or 직접 작성
→ 서버리스 (인프라 관리 불필요)
→ Glue Studio: 시각적 ETL 파이프라인 구성
주요 변환 기능
- 포맷 변환: CSV → Parquet
- 중복 제거, 결측값 처리
- 조인, 필터, 집계
- PII 데이터 감지·마스킹
Glue DataBrew
코드 없이 시각적으로 데이터 정제·변환
→ 250+ 사전 정의 변환 함수
→ 데이터 품질 규칙 정의
→ 비개발자도 사용 가능
Glue Workflow
복잡한 ETL 파이프라인 오케스트레이션
→ Crawler → Job → Trigger 조합
→ 조건부 실행, 병렬 처리
→ EventBridge와 연동 가능
6. 실시간 분석: Managed Service for Apache Flink
핵심 개념
Amazon Managed Service for Apache Flink는 Apache Flink 애플리케이션으로 스트리밍 데이터를 처리한다. 이전 이름인 Kinesis Data Analytics가 오래된 자료에 남아 있을 수 있지만, Kinesis Data Analytics for SQL Applications는 2026년 1월 운영이 종료되어 신규 선택지로 안내하지 않는다.
Kinesis Data Streams / Firehose
→ Managed Service for Apache Flink
→ Flink 애플리케이션의 상태 기반 스트림 처리
→ 결과 → Lambda, S3, Kinesis, Redshift
두 가지 방식
| 방식 | 언어 | 특성 |
|---|---|---|
| Managed Service for Apache Flink | Java, Python, Scala, SQL 등 | 상태 관리와 복잡한 스트림 처리 |
사용 시나리오
실시간 이상 탐지:
클릭 스트림 → Managed Flink → 비정상 패턴 감지 → Lambda 알림
실시간 집계:
IoT 센서 데이터 → Managed Flink → 5분 평균 계산 → 대시보드
실시간 필터:
로그 스트림 → Managed Flink → ERROR만 필터 → S3 저장
7. Amazon QuickSight
핵심 개념
QuickSight는 서버리스 BI(Business Intelligence) 도구다. 데이터 소스를 연결해 대화형 대시보드와 시각화를 만든다.
데이터 소스:
Athena, Redshift, S3, RDS, Aurora,
Salesforce, Jira, Twitter 등
→ QuickSight SPICE (인메모리 엔진)
→ 대화형 대시보드·차트
→ 공유 (사용자, 임베디드)
SPICE (Super-fast Parallel In-memory Calculation Engine)
데이터를 SPICE에 가져와 인메모리 캐싱
→ 원본 DB 부하 없이 빠른 응답
→ 사용자당 10GB 할당
→ 정기 새로고침 설정 가능
ML 인사이트
Anomaly Detection: 비정상 데이터 포인트 자동 탐지
Forecasting: 과거 데이터 기반 예측
Auto-narratives: 자연어로 차트 설명 자동 생성
임베디드 분석
QuickSight 대시보드를 웹 애플리케이션에 임베드
→ API로 URL 생성 → iFrame으로 삽입
→ 사용자별 행 수준 보안 (RLS) 적용 가능
8. 데이터 레이크 아키텍처 패턴
패턴 1: 기본 데이터 레이크
[수집]
S3 이벤트 / Kinesis Firehose → S3 (원시 데이터, Raw Zone)
[변환]
Glue Crawler → Data Catalog (스키마 등록)
Glue ETL → S3 (정제 데이터, Processed Zone, Parquet)
[분석]
Athena → S3 Processed Zone 쿼리
Redshift Spectrum → S3 + Redshift 혼합 쿼리
[시각화]
QuickSight → Athena / Redshift 연결
패턴 2: 실시간 + 배치 혼합 (Lambda 아키텍처)
[실시간 경로 (Speed Layer)]
데이터 → Kinesis Streams
→ Managed Service for Apache Flink (실시간 집계)
→ DynamoDB / ElasticSearch (실시간 서빙)
[배치 경로 (Batch Layer)]
데이터 → S3 (원시 저장)
→ Glue ETL (일별 배치)
→ Redshift (분석)
[서빙 레이어]
QuickSight → Redshift + DynamoDB
패턴 3: 데이터 웨어하우스 마이그레이션
온프레미스 DW (Oracle, Teradata)
→ AWS SCT (스키마 변환)
→ DMS (데이터 이전)
→ Redshift
→ Redshift Advisor (성능 최적화 권고)
→ QuickSight (기존 BI 도구 대체)
패턴 4: 서버리스 분석 파이프라인
API Gateway → Kinesis Firehose → S3 (원시)
→ Glue Crawler (스키마 자동 탐지)
→ Glue ETL (Parquet 변환, 파티셔닝)
→ Athena (쿼리)
→ QuickSight (대시보드)
완전 서버리스: 서버 관리 없음, 사용량 기반 과금
9. 서비스 선택 기준 정리
분석 쿼리 도구 선택
| 요구사항 | 선택 |
|---|---|
| S3 데이터 간헐적 SQL 쿼리, 서버리스 | Athena |
| 지속적 대용량 DW 쿼리 | Redshift |
| Redshift에서 S3 데이터도 조인 | Redshift Spectrum |
| 실시간 스트림 분석 | Managed Service for Apache Flink |
| 복잡한 Spark 기반 대용량 처리 | EMR |
| 서버리스 Spark/Hive | EMR Serverless or Glue ETL |
ETL 도구 선택
| 요구사항 | 선택 |
|---|---|
| 서버리스 ETL, Spark | Glue ETL |
| 코드 없는 시각적 데이터 정제 | Glue DataBrew |
| Hadoop·Spark·HBase 고급 설정 | EMR |
| 스트림 → S3/Redshift 적재 | Kinesis Firehose |
10. 핵심 암기 포인트
| 키워드 | 선택 |
|---|---|
| S3 데이터 서버리스 SQL | Athena |
| Athena 비용 절감 | Parquet + 파티셔닝 |
| 페타바이트 데이터 웨어하우스 | Redshift |
| Redshift에서 S3 직접 쿼리 | Redshift Spectrum |
| Redshift 서버리스 | Redshift Serverless |
| 대규모 Spark 배치 처리 | EMR |
| EMR 비용 절감 | 태스크 노드 스팟 + EMRFS(S3) |
| 서버리스 ETL 파이프라인 | AWS Glue |
| 메타데이터 중앙 저장소 | Glue Data Catalog |
| 스키마 자동 탐지 | Glue Crawler |
| 실시간 스트림 처리 | Managed Service for Apache Flink |
| 복잡한 스트림 처리 (상태 관리) | Managed Service for Apache Flink |
| BI 대시보드, 서버리스 | QuickSight |
| QuickSight 인메모리 캐싱 | SPICE |
| 완전 서버리스 분석 파이프라인 | Firehose → S3 → Glue → Athena → QuickSight |
핵심 내용을 다시 정리하면
- Athena: S3 직접 SQL, 서버리스, 스캔 과금 → Parquet+파티셔닝으로 비용 절감
- EMR: Spark·Hadoop 관리형, 태스크 노드 스팟 + EMRFS로 비용 최적화
- Redshift: 페타바이트 DW, 컬럼형 스토리지, Spectrum으로 S3 확장
- Glue: 서버리스 ETL, Data Catalog로 Athena·EMR·Redshift 메타데이터 공유
- Managed Service for Apache Flink: 상태 관리 기반 실시간 스트림 처리
- QuickSight: 서버리스 BI, SPICE 인메모리, 임베디드 분석