데이터를 걷는 선비

[Data Platform] AWS 데이터 플랫폼 아키텍처 본문

Cloud/AWS

[Data Platform] AWS 데이터 플랫폼 아키텍처

세미제로 2023. 1. 9. 22:39

클라우드 데이터 플랫폼 아키텍처에 대한 설명은 아래 포스팅을 참조!

https://semizero.tistory.com/12

 

클라우드 데이터 플랫폼 계층 아키텍처 (1/3)

본 포스팅은 "데이터 플랫폼 설계와 구축(다닐 즈부리브스키 외 저)"를 보고 작성했습니다. http://acornpub.co.kr/book/cloud-data-platforms#toc 데이터 플랫폼 설계와 구축 다양한 소스에서 데이터를 수집하

semizero.tistory.com


AWS는 퍼블릭 클라우드 시장에서 가장 오래된 업체이며, 사실상 클라우드라는 개념을 정의했다 해도 과언이 아니며 클라우드의 표준이라고 칭할 수 있다.

AWS는 완전 관리형 PaaS, IaaS 영역에서 모두 다양한 제품을 제공하고 있으며, 데이터 플랫폼 계층의 요소와 대응되는 AWS 구성 컴포넌트는 아래와 같다.

AWS 아이콘만 봐도 가슴이 뛰네

 

AWS Data Platform Architecture

[데이터 플랫폼 스토리지]

AWS S3는 데이터 플랫폼 스토리지를 구축할 때 확장성과 비용 효율성 측면에서 상당히 좋다.

무한한 확장성과 높은 데이터 내구성을 보장하며, 오브젝트 스토리지에서 다양한 형태의 데이터를 다룰 수 있다.

  • 자주 액세스하지 않는 데이터나 아카이브 데이터는 다소 느리지만 비용이 저렴한 S3 단계를 사용하면 된다.
  • 응답 시간이 중요한 경우라면 액세스 속도가 빠르면서 상대적으로 비용 정책이 비싼 S3 단계를 사용하면 된다
  • 고속 스토리지, 저속 스토리지와 같은 개념으로 생각하면 쉽다.

[배치 데이터 수집]

AWS는 두 가지 완전 관리형 서비스를 배치 데이터 수집용 툴로 활용할 수 있다.

  1. AWS Glue
    • S3 스토리지에 있는 파일을 수집하는 방식을 통해 배치 데이터 수집
    • 데이터베이스로부터 JDBC를 활용해서 가져오는 방식을 통해 배치 데이터 수집
    • 외부 API나 NoSQL 데이터베이스는 지원되지 않는다.
  2. AWS DMS(데이터베이스 마이그레이션 서비스)
    • 원래 DMS의 목적은 온프레미스 RDBMS의 데이터를 AWS 데스티네이션 영역으로 무중단 마이그레이션하는 것
    • 데스티네이션 지정을 S3로 하면 데이터 플랫폼으로 데이터를 수집하는 데에도 활용 가능
    • MS SQL Server, MySQL, Oracle DB로 부터 지속적인 데이터를 수집하기 위한 CDC 기능도 지원
      • CDC(변경 데이터 캡처, Change Data Capture ??) : 변경된 데이터를 사용해 동작을 취할 수있도록 데이터를 결정하고 추적하기 위해 사용하는 디자인 패턴들의 모임
    • CDC 요구 사항이 없다면 수집시 글루로 하자  
  3. AWS 람다 환경
    • AWS 글루나 AWS DMS에서 지원되지 않는 데이터 소스로부터 데이터를 수집하려면 서버리스 람다 환경을 사용해 수집 코드 구현
    • 사용자가 직접 수집용 코드를 개발, 테스트, 유지 관리를 해야 함

[배치 데이터 처리]

Amazon EMR(Elastic MapReduce)은 사용자가 맵리듀스(MapReduce) 작업 뿐만 아니라 아파치 스파크 작업도 실행할 수 있도록 해주는 분산 데이터 처리 프레임워크이다.

  • 원래 온프레미스 하둡 워크로드를 클라우드로 마이그레이션하는 목적
  • 사용자가 클러스터에 포함할 시스템 수와 유형을 지정하면 AWS에서 프로비저닝과 설정 관리를 한다.
  • EMR은 클러스터 자체 스토리지에 저장된 데이터, S3에 저장된 데이터 모두 처리하나 데이터 플랫폼 아키텍처에서는 S3에 저장된 데이터만 사용 => 탄력적으로 리소스 사용해 클라우드 비용 관리

