참고
Amazon 데이터 분석
Amazon Athena
NOTE
서버리스 방식의 대화형 분석 서비스!
일반적인 흐름
•
데이터 분석을 위해서는 표준 SQL 언어로 파일을 쿼리 해야함
•
스캔된 데이터의 TB당 고정 가격 지불 형식
•
CSVm JSON, ORC 및 Parquet 지원
•
Athena는 Amazon QuickSight라는 툴과 함께 사용되는 경우가 많다.
•
서버리스 SQL 엔진을 사용한 Amazon S3 데이터 분석 ⇒ Athena
•
임시 쿼리 수행이나 BI 분석 및 보고, AWS 서비스에 발생하는 모든 로그를 쿼리로 분석하는데 사용
◦
VPC Flow 로그
◦
ELB 로그
◦
CloudTrail
•
열 기반 데이터 유형을 사용하여 비용 절감 가능(스캔감소)
◦
Apache Parquet 또는 ORC 권장
◦
Glue를 사용하여 데이터를 Parquet 또는 ORC로 변환
Amazon Redshift
NOTE
데이터베이스이자 분석 엔진, 클라우드에서 관리되는 데이터 웨어하우스!
•
PostgreSQL 기술 기반이지만 온라인 트랜잭션 처리(OLTP)에 사용되지는 않음
•
온라인 분석 처리(OLAP) 유형의 데이터베이스이며 분석과 데이터 웨어하우징에 이용
•
열 기반 데이터 스토리지 사용
•
S3의 임시 쿼리라면 Athena, 쿼리가 많고 복잡하며 집계하는 집중적 데이터 웨어하우스라면 Redshift
Redshift Cluster
•
리더 노드
◦
쿼리 계획, 결과 집계용
•
컴퓨팅 노드
◦
쿼리 수행을 위해 리더에게 결과 전송
•
사전에 노드 크기를 프로비저닝한다.
•
비용 절감을 위해 예약 인스턴스를 사용할 수 있다.
Amazon Redshift - 스냅샷 & 재해복구
NOTE
•
다중 AZ 지원하지 않고 클러스터가 1개의 AZ에 있으므로 재해 복구 전략 적용을 위해 스냅샷 사용해야 한다.
•
스냅샷은 클러스터의 지정 시간 백업으로 Amazon S3 내부에 저장
•
새로운 Redshift 클러스터에 스냅샷 복원 할 수 있음
•
자동이든 수동이든 상관없이 스냅샷을 다른 AWS 리전에 복사하도록 구성 가능
Amazon Redshift - 데이터 주입
NOTE
1.
Amazon Kinesis Data Firehose 사용
•
Firehose가 다양한 소스로부터 데이터를 받아서 Redshift에게 전달한다.
•
S3 버킷에 데이터 씀 ⇒ Kinesis Data Firehose가 S3 복사 명령을 실행에 Redshift에게 전달
2.
S3 복사명령
•
S3에 데이터를 로드하고 Redshift에서 복사 명령을 실행하면 IAM 역할을 사용해 S3 버킷에서 Redshift로 데이터 복사
3.
EC2 Instance JDBC Driver
•
JDBC 드라이버를 사용해 Redshift 클러스터에 데이터 삽입
Amazon OpenSearcher
NOTE
Apache 2.0라이선스 하에 제공되는 분산형 커뮤니티 기반 오픈소스 검색 및 분석 제품!
DynamoDB를 사용하는 경우의 흐름
•
OpenSearch로 부터 부분적으로 일치하는 필드를 포함해 모든 필드 검색이 가능
•
서버리스 서비스가 아니므로 인스턴스에 클러스터를 생성해야 한다.
•
자체 쿼리가 있어 SQL 지원안함
Amazon EMR
NOTE
Elastic MapReduce, 데이터 처리와 대화식 분석 및 기계학습을 위한 솔루션!
•
Hadoop 클러스터(빅 데이터)를 생성하여 방대한 양의 데이터를 분석하고 처리하는데 도움됨!
•
EMR은 Apache Spark, Hbase, Presto .. 와 함께 번들로 제공됨
•
Auto Scaling 및 Spot 인스턴스와 통합
Amazon QuickSight
NOTE
AWS가 제공하는 서버리스 머신러닝 기반 비즈니스 인텔리전스 데이터 시각화 대시보드!
이런걸 만들 수 있다.
•
시각화가 가능하고 빠르며 오토 스케일링 가능
•
RDS, Aurora, Athena 등 다양한 데이터 소스에 연결 가능
•
특정 사용자 또는 그룹과 분석결과 및 대시보드 공유가 가능!
Amazon Glue
NOTE
추출(extract), 변환(transform), 로드(load) 서비스를 관리하여 이를 ETL 서비스라 함!
추출하고 변환하고 뿌린다..
•
분석을 위해 데이터를 준비하고 변환하는데 유용
•
완전 서버리스 서비스
•
Glue 주요 기능
◦
Job Bookmark ⇒ 새 ETL 작업을 실행할 때 이전 데이터의 재처리 방지!
◦
Studio ⇒ Glue에서 ETML작업을 생성, 실행 하는 GUI
◦
Elastic View ⇒ SQL을 사용해 여러 데이터 스토어의 데이터를 결합하고 복제
Amazon Lake Formation
NOTE
데이터 레이크 생성을 수월하게 해주는 완전 관리형 서비스!
글루의 진화버전으로 생각?
•
데이터 레이크
◦
데이터 분석을 위해 모든 데이터를 한 곳으로 모아주는 중앙 집중식 저장소
•
AWS Lake Formation은 데이터 레이크에서 데이터 검색, 정제, 변환, 주입을 돕는다.
•
AWS Glue를 기반으로 구축했다.
•
Lake Formation에 연결하는 서비스는 읽기 권한이 있는 데이터만 볼 수 있게된다!
◦
어떠한 도구를 사용하든 한곳에서 보안을 관리 할 수 있음!
Kinesis Data Analytics
NOTE
상태 유지 이벤트 처리, 스트리밍 ETL 및 실시간 분석을 포함한 다양한 사례에 특화된 API 제공!
•
고급 쿼리 능력이 필요하거나, Kafka와 같은 서비스로부터 스트리밍 데이터를 읽는 능력이 필요할 때 사용한다.
•
병렬 연산과 오토 스케일링 가능
•
컴퓨팅 리소스 자동 프로비저닝
Amazon MSK(Apache Kafka용)
NOTE
완전관리형 Apache Kafka를 통해 실시간으로 스트리밍 데이터를 수집/처리 해준다!
•
Amazon Kinesis의 대안
•
AWS에서 완벽하게 관리되는 Apache Kafka
◦
클러스터 생성, 업데이트, 삭제 허용
◦
MSK 클러스터를 VPC, 다중 AZ에 배포한다.
◦
데이터는 원하는 기간 동안 EBS 볼륨에 저장한다.
•
MSK 서버리스
◦
용량 관리 없이 MSK에서 Kafka를 실행