클라우드/AWS

데이터 분석을 위한 AWS 서비스

codingreewon 2026. 7. 20. 02:56

(Stephane Maarek의 Udemy AWS Certified Solutions Architect Associate 강의를 참고했습니다.)

1. Amazon Athena

Athena는 S3에 저장된 데이터를 서버리스 환경에서 SQL로 직접 조회하고 분석할 수 있는 서비스이다. 즉, S3에 저장된 파일을 대상으로 표준 SQL을 실행하여 데이터를 분석할 수 있다. 오픈소스 분산 SQL 엔진인 Presto를 기반으로 동작하며, 대용량 데이터도 빠르게 분석 가능하다. CSV, JSON, ORC, Avro, Parquet 등 다양한 파일 형식을 지원하며, 조회한 데이터의 양을 기준으로 1TB 스캔당 5달러의 비용이 부과된다. 데이터 시각화 툴인 Amazon Quicksight와 자주 사용되며, 비즈니스 분석, 로그 분석 등을 위해 자주 사용한다.

 

Athena가 스캔한 데이터 양에 따라 비용이 발생하므로, 성능을 높이고 스캔량을 줄이는 것이 중요하다. 그 방법 중 하나는 적은 스캔을 위해 컬럼형 데이터 형식을 사용하는 것이다. CSV는 모든 컬럼을 읽어야 하는 경우가 많지만, Parquet나 ORC는 필요한 컬럼만 읽을 수 있다. 따라서 Parquet와 ORC 사용을 권장하며, AWS Glue를 이용해 CSV 데이터를 Parquet나 ORC로 변환할 수 있다.

 

 또한 스캔해야 하는 데이터의 양을 줄이기 위해 gzip, bzip2, lz4 등의 형식으로 파일을 압축하는 방법도 있으며, S3의 디렉터리 구조를 이용하여 Partition을 구성하는 것도 성능 최적화에서 가장 중요한 기능 중 하나이다. 또한 너무 작은 파일이 많으면 파일을 여는 오버헤드가 증가하므로 128MB 이상의 큰 파일 사용을 권장한다.

 

Athena는 기본적으로 S3에 저장된 데이터를 조회하지만, Athena Federated Query를 사용하면 RDS, DynamoDB, 온프레미스 데이터베이스 등 S3 외부 데이터도 SQL로 조회할 수 있다. Federated Query는 Data Source Connector를 사용해 외부 데이터와 연결하며, 이 Connector는 AWS Lambda 위에서 실행된다. Federated Query의 실행 결과는 S3에 저장되어 결과를 다시 Athena나 QuickSight에서 활용할 수 있다.

2. Amazon Redshift

Redshift는 대규모 데이터를 분석하기 위한 완전관리형 데이터 웨어하우스 서비스이다. PostgreSQL을 기반으로 개발되었지만, 일반적인 관계형 데이터베이스처럼 온라인 트랜잭션 처리(OLTP)를 위한 서비스가 아니라 온라인 분석 처리(OLAP)에 최적화되어 있다. 즉, 대량의 데이터를 빠르게 집계하고 분석하여 비즈니스 인사이트를 얻기 위한 분석용 데이터베이스이다.

 

Redshift는 페타바이트(PB) 규모의 데이터까지 처리할 수 있도록 설계되었으며, 기존 데이터 웨어하우스보다 최대 10배 높은 성능을 제공하도록 최적화되어 있다. 일반적인 관계형 데이터베이스가 행 단위로 데이터를 저장하는 것과 달리, 아래 예시와 같이 열 단위로 데이터를 저장한다.

ID     : 1, 2
Name   : Kim, Lee
Age    : 25, 30

 

 

병렬 처리 구조라 빠르게 대용량 데이터를 처리할 수 있으며, 표준 SQL을 지원하고 Quicksight나 Tableau와 같은 다양한 BI 도구와 쉽게 연동할 수 있다. Athena보다 JOIN, 집계 작업에서 뛰어난 성능을 보인다.

Redshift Cluster

 

Redshift는 사용자가 미리 클러스터를 생성하고 인스턴스 유형과 개수를 선택하는 Provisioned Cluster와 클러스터를 직접 관리하지 않아도 되는 Serverless Cluster 2가지 방식을 제공한다. 클러스터는 SQL 해석 및 쿼리 실행 계획을 생성하고 결과를 모아 사용자에게 반환하는 한 개의 리더 노드와 실제 데이터를 저장하고 SQL을 실행하는 여러 개의 연산 노드로 구성된다.

