새발블로그

[AWS SAA] 분석 / 데이터 처리 본문

자격증/SAA

[AWS SAA] 분석 / 데이터 처리

EUG 2026. 6. 23. 00:02

Kinesis

Kinesis 개요

  • Kinesis는 실시간 스트리밍 데이터를 수집, 처리, 분석하는 AWS 서비스 모음
  • 클릭스트림, 로그, IoT 이벤트, 애플리케이션 이벤트, 비디오 스트림 등을 처리할 때 사용
  • 실시간 또는 준실시간 데이터 파이프라인 구성에 적합
  • 목적에 따라 Kinesis Data Streams, Kinesis Data Firehose, Managed Service for Apache Flink, Kinesis Video Streams를 구분해서 선택

Kinesis Data Streams

핵심 개념

  • Kinesis Data Streams는 실시간 스트리밍 데이터를 수집하고 여러 소비자에게 전달하는 서비스
  • 생산자는 데이터를 스트림에 넣고, 소비자는 스트림에서 데이터를 읽어 처리
  • 여러 소비자가 같은 스트림 데이터를 독립적으로 읽을 수 있음
  • Lambda, KCL 애플리케이션, Managed Service for Apache Flink, Kinesis Data Firehose 등이 소비자로 사용될 수 있음
  • 실시간 처리, 실시간 대시보드, 로그 수집, 클릭스트림 처리, IoT 이벤트 처리에 적합
  • 정적인 파일 저장소가 아니라 지속적으로 들어오는 스트리밍 데이터 처리에 적합

주요 수치

항목 내용
데이터 보존 기간 기본 24시간, 최대 365일
샤드 1개 쓰기 처리량 초당 1MB 또는 1,000 records
샤드 1개 읽기 처리량 초당 2MB 또는 2,000 records
소비자 Lambda, KCL 애플리케이션, Managed Service for Apache Flink, Firehose 등
  • Kinesis Data Streams의 데이터 보존 기간은 기본 24시간이며 최대 365일까지 늘릴 수 있음
  • 샤드 수를 늘리면 전체 처리량을 확장할 수 있음
  • 여러 소비자가 같은 데이터를 독립적으로 처리해야 하면 SQS보다 Kinesis Data Streams가 더 적합
  • 순서 보장은 파티션 키를 기준으로 같은 샤드 안에서 보장됨

Kinesis Data Firehose

핵심 개념

  • Kinesis Data Firehose는 스트리밍 데이터를 목적지로 전달하는 완전 관리형 전송 서비스
  • S3, Redshift, OpenSearch Service, Splunk, HTTP 엔드포인트 등으로 데이터를 전달할 수 있음
  • 자동 확장을 지원하며, 서버나 샤드를 직접 관리하지 않아도 됨
  • 데이터를 버퍼링한 뒤 목적지로 전달하는 방식
  • 완전한 실시간보다는 준실시간 전송 서비스로 이해하는 것이 안전
  • Lambda를 활용한 데이터 변환을 지원
  • 데이터를 S3에 적재하거나 Redshift/OpenSearch로 전달하는 파이프라인에 자주 사용

Firehose 버퍼링

  • Firehose는 데이터를 일정 크기 또는 일정 시간 동안 버퍼링한 뒤 목적지로 전달
  • 버퍼 크기와 버퍼 간격을 설정할 수 있음
  • 일반적인 버퍼 간격은 목적지와 설정에 따라 달라질 수 있으며, API 기준 최대 900초까지 설정 가능
  • Lambda 데이터 변환을 사용하는 경우 기본 버퍼 간격은 대부분의 대상에서 60초로 동작
  • 따라서 Firehose는 “즉시 처리”가 아니라 “버퍼링 기반 준실시간 전송”으로 정리하는 것이 좋음

