2021년 10월 11일 월요일

[ AWS ] AWS를 통한 Data Lake 디자인 (1)

 

코세라의 "Introduction to Designing Data Lakes on AWS" 강의는

AWS개발자들이 생각하는 좋은 Data Lake 아키텍처를 설명하고 있다.


 

위 그림은 배치레이어, 스피드레이어(실시간)를 둘 다 구성할 수 있으며

키바나를 통해 집계그래프로 시각화한다.



[ Data Lake Related  Store Services ]


S3

실시간이든 배치든 저장, 인덱싱, 프로세싱 등 S3가 중심이 된다.

Data Lake의 저장소로 고려해야 될 사항은 네트워크 성능, 접근시간, 용량, 비용, 보안 등 

여러 요소가 있다. 

AWS S3는 위와 같은 요소들을 가지면서 개발자가 환경을 구축시간을 줄여준다.


S3가 가지는 장점은 아래와 같다. 

  • Scalable( 확장성), no limit data ( 용량제한이 없음)
  • Durable, 데이터내구성을 99% 보장한다.
  • Any Type of Data, 데이터의 다형성


또한 Retrieval Timed에 따라 여러 S3의 제품을 선택하여 사용할 수 있다.

즉 자주 접근하는 데이터 일수록 더 비싼 S3를 사용해야 한다.



GLUE

S3과 함께 자주 사용되는 AWS Glue는 

Serverless한 데이터처리 및 카탈로깅 서비스이며, 중앙 메타데이터 저장소이다.

도서관으로 예를 들면, 도서관은 수많은 책(Data)들에게 장르를 부여(cataloging)하여

원하고자 하는 책을 빨리 찾을 수 있게한다.

더욱이 Glue는 다양한 Data소스에서 데이터를 받아올 수 있다.

참조

S3 :

Glue : 



[ Data Movement ]

참조 : https://aws.amazon.com/big-data/datalakes-and-analytics/https://aws.amazon.com/big-data/datalakes-and-analytics/what-is-a-data-lake/


API GateWay

AWS API Gateway는 보안 API를 쉽게생성하며, 유지 관리를 쉽게 지원하는 서비스이다.

자체 백엔드에서 구현해도 되지만 트래픽관리, 권한 및 제어, 모니터링들을 더 용이하게 해준다. 

API를 통해 이동되는 데이터들은 위의 이미지와 같이 EC2, 람다, 키네시스로 전달 할 수 있다.

API가 아니라 바로 파일로 저장되는 경우, Web Server-> Kinesis-> S3로 구성할 수 있다.


Kinesis

실시간 스트리밍 데이터를 쉽게 수집, 처리, 분석할 수 있도록 지원하는 서비스이다.

소규모든 대규모든 데이터가 도착하는대로 처리하고 분석을 즉시 할 수 있다.

데이터 유형과 목적에 따라 다양한 Kinesis 제품을 이용할 수 있다.

  • Kinesis Video Streams
  • Kinesis Data Streams
  • Kinesis Data Firehose

참조 : https://aws.amazon.com/kinesis/  



[ Data Processing ]

데이터를 이동시켰으면 데이터처리를 해야하는데 

Apache Hadoop을 이용한 분산처리시스템을 이용한다.

https://aws.amazon.com/emr/details/hadoop/what-is-hadoop/


EMR

EMR은 Hadoop을 EC2에 쉽게 추가할 수 있는 환경을 만들고,

분산처리에 필요한 어플리케이션( Hbase, Hive, Spark, Phoenix 등 )들을 설치 할 수 있다.

EMR을 사용하지 않고 EC2자체에 Ambari나 CDH(클라우데라 매니저)를 설치해 

Hadoop을 사용할 경우 비용적으로 이득이 있지만, 

개인적인 경험으로 운영시에 EMR이 인적자원이 훨씬 덜 소모되었다. 

https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-what-is-emr.html  


EMR을 Serverless한 아키텍처로 Glue(+Lambda)를 사용할 수도 있다.

Glue Jobs : https://docs.aws.amazon.com/glue/latest/dg/author-job.html

Lambda : https://docs.aws.amazon.com/lambda/latest/dg/welcome.html


Athena Redshift

Sql을 이용하여 작업 후 저장할 때는 athena나 redshift는 좋은 선택지가 된다

참조

Athena : https://docs.aws.amazon.com/athena/latest/ug/what-is.html

RedShift : https://aws.amazon.com/redshift/?whats-new-cards.sort-by=item.additionalFields.postDateTime&whats-new-cards.sort-order=desc  







sdf

댓글 없음:

댓글 쓰기