Redshif 스냅샷

 

Redshift는 데이터를 보호하기 위해 특정 시점의 백업 데이터를 S3에 저장하는 스냅샷 기능을 제공한다. 이때 Redshift 스냅샷은 변경된 데이터만 저장하기 때문에 저장 공간과 백업 시간을 줄인다. 스냅샷을 이용하면 새로운 클러스터를 생성하여 데이터를 복원할 수 있다. 자동 스냅샷은 8시간마다 혹은 5GB이상의 조건 중 하나를 만족하면 생성되며, 사용자 지정 스케줄을 따르는 것도 가능하다. 보관 기간은 1~35일 사이에서 설정할 수 있다. 수동 스냅샷은 사용자가 삭제할 때까지 계속 보관된다.

Redshift에 데이터를 수집하는 방법

 

그렇다면 Redshift로 데이터를 어떻게 수집할까? 총 세 가지 방법이 있는데, 첫 번째는 Kinesis Data Firehose를 사용하는 방법이다. copy 명령어를 이용해 S3에 수동으로 입력하는 것도 가능하며, 큰 묶음의 데이터를 Redshift에 넣고 싶은 경우 JDBC 드라이버를 사용할 수도 있다.

Redshift Spectrum

 

Redshift의 멋진 기능 중 하나는 Redshift Spectrum이다. S3에 데이터가 있고, Redshift를 이용해 분석하고 싶지만, Redshift로 로드하고 싶지는 않을 때 사용하는 기능이다. 또한 더 많은 처리 능력을 사용하고 싶을 때 사용할 수 있다. 쿼리를 시작할 수 있는 클러스터가 이미 있어야 하며, 쿼리를 시작하면 해당 쿼리가 S3에 있는 수천 개의 Redshift Spectrum 노드로 전달된다.

3. Amazon OpenSearch Service

Amazon OpenSearch Service는 대용량 데이터를 빠르게 검색, 분석, 시각화할 수 있는 AWS의 완전관리형 검색 및 분석 서비스이다. 과거에는 Amazon Elasticsearch Service라는 이름으로 제공되었지만, 현재는 Amazon OpenSearch Service로 변경되었다. DynamoDB와 같은 일반적인 데이터베이스에서는 기본키나 인덱스를 활용한 조회는 매우 빠르지만, 검색에는 한계가 있다. OpenSearch는 단어 일부만 입력해도 검색할 수 있으며, 모든 필드를 대상으로 빠른 검색을 수행하기 위한 서비스이다.

 

OpenSearch는 보통 단독으로 사용하지 않고 다른 데이터베이스와 함께 사용한다. 예를 들어, 데이터 저장은 RDS나 DynamoDB가, 검색은 OpenSearch가 담당하는 방식이다. 마찬가지로 사용자가 클러스터를 생성하여 운영하는 Managed Cluster 방식과 클러스터를 직접 관리하지 않아도 되는 Serverless 방식을 지원한다.

 

기본적으로 SQL을 지원하지 않지만 SQL 플러그인을 활성화하면 SQL 문법으로도 조회 가능하다. Kinesis Data Firehose, AWS IoT, CloudWatch Logs 등에서 데이터를 수집하며, IAM과 Cognito, KMS 암호화, TLS 암호화 등으로 보안 기능을 수행한다. OpenSearch Dashboards라는 시각화 도구도 제공한다.

 

4. EMR

EMR은 Elastic MapReduce라는 의미로, 대규모 데이터를 저장하고 처리하기 위한 빅데이터 분석 플랫폼이다. Hadoop뿐만 아니라 Apache Spark, HBase, Presto, Flink 등 다양한 오픈소스 빅데이터 프레임워크를 AWS에서 쉽게 실행할 수 있도록 제공하는 완전관리형 서비스이다.

 

EMR은 클러스터 생성과 운영을 자동으로 수행하며, 작업량에 따라 클러스터 규모를 자동으로 조절할 수 있다. 또한 EC2 스팟 인스턴스와 통합되어 비용을 절감할 수 있다. 대표적인 활용 사례로는 데이터 처리, 머신러닝, 웹 인덱싱, 빅데이터 분석 등이 있다.

 