Managed Service for Apache Flink

  • 과거 Kinesis Data Analytics for Apache Flink로 불리던 서비스
  • Apache Flink 기반 스트리밍 애플리케이션을 실행하는 관리형 서비스
  • Kinesis Data Streams, Amazon MSK, Kafka 등 스트리밍 소스의 데이터를 실시간으로 처리할 수 있음
  • 실시간 집계, 윈도우 분석, 이상 탐지, 시계열 분석, 스트리밍 ETL에 적합
  • SQL 또는 Apache Flink 애플리케이션으로 스트리밍 데이터를 처리할 수 있음
  • 단순 전송은 Firehose, 복잡한 실시간 스트림 처리는 Managed Service for Apache Flink를 고려

Kinesis Video Streams

  • Kinesis Video Streams는 카메라, 센서, IoT 디바이스에서 비디오 스트림을 수집, 저장, 처리하는 서비스
  • 보안 카메라, 스마트 홈, 산업용 카메라, 영상 분석 애플리케이션 등에 사용
  • 비디오 데이터를 안전하게 수집하고, 재생하거나 분석할 수 있음
  • 영상 기반 머신러닝 분석이나 실시간 영상 처리 파이프라인에 활용 가능
  • 날씨 예측보다는 비디오 스트리밍 수집과 분석이 핵심 사용 사례

Kinesis 데이터 흐름 패턴

장기 보관이 필요한 스트리밍 데이터

[Producer] → [Kinesis Data Streams] → [Kinesis Data Firehose] → [S3]
  • Kinesis Data Streams에서 실시간 처리를 수행하고, Firehose를 통해 S3에 장기 보관 가능
  • 30일 이상 장기 보관이 필요하면 최종 저장소는 S3를 고려
  • Data Streams 자체도 최대 365일 보관 가능하지만, 장기 데이터레이크 저장과 분석에는 S3가 더 적합

로그 데이터를 Redshift로 준실시간 적재

[Producer] → [Kinesis Data Streams] → [Kinesis Data Firehose] → [S3] → [Redshift]
  • Firehose는 Redshift 대상으로 데이터를 적재할 수 있음
  • Redshift 적재 시 Firehose는 일반적으로 S3를 중간 저장소로 사용한 뒤 Redshift COPY 방식으로 적재
  • 거의 실시간 분석이 필요하면 Firehose 대상에 Redshift를 구성
  • S3에 원천 데이터를 남기고 Redshift에서 분석할 수 있음

SQS vs Kinesis Data Streams

항목 SQS Kinesis Data Streams
목적 비동기 작업 큐 실시간 스트리밍 데이터 처리
컨슈머 모델 메시지를 소비하면 큐에서 삭제 여러 소비자가 같은 스트림 데이터를 독립적으로 읽기 가능
데이터 유형 개별 작업 메시지 연속적인 대량 이벤트 스트림
메시지/데이터 보존 최대 14일 기본 24시간, 최대 365일
순서 FIFO 큐에서 메시지 그룹 기준 순서 보장 같은 파티션 키 기준 순서 보장
주요 사용 사례 작업 분산, 비동기 처리, 재처리 클릭스트림, 로그, IoT, 실시간 분석
  • 단순 비동기 작업 처리와 재시도가 핵심이면 SQS
  • 여러 소비자가 같은 이벤트 스트림을 읽고 분석해야 하면 Kinesis Data Streams
  • 대량 실시간 이벤트 처리와 스트리밍 분석은 Kinesis가 더 적합

Athena

핵심 개념

  • Athena는 S3에 저장된 데이터를 SQL로 직접 쿼리할 수 있는 서버리스 쿼리 서비스
  • 인프라를 직접 관리할 필요가 없음
  • 기본적으로 쿼리당 스캔한 데이터 양을 기준으로 과금
  • ELB 로그, VPC Flow Logs, CloudTrail 로그, S3 데이터레이크 분석에 적합
  • Glue Data Catalog의 테이블 메타데이터를 사용해 S3 데이터를 조회할 수 있음
  • 데이터를 미리 Redshift 같은 데이터 웨어하우스에 적재하지 않고도 S3 데이터를 분석할 수 있음