[스트리밍 데이터 수집]

데이터 소스로부터 "한 번에 하나"의 메시지 데이터를 스트리밍 방식으로 수집한다면 AWS 키네시스 서비스를 이용한다.

  1. AWS Glue
    • S3 스토

 


[실시간 데이터 처리 및 분석]

아파치 스파크는 배치 방식 데이터 처리와 마이크로 배치 데이터 처리에 적합함

  1. AWS 키네시스 데이터 애널리틱스
    • AWS 키네시스에서 데이터를 읽는 실시간 데이터 처리 애플리케이션을 구축
    • 실시간 데이터 스트림의 애드혹 쿼리가 SQL로 가능
  2. AWS MSK
    • 실시간 처리 애플리케이션을 구현할 때 카프카 스트림 라이브러리를 사용할 수 있음

[클라우드 웨어하우스]

AWS Redshift

  • 데이터 분석 분야의 대표 적인 클라우드 전용 웨어하우징 솔루션
  • MPP(Massively Parallel Processing) 아키텍처를 사용하므로 레드시프트 클러스터 여러 노드에 데이터가 분산된 구조
  • S3, 키네시스와 밀접하게 통합되어 있기 때문에 배치 방식이나 스트리밍 방식을도 처리된 데이터를 레드시프트로 쉽게 적재

[데이터 플랫폼 직접 액세스]

Athena

  • S3에 있는 파일 데이터 기반의 SQL을 작성하고 VM(Virtual Machines)들 상에서 SQL 병렬 실행을 할 수 있으며, 그 실행 결과값을 클라이언트로 보낼 수 있다.
  • AWS가 특정 쿼리를 수행하기 위해 필요한 가상시스템을 즉시 프로비저닝하기에 가상 시스템을 미리 만들어 유지 관리할 필요가 없다. => 비용 효율적 방안

[ETL 오버레이 및 메타데이터 저장소]

AWS Glue : 수집하는 역할 뿐만 아니라 데이터 변환 파이프라인을 생성하고 실행하는 영역에도 사용할 수 있다.

※ 글루는 아파치 스파크 기반이며 스파크 작업 개발 프로세스 간소화 개념이 포함

  • 데이터 변환 파이프라인 구축을 위한 템플릿 활용
  • 유연한 스키마 지원 기능을 활용해 증분 데이터 적재를 위해 수집된 데이터의 종류를 추적
  • 복잡한 json 구조를 관계형 테이블 집합으로 변환할 수 있는 템플릿 제공

AWS Glue 데이터 카탈로그

- S3 저장소에 있는 모든 데이터 세트에 대한 스키마 정보 존재, 자동 검색 프로세스를 사용해 S3에 있는 데이터를 주기적으로 검사해 카탈로그 최신화 

- 파이프라인 실행에 필요한 여러 통계 지표들 유지 관리


[오케스트레이션 계층]

  1. AWS Glue : ETL 작업 스케줄링 뿐만 아니라 복잡한 작업 들의 워크플로우 구성에 필요한 작업 간 의존성 설정이 가능하다.다만, 글루 오버레이에 구현된 작업들에만 사용할 수 있다.
  2. AWS Step Functions : 여러 서비스들을 포괄하는 워크플로우 구축 가능
  3. 데이터 파이프라인 : 원래 목적은 한 시스템에서 다른 시스템으로의 데이터 전송을 스케줄링하고 실행하는데 초점
    • S3에서 레드시프트로 파일의 주기적인 적재 작업 스케줄링
    • EMR에서 데이터 변환 작업 실행

 

 

 

'Cloud > AWS' 카테고리의 다른 글

[Glue] AWS Glue Cralwer(크롤러)로 테이블 만들기 실습  (0) 2023.01.12
[Glue] AWS Glue 개념 정리  (0) 2022.12.27
Comments