분석 서비스

S3와 Kinesis에서 수집한 데이터를 Glue와 Athena로 처리해 분석과 시각화로 연결하는 흐름

분석 파이프라인은 쿼리 도구와 데이터 처리 엔진, 저장소, 시각화 계층을 나눠 설계한다. 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 인메모리, 임베디드 분석

공식 문서

이어 읽기: 19. Well-Architected 여섯 필러로 설계 검토하기