Athena 비용 최적화

  • Athena는 스캔한 데이터 양이 비용에 직접 영향을 줌
  • Parquet 또는 ORC 같은 컬럼형 포맷을 사용하면 스캔량을 줄일 수 있음
  • 압축, 파티셔닝, 컬럼형 포맷 변환을 통해 비용과 성능을 개선할 수 있음
  • 필요한 컬럼만 조회하도록 쿼리를 작성하는 것이 좋음
  • S3 파일 크기와 파티션 설계를 적절히 구성하면 성능과 비용을 함께 개선할 수 있음

Athena Federated Query

  • Federated Query를 사용하면 S3 외의 여러 데이터 소스를 Athena에서 통합 쿼리할 수 있음
  • RDS, DynamoDB, CloudWatch Logs, JDBC 데이터 소스 등과 연동 가능
  • Lambda 기반 데이터 소스 커넥터를 사용
  • 여러 데이터 소스를 하나의 SQL 쿼리로 분석해야 할 때 사용

File Gateway + Athena

  • Storage Gateway의 File Gateway를 통해 온프레미스 파일을 S3에 저장할 수 있음
  • S3에 저장된 파일은 Glue Crawler로 스키마를 추론하고 Glue Data Catalog에 등록 가능
  • 이후 Athena로 해당 데이터를 SQL 분석할 수 있음

Glue

핵심 개념

  • Glue는 서버리스 데이터 통합 및 ETL 서비스
  • ETL은 Extract, Transform, Load의 약자
  • 데이터 추출, 변환, 적재 작업을 자동화하는 데 사용
  • Apache Spark 기반 배치 ETL 작업을 실행할 수 있음
  • Glue Data Catalog를 통해 데이터 소스의 메타데이터를 중앙 관리
  • S3 데이터레이크, Athena, Redshift Spectrum 등과 함께 자주 사용
  • 반복 일정 기반 ETL과 서버리스 데이터 변환에 적합

Glue Streaming ETL

  • Glue는 배치 ETL뿐 아니라 Streaming ETL 작업도 지원
  • Glue Streaming ETL은 Apache Spark Structured Streaming 기반으로 스트리밍 데이터를 처리
  • Kinesis Data Streams, Kafka, Amazon MSK 같은 스트리밍 소스를 처리할 수 있음
  • 다만 시험 관점에서는 “완전한 실시간 초저지연 처리”보다는 “서버리스 ETL/데이터 변환”으로 이해하는 것이 안전
  • 복잡한 실시간 스트림 애플리케이션은 Managed Service for Apache Flink와 비교해서 판단

Glue Data Catalog

  • Glue Data Catalog는 데이터베이스, 테이블, 파티션 등 메타데이터를 중앙 관리하는 카탈로그
  • Athena, Redshift Spectrum, EMR, Glue ETL 등에서 공통 메타데이터 저장소로 사용 가능
  • Glue Crawler를 사용하면 S3 등 데이터 소스를 스캔해 스키마를 자동 추론할 수 있음
  • 수동으로 테이블과 스키마를 정의할 수도 있음
  • Glue + Athena 조합은 S3 데이터레이크 분석에서 자주 사용됨

Glue DataBrew

  • Glue DataBrew는 코드 없이 데이터를 정리하고 정규화하는 시각적 데이터 준비 도구
  • 데이터 정제, 변환, 프로파일링 작업을 GUI 기반으로 수행할 수 있음
  • Recipes를 저장하고 재사용할 수 있음
  • 코딩 없이 데이터 품질 개선과 정제가 필요한 경우 적합

EMR

핵심 개념

  • EMR은 Elastic MapReduce의 약자
  • Apache Spark, Hive, Presto, Flink, Hadoop 등 오픈소스 빅데이터 프레임워크를 실행하는 관리형 클러스터 서비스
  • 대규모 분산 처리, 빅데이터 분석, 장시간 Spark/Hive 작업에 적합
  • 클러스터 기반으로 세밀한 제어가 필요한 경우 사용
  • 장시간 실행되거나 복잡한 Spark 워크로드, 대규모 ML 전처리 작업에 적합
  • 비용 최적화를 위해 Spot Instance와 함께 사용하는 경우도 많음