EMR 클러스터는 역할에 따라 세 가지 유형의 노드로 구성된다. 우선 마스터 노드는 클러스터의 관리자 역할을 수행한다. 클러스터 관리, 작업 스케일링, 노드 상태 확인 및 작업 분배 등의 역할을 수행하며 클러스터가 실행되는 동안 계속 유지되는 장기 실행 노드이다. Core Node는 데이터 저장과 작업 수행을 동시에 담당하는 핵심 노드로, 역시 장기간 실행된다. 마지막으로 Task Node는 연산만 수행하는 선택적인 노드이다. 데이터를 따로 저장하지 않고 계산 작업만 수행하며 필요 시 추가할 수 있다. 일반적으로 비용 절감을 위해 스팟 인스턴스를 사용한다.

 

EMR 클러스터는 다음의 구매 옵션을 제공한다.

  • On-Demand: 가장 일반적인 방식으로, 언제든 사용 가능하며 종료되지 않는 가장 안정적인 방식이다.
  • Reserved Instance: 1년 이상 장기간 사용할경우 비용을 절감할 수 있는 방식으로, EMR은 사용 가능한 Reserved Instance가 있으면 자동으로 활용한다.
  • Spot Instance: 비용이 가장 저렴하지만 AWS의 용량 상황에 따라 중단될 수 있다.

EMR 클러스터는 목적에 따라 지속적으로 실행하거나 작업이 끝나면 자동 종료되는 임시 클러스터로 운영할 수 있다.

5. Amazon QuickSight

Amazon QuickSight 통합

 

QuickSight는 AWS에서 제공하는 서버리스 BI 서비스로, 기업이 보유한 다양한 데이터를 시각화하여 대시보드와 리포트를 생성하고 비즈니스 인사이트를 얻을 수 있도록 지원한다. 또한 머신러닝 기능이 내장되어 있어 데이터 이상 징후 탐지, 예측 등 고급 분석도 수행할 수 있다. 사용량에 따라 자동으로 확장되므로 대규모 사용자도 안정적으로 지원할 수 있다.

 

QuickSight는 세션 기반 과금을 지원한다. 즉, 사용자가 실제로 대시보드에 접속해 이용한 횟수에 따라 비용이 부과된다. 또한 QuickSight에서 만든 대시보드를 웹 애플리케이션이나 포털에 임베드할 수 있으며, RDS, Aurora, Athena, Redshift, S3 등의 AWS 서비스와 쉽게 연동된다. QuickSight의 핵심 기능 중 하나는 SPICE로, 데이터를 내부 메모리에 저장하여 분석하는 인메모리 엔진이다. Enterprise 에디션에서는 Column-Level Security(CLS), 즉 컬럼 단위의 접근 권한 제어 기능을 제공한다.

 

QuickSight에서는 자체적인 사용자 관리 기능을 제공하는데, 이때 QuickSight에서 생성하는 사용자와 그룹은 IAM 사용자와는 별개의 개념이다. Standard Edition에서는 사용자만, Enterprise Edition에서는 사용자와 그룹 모두 지원한다. QuickSight에서 Analysis는 데이터를 자유롭게 분석하고 편집하는 분석 화면이고, Dashboard는 Analysis를 게시하여 만든 읽기 전용 화면이다. Analysis에서 설정한 필터, 매개변수, 정렬 등의 설정 내용을 그대로 유지한다. Analysis와 대시보드는 사용자나 그룹에 공유할 수 있으며, 대시보드를 공유하기 위해서는 게시가 선행되어야 한다.

6. AWS Glue

AWS Glue

 

AWS Glue는 관리형 ETL(Extract, Transform, and Load) 서비스로, 데이터를 분석에 적합하게 준비 및 변환하는 데에 유용하다. 완전한 서버리스 서비스이다.

AWS Glue Data Catalog

 

Glue Data Catalog는 Glue 데이터 크롤러를 실행해 S3, RDS, DynamoDB, 온프레미스에서 데이터를 크롤링하고, 모든 메타 데이터를 기록하는 기능이다. 따라서 ETL을 수행하기 위한 모든 데이터베이스, 테이블의 메타 데이터를 갖게 되는 것이다. Athena나 Redshift Spectrum, EMR 등의 서비스에서 데이터와 스키마를 검색할 때 백그라운드에서 이 Glue Data Catalog를 활용한다. 즉, Glue Data Catalog는 다른 여러 AWS 서비스의 중심 역할을 한다.

 