EMR Serverless

  • EMR Serverless는 클러스터를 직접 구성하거나 관리하지 않고 Spark/Hive 같은 분석 애플리케이션을 실행할 수 있는 서비스
  • 워크로드에 따라 리소스를 자동으로 할당
  • 과도하거나 부족한 프로비저닝을 줄이는 데 도움
  • 클러스터 관리 부담 없이 EMR 런타임을 사용하고 싶을 때 적합

EMR vs Glue

항목 Glue EMR
목적 서버리스 ETL, 데이터 통합 대규모 분산 처리 클러스터
운영 부담 낮음 Glue보다 직접 제어할 요소가 많음
실행 모델 서버리스 ETL 작업 중심 Spark/Hive/Flink 등 클러스터 기반 처리
적합한 경우 반복 ETL, 스키마 탐지, 데이터레이크 변환 장시간 대규모 Spark/Hive 작업, 세밀한 클러스터 제어
실시간 처리 Glue Streaming ETL 지원 Flink/Spark Streaming 등 구성 가능
  • 운영 부담 없이 서버리스 ETL을 구성하려면 Glue
  • 클러스터 설정, 프레임워크, 실행 환경을 더 세밀하게 제어하려면 EMR
  • 1시간 이상 걸리는 대규모 Spark/Hive 워크로드나 복잡한 분산 처리는 EMR을 고려
  • 단순 ETL과 Athena용 메타데이터 관리는 Glue가 적합

QuickSight

  • QuickSight는 AWS의 클라우드 기반 BI 서비스
  • BI는 Business Intelligence의 약자
  • 대시보드, 차트, 시각화, 리포트를 생성할 수 있음
  • S3, Athena, Redshift, RDS, OpenSearch Service 등 여러 데이터 소스와 연동 가능
  • 경영진, 운영팀, 마케팅팀, 분석팀을 위한 데이터 시각화에 적합
  • SPICE 엔진을 사용해 데이터를 메모리에 적재하고 빠르게 분석할 수 있음
  • Athena나 Redshift 기반 분석 결과를 시각화하는 데 자주 사용

OpenSearch Service

  • OpenSearch Service는 검색, 로그 분석, 관찰 가능성 분석에 사용하는 관리형 서비스
  • Elasticsearch에서 파생된 OpenSearch 기반 서비스
  • 로그 기반 검색, 전문 검색, 대시보드, 운영 로그 분석에 적합
  • CloudWatch Logs에서 OpenSearch Service로 로그를 거의 실시간 전송하려면 CloudWatch Logs 구독 필터를 사용할 수 있음
  • 애플리케이션 로그, 보안 로그, 운영 이벤트를 검색하고 시각화할 때 사용
  • CloudWatch Logs는 로그 수집과 기본 분석, OpenSearch는 검색과 대시보드 기반 분석에 강점

SageMaker

  • SageMaker는 ML 모델을 구축, 학습, 튜닝, 배포하는 관리형 머신러닝 서비스
  • 데이터 레이블링, 모델 훈련, 하이퍼파라미터 튜닝, 모델 배포, 실시간 추론 엔드포인트 등을 제공
  • 자체 ML 모델을 개발하고 운영해야 할 때 사용
  • 사전 학습된 AI API가 아니라, 사용자가 직접 모델을 학습하거나 배포하는 플랫폼에 가까움
  • 교차 계정 리소스 접근이 필요한 경우 IAM Role과 리소스 정책을 구성하여 접근 가능

AI/ML 서비스

서비스 용도
Rekognition 이미지·비디오 분석, 얼굴 인식, 객체 탐지, 부적절한 콘텐츠 탐지
Comprehend 자연어 처리, 감정 분석, 문서 통찰
Comprehend Medical 의료 텍스트에서 의료 정보 추출
Transcribe 음성 → 텍스트
Polly 텍스트 → 음성
Translate 기계 번역
Lex 대화형 챗봇
Kendra 기업 지식 검색
SageMaker ML 모델 개발·학습·배포
  • 이미지나 비디오 분석은 Rekognition
  • 텍스트 감정 분석과 NLP는 Comprehend
  • 의료 문서에서 의학 정보를 추출해야 하면 Comprehend Medical
  • 음성을 텍스트로 변환하면 Transcribe
  • 텍스트를 음성으로 변환하면 Polly
  • 챗봇을 만들면 Lex
  • 사내 문서나 지식 기반 검색은 Kendra
  • 직접 ML 모델을 만들고 학습, 배포해야 하면 SageMaker

클릭스트림 분석 아키텍처

[사용자 클릭]
      ↓
[API Gateway 또는 애플리케이션]
      ↓
[Kinesis Data Streams]
      ↓
[Kinesis Data Firehose]
      ↓
[S3 데이터 레이크]
      ↓
[Glue ETL / Glue Data Catalog]
      ↓
[Redshift 또는 Athena]
      ↓
[QuickSight]
  • 사용자 클릭 이벤트를 Kinesis Data Streams로 수집
  • Firehose를 통해 S3 데이터 레이크에 준실시간 적재
  • Glue Crawler와 Glue Data Catalog로 스키마 관리
  • Glue ETL로 데이터를 정제하거나 변환
  • Redshift 또는 Athena로 SQL 분석
  • QuickSight로 대시보드 시각화
  • 거의 실시간으로 Redshift 적재가 필요하면 Firehose 대상을 Redshift로 구성
  • S3 원천 데이터를 Glue로 가공한 뒤 Redshift에 적재하면 SQL 분석과 BI 시각화에 활용 가능

S3 Storage Lens / Batch Operations

S3 Storage Lens

  • S3 Storage Lens는 S3 사용량, 활동, 비용 최적화 지표를 분석하는 기능
  • 여러 계정과 여러 버킷의 S3 스토리지 현황을 파악할 수 있음
  • 버전 관리, 복제, 미완료 멀티파트 업로드, 암호화 상태 등 운영 지표를 확인하는 데 도움
  • 암호화되지 않은 객체 수 같은 스토리지 보안·운영 지표를 파악할 수 있음
  • Storage Lens는 분석 도구이며, 객체를 직접 일괄 수정하는 기능은 아님

S3 Batch Operations

  • 기존 객체에 대해 일괄 작업을 수행하려면 S3 Batch Operations를 사용
  • 객체 복사, 태그 변경, ACL 변경, Object Lock 보존 설정, Glacier 복원 등 대량 작업에 사용
  • Storage Lens나 Inventory로 현황을 파악한 뒤 Batch Operations로 일괄 처리를 수행하는 흐름이 가능

분석 서비스 비교

시나리오 적합한 서비스
S3 데이터를 SQL로 직접 쿼리 Athena
S3 데이터레이크 메타데이터 관리 Glue Data Catalog
ETL, 스키마 탐지, 데이터 변환 Glue
코드 없는 데이터 정리 Glue DataBrew
실시간 데이터 수집과 다중 소비자 처리 Kinesis Data Streams
스트리밍 데이터를 S3/Redshift/OpenSearch로 전달 Kinesis Data Firehose
복잡한 실시간 스트림 처리 Managed Service for Apache Flink
비디오 스트림 수집과 저장 Kinesis Video Streams
BI 대시보드 QuickSight
대규모 Spark/Hive 클러스터 처리 EMR
서버리스 Spark/Hive 실행 EMR Serverless
로그 기반 검색과 분석 OpenSearch Service
ML 모델 학습·배포 SageMaker
데이터 웨어하우스 Redshift
S3 사용량·활동 분석 S3 Storage Lens
S3 객체 일괄 처리 S3 Batch Operations

'자격증 > SAA' 카테고리의 다른 글

[AWS SAA] 배포 / 인프라 자동화  (0) 2026.06.23
[AWS SAA] 재해복구 / 마이그레이션  (0) 2026.06.23
[AWS SAA] 비용 최적화  (0) 2026.06.22
[AWS SAA] 서버리스  (0) 2026.06.22
[AWS SAA] 애플리케이션 통합  (0) 2026.06.22