Glue는 다음과 같은 여러 고급 기능들을 제공한다.

  • Glue Job Bookmark: 새 ETL 작업을 실행할 때 이전 데이터의 재처리를 방지하는 기능
  • Glue DataBrew: 사전 빌드된 변환 기능을 통해 코드를 작성하지 않고 데이터를 정제 및 변환할 수 있는 기능
  • Glue Studio: Glue의 ETL 작업을 GUI로 생성, 실행, 관리할 수 있는 도구
  • Glue Streaming ETL: 실시간 데이터를 지속적으로 처리할 수 있는 ETL 기능

7. AWS LakeFormation

LakeFormation

 

Lake Formation데이터 레이크를 쉽고 빠르게 구축하고 관리할 수 있도록 지원하는 완전관리형 서비스다. 여러 시스템에 흩어져 있는 데이터를 모아 분석에 활용할 수 있도록 하며, 데이터 수집부터 정제, 변환, 카탈로그 관리, 접근 제어까지 데이터 레이크 구축에 필요한 작업을 자동화한다. 또한 AWS Glue를 기반으로 동작하기 때문에 Glue의 데이터 카탈로그와 ETL 기능을 활용하면서 데이터 레이크를 효율적으로 운영할 수 있다.

 

CSV, 관계형 데이터베이스 같은 정형 데이터와 이미지, 동영상, 로그 파일, 문서 등의 비정형 데이터 모두를 저장할 수 있으며, 자주 사용하는 데이터 소스를 쉽게 연결할 수 있도록 청사진을 제공하여 복잡한 설정 없이 데이터 수집 파이프라인을 빠르게 구축할 수 있다. 또한 행 단위와 열 단위의 접근 권한을 세밀하게 설정할 수 있다.

8. Amazon Managed Service for Apache Flink

Amazon 관리형 서비스 Flink

 

Flink는 실시간 데이터 스트림을 처리하기 위한 분산 처리 프레임워크다. Java, Scala, SQL 등을 이용해 스트리밍 데이터를 분석하고 변환할 수 있다. 예를 들어, 실시간 로그 분석, IoT 센서 데이터 처리, 금융 거래 분석, 실시간 이상 탐지 등과 같은 스트리밍 애플리케이션을 개발할 수 있다.

 

AWS의 관리형 서비스에서 Flink 애플리케이션을 실행할 수 있다. 이 서비스를 이용하면 컴퓨팅 자원을 자동 프로비저닝할 수 있고, 병렬 연산과 오토 스케일링도 가능하다. 체크포인트와 스냅샷으로 구현되는 애플리케이션 백업도 지원되며, Flink 프로그래밍 기능을 사용할 수도 있다. 이때, Kinesis Data Streams나 Amazon MSK의 데이터는 읽지만, SQL을 사용하는 Kinesis Data Firehose의 데이터는 읽어올 수 없다.

9. Amazon MSK (Amazon Managed Streaming for Apache Kafka)

Amazon MSK

 

Apache Kafka는 대용량의 실시간 데이터를 안정적으로 수집하고 전달하기 위한 오픈소스 스트리밍 플랫폼이다. 하지만 직접 Kafka를 구축하려면 실제 메시지를 저장하고 전달하는 서버인 브로커와 클러스터 상태 및 브로커를 관리하는 서버인 ZooKeeper 관리, 클러스터 구성, 장애 복구 등 많은 운영 작업이 필요하다. Amazon MSK는 이러한 운영 작업을 AWS가 대신 수행하는 완전관리형 서버리스 Apache Kafka 서비스이다.

 

MSK는 Kinesis의 대안으로 자주 언급된다. MSK 클러스터는 사용자의 VPC 내부에 배포되며, 최대 3개의 가용 영역에 걸쳐 배포하여 높은 가용성을 제공한다. 또한 Kafka의 메시지는 EBS에 저장되어 사용자가 원하는 기간동안 데이터를 유지할 수 있으며, 보존 기간을 설정하여 메시지를 관리할 수 있다.

 

실시간 스트리밍 데이터를 수집 및 처리하기 위한 서비스라는 점에서 Kinesis Data Stream과 비슷하지만, 내부 구조와 확장 방식, 지원 기능에서 차이가 있다.

항목 Kinesis Data Streams Amazon MSK
메시지 크기 최대 1MB 기본 1MB, 설정을 통해 10MB 이상으로 확장 가능
데이터 구성 Stream + Shard Topic + Partition
확장 방식 Shard를 분할 또는 병합 가능 Partition은 추가만 가능 (삭제 및 병합 불가)
전송 중 암호화 TLS 지원 PlainText 또는 TLS 선택 가능
저장 시 암호화 AWS KMS 지원 AWS KMS 지원