모던 데이터 스택 발전사 (2)
상태바
모던 데이터 스택 발전사 (2)
  • 데이터넷
  • 승인 2023.01.16 12:00
  • 댓글 0
이 기사를 공유합니다

클라우드 환경에 적합한 확장성·셀프서비스 기능 확대
‘모던 데이터 스택’, 데이터 레이크 넘어서는 클라우드 데이터 저장소로 각광

[데이터넷] 지난 20년 동안 기업 환경에서 데이터 플랫폼은 변화하는 시대 요구사항에 맞게 진화해 왔지만, 오늘날 생성되는 데이터 양, 속도, 다양한 데이터 유형 및 분석 워크로드에 민첩하게 대응하지 못하는 한계에 봉착하게 됐다. 하지만 클라우드 환경에서 제공하는 무제한에 가까운 데이터 저장소와 유연하고 확장 가능한 컴퓨팅 리소스의 특성은 ‘모던 데이터 스택’이라는 개념으로 새로운 해결책을 제시할 수 있게 됐다. <편집자>

조성현 스노우플레이크 코리아 상무
조성현 스노우플레이크 코리아 상무

새로운 비즈니스 요구사항을 빠르고 쉽게 수용하기 위해 다양한 시도들이 오늘날 이뤄지고 있는 가운데, 그간 데이터 아키텍처 관점에서 보유하고 있던 해결책으로 ‘모던 데이터 스택(Modern Data Stack)’이 주목받고 있다.

모던 데이터 스택은 ‘사용자가 원하는 데이터를, 원하는 시점에, 자유롭게 사용해 데이터 기반의 분석 및 의사결정을 도와주는 기술 스택’으로 정의된다. 단순한 데이터 웨어하우스 또는 데이터 레이크 솔루션을 넘어서 데이터 수집, 저장, 변환, 활용 및 분석을 위한 모든 계층을 아우른다.

모던 데이터 스택에 주목
지난 2021년 9월 데이터 스택 옵저버빌리티(Data Stack Observability) 솔루션 기업 씨플렛(Sifflet)의 살마 바쿠트(Salma Bakouk) CEO가 ‘2021년 최신 데이터 스택에 관한 트렌드(Trends that shaped the Modern Data Stack in 2021)’라는 블로그를 미디엄(Medium)에 기재하면서 모던 데이터 스택이 주목받기 시작했다. 해당 글에서 살마 CEO는 ‘속도’, ‘셀프서비스’ 그리고 ‘신뢰성’이 모던 데이터 스택이 갖춰야 할 기본 전제 조건이며, 모던 데이터 스택이 나아가는 방향성으로 ▲데이터 및 데이터 스택의 민주화 ▲ETL에서 ELT로 전환 및 리버스(Reverse) ETL 중요도 증가 ▲데이터 플랫폼의 성능·속도 개선 ▲데이터 메시 ▲데이터 옵저버빌리티의 다섯 가지를 꼽았다.

또 아틀란(Atlan)의 프루칼파(Prukalpa) 공동창업자 역시 미디엄에 ‘2022년 모던 데이터 스택의 미래(The Future of the Modern Data Stack in 2022)’라는 블로그를 게재했는데, 지난 1년 동안 데이터 스택 발전 내용과 모던 데이터 스택에 대해 알아야 할 6가지 중요 내용으로 ▲데이터 메시 ▲메트릭 계층 ▲리버스 ETL ▲액티브 메타데이터 및 3세대 데이터 카탈로그 ▲데이터 상품화를 위한 팀 ▲데이터 옵저버빌리티를 강조했다.

퍼블릭 클라우드 기반 데이터 플랫폼 필수
데이터 플랫폼 영역으로 한정해서 살펴보자. 전통적인 데이터 스택은 온프레미스 환경을 위해 설계·개발됐기 때문에 다양한 이슈들을 근본적으로 해결할 수 없다. 이런 이유로 데이터 솔루션들의 실행 환경은 이전 온프레미스에서 퍼블릭 클라우드 환경으로 변경돼야 한다. 무제한의 객체(Object) 저장소와 유연한 확장이 가능한 퍼블릭 클라우드의 다양한 혜택을 활용하기 위해 서비스형 인프라(IaaS), 서비스형 플랫폼(PaaS) 방식이 아닌 서비스형 소프트웨어(SaaS) 방식으로 새롭게 설계되고 제공돼야 한다. 또 데이터 플랫폼 아키텍처는 데이터 증가에 유연하게 대응하기 위해 스토리지와 컴퓨팅 계층이 완벽하게 분리돼야 한다.

데이터 증가에 대응하는 방식(아키텍처)
[그림 1] 데이터 증가에 대응하는 방식(아키텍처)

오늘날 대다수 데이터 플랫폼들은 통합과 분산이라는 상반된 접근법을 취하고 있다. 통합 관점은 사일로(Silo)로 존재하는 여러 데이터 플랫폼을 단일 플랫폼으로 통합하는 기술적 접근법이라 할 수 있으며, 분산 관점은 업무 단위로 사일로화돼 구축된 여러 데이터 플랫폼을 하나의 데이터 플랫폼처럼 논리적으로 통합해 활용하는 것을 의미한다.

기술적인 데이터 플랫폼 통합 접근법은 스노우플레이크와 같이 단일 데이터 플랫폼에서 데이터 웨어하우스 및 데이터 레이크 워크로드와 같은 복합적인 워크로드를 통합 지원하는 것을 의미하며, 비즈니스적인 데이터 플랫폼 통합의 접근법은 데이터 패브릭이나 데이터 메시를 활용하는 방법을 의미한다.

모던 데이터 스택 특성에 충실
모던 데이터 스택으로써 데이터 플랫폼이 갖춰야 하는 기본 특성은 기술에 대한 진입 장벽을 낮춘 셀프서비스로 정의할 수 있다. 이 관점에서 보면 스노우플레이크(Snowflake)는 혁신적인 특장점들을 제공하고 있다.

첫째, 플랫폼 구축 및 사용 편의성 관점에서 뛰어나다. 스노우플레이크는 SaaS로 제공되는 데이터 플랫폼으로, 데이터 플랫폼 구축을 위한 인프라 준비나 구성 작업이 불필요하다. 사용자가 스노우플레이크 계정을 생성하면 바로 사용할 수 있기 때문에 플랫폼 구축 과정을 혁신적으로 단축할 수 있다.

또 이전 데이터 플랫폼에서 필요한 하드웨어, 소프트웨어에 대한 유지 관리, 업그레이드 및 보안에 관련된 업무를 수행할 필요가 없는 ‘제로 유지보수 (Zero-Maintenance)’ 기능을 제공해 비용을 절감할 수 있으며, 시스템 관리 업무보다는 데이터 분석에 중점을 둘 수 있게 돕는다.

둘째, 과거에는 데이터 분석 솔루션에서 소프트웨어 패치 및 장애로 인한 일시적인 다운타임은 운영에 큰 영향을 미치지 않은 경우도 있었지만, 오늘날에는 데이터 분석이 기업 환경에서 매우 중요해짐에 따라 데이터 플랫폼에 고가용성이 매우 중요한 요구사항으로 떠올랐다.

스노우플레이크는 아키텍처의 모든 수준에 장애를 허용하도록 설계됐기 때문에 노드 또는 데이터센터에 장애가 발생하더라도 지속적인 서비스를 제공하도록 설계·구축됐다. 장애 발생 시뿐만 아니라 소프트웨어 업그레이드 중에도 지속적인 가용성을 제공한다. 스노우플레이크에서 고가용성은 선택사항이 아닌 기본 옵션이며 별도의 비용을 지불하지 않는다.

[그림 2] 스노우플레이크는 장애가 발생했을 때도 서비스 가용성을 유지할 수 있다.
[그림 2] 스노우플레이크는 장애가 발생했을 때도 서비스 가용성을 유지할 수 있다.

셋째, 데이터 플랫폼에서 실행되는 데이터 분석, 애플리케이션, 엔지니어링 및 인공지능(AI)/머신러닝(ML) 파이프라인과 같은 워크로드는 시간 경과에 따라 다양해지고 중요해졌다. 기업이 분석에 활용하는 데이터의 양도 급증하고 있으며, 유형도 다양화됐다. 아키텍처 유연성은 오늘날 데이터 플랫폼에 요구되는 가장 중요한 요소다.

요구사항이 변경될 때마다 기존 플랫폼을 고도화하거나 플랫폼을 새롭게 구축해야 한다면 그 과정이 얼마나 오랜 시간이 소요되고 비효율적인지 우리는 익히 잘 알고 있다. 스노우플레이크는 요구사항 변경에 유연하게 대처하기 위해 기존 데이터 플랫폼 아키텍처를 재활용하지 않고, 클라우드 환경에 맞게 새롭게 아키텍처를 설계하고 구현했다.

스노우플레이크 아키텍처는 [그림 3]과 같이 높은 수준의 사용성, 가용성, 내결함성 및 스토리지/컴퓨팅 계층이 독립적으로 확장할 수 있도록 설계됐다. 사용자는 기술적, 시간적 제한 없이 다양한 데이터 워크로드에 필요한 만큼 온디맨드로 프로비저닝해 사용할 수 있다. 스토리지와 컴퓨팅 리소스가 독립적으로 확장되기에 둘 다 사용한 만큼만 요금이 부과된다.

[그림 3] 스노우플레이크 서비스 아키텍처
[그림 3] 스노우플레이크 서비스 아키텍처

개별 워크로드는 동일한 데이터를 사용하지만, 물리적으로 격리된 독립 실행 환경(일반적으로 워크로드 유형별 실행 환경을 구성해 사용하며, 이를 ‘실행 엔진(Virtual Warehouse, 이하 VW)’이라 한다)에서 작업을 수행함으로써 다른 워크로드 성능에 영향을 받지 않고 실행된다.

스노우플레이크의 개별 워크로드 실행 환경은 동적으로 할당되기 때문에 사실상 무제한의 확장성과 탄력성을 제공한다. 이를 통해 필요 시점에 리소스를 사용하고, 워크로드가 없는 시간에는 자동 중지돼 불필요한 비용을 지불할 필요가 없다. 만일 새로운 분석 TF팀에서 신규 프로젝트를 시작하고 기존에 분석하지 못했던 분기, 반기 또는 연(年) 단위의 대용량 데이터가 포함된 쿼리를 수행해야 하는 요구사항이 있는 경우, 스노우플레이크는 매우 능동적으로 이 요구사항을 수용할 수 있다.

스노우플레이크에 저장된 데이터는 데이터 유형 및 특성에 따라 칼럼별 최적의 압축 알고리즘을 자동 적용해 높은 압축 수준으로 저장된다. 저장 비용은 압축 후 1TB당 $25로 공급되기 때문에 더 많은 데이터를 더 저렴하게 저장하고 활용할 수 있게 도와준다.

뿐만 아니라 여러 실행 환경에서 단일 스토리지 계층에 저장된 동일한 데이터를 통해 분석 업무를 수행할 수 있다. 오늘날 사용자 분석 환경에 대한 요구 사항은 매우 빠르게 변화하기 때문에 민첩하게 대응해야 한다. 스노우플레이크 실행 엔진(VW)은 [그림 4]와 같은 확장성을 제공한다.

[그림 4] 스노우플레이크 실행 엔진 확장성
[그림 4] 스노우플레이크 실행 엔진 확장성
  • 1) 자동 중단/재개(Auto-Suspend/Resume)
    스노우플레이크 실행 환경은 서비스 계층과 실행 엔진으로 구분된다. 이 아키텍처는 워커 노드(Worker node)를 항상 실행해야 하는 다른 솔루션들과 달리 사용자 요청이 없는 경우 실행 엔진을 중지된 상태로 유지할 수 있다. 새로운 작업 요청이 서비스 계층에서 수신된 경우, 스노우플레이크는 프로비저닝 시간을 최소화하기 위해 동일 CSP 환경에 일정 수준의 인스턴스 노드를 실행 상태로 유지하고 있다. 이 아키텍처 설계는 실행 환경을 사용자 요구사항에 따라 빠르게 조정할 수 있게 도와준다.
  • 2) 워크로드 격리
    특정 리소스 집약적인 작업이 다른 작업에 미치는 영향을 최소화하기 위해 물리적으로 격리된 실행 환경을 워크로드별로 제공해 다중 워크로드 간의 자원 경합으로 인한 성능 저하 현상을 제거한다. 스노우플레이크의 ‘멀티 클러스터 셰어드 데이터(Multi Cluster Shared Data)’ 아키텍처는 워크로드별로 필요한 시점에 격리된 실행 환경을 유연하게 제공해 리소스 경합으로 인한 성능 저하 현상을 아주 간단하게 해결할 수 있다.
  • 3) 컴퓨팅 클러스터 크기 조정
    일반적으로 클러스터 확장성 관점에서 ‘스케일업’은 물리적 노드의 CPU, 메모리와 같은 리소스를 증설하는 용어로 사용되지만, 스노우플레이크의 스케일업은 실행 엔진에 노드를 추가해 병렬도를 높이는 개념이다. 이 기능을 활용하면 느린 작업에 대해 복잡한 쿼리 튜닝 없이 실행 환경을 단순하게 변경해 성능을 쉽게 개선할 수 있다.
  • 4) 많은 동시 사용자 요청 처리
    스노우플레이크 스케일아웃은 피크 시간대에 지연 없이 동시 처리 작업을 지원하는 확장 방식이다. 고정된 리소스 환경에서 많은 동시 작업이 집중되는 경우 큐잉 및 성능 저하 현상이 발생하지만, 스노우플레이크는 워크로드 패턴에 맞게 컴퓨팅 클러스터가 자동 확장되고, 사용자 요청이 줄어들면 자동으로 스핀 다운돼 많은 양의 동시 작업 요청을 성능 저하 없이 처리하면서 비용을 최소화하도록 설계됐다.

과거 데이터 플랫폼 문제 해결
넷째, 대다수 기업 환경의 분석 플랫폼은 정형 데이터 분석을 위한 EDW 시스템과 반정형 및 비정형 데이터 분석을 위한 데이터 레이크 시스템이 공존한다. 이는 데이터 중복 저장, 동기화 이슈, 관리 복잡도 및 비용 증가와 같은 다양한 이슈를 야기한다.

데이터 레이크 시스템에 한정해 살펴보자. 오픈소스에서 주도했던 1세대 빅데이터 플랫폼은 불과 10년 전만 해도 불가능하게 여겨졌던 대용량 데이터 분석, 정형뿐만 아니라 반정형 및 비정형 데이터를 분석 용도로 활용할 수 있게 했다는 점은 분명히 높게 평가받아야 한다. 하지만 다양한 에코시스템으로 인한 호환성 이슈, 아키텍처 복잡도 증가, 특정 기술 세트를 가진 전문가에 의존적인 시스템과 같은 다양한 과제들을 남겼다.

현재 다양한 고객 환경에서 1세대 온프레미스 데이터 레이크를 2세대 퍼블릭 클라우드 데이터 레이크로 마이그레이션 하는 사례가 점차 증가하고 있다. 퍼블릭 클라우드 기반의 2세대 데이터 레이크 아키텍처에서 주목해야 하는 점은 ▲스토리지와 컴퓨팅이 결합된 아키텍처에서 스토리지와 컴퓨팅이 분리된 아키텍처 ▲데이터 저장소 역할을 담당했던 HDFS가 S3, 블랍(Blob) 스토리지, GCS와 같은 퍼블릭 클라우드의 오브젝트 스토리지로 변경된 것이다. 그러나 여러 에코 프로젝트의 복잡성, 전문가에 의존적인 시스템 등의 이슈는 여전히 해결되지 않고 있다.

스노우플레이크는 이 문제를 쉽게 해결했다. 초기 스노우플레이크는 정형 데이터를 분석하는 용도로 많이 사용됐다. 오늘날 스노우플레이크는 정형, 비정형 및 JSON, 파케이(Parquet)와 같은 반정형 데이터를 지원한다. 이는 단일 데이터 플랫폼에서 전통적인 데이터 웨어하우스 워크로드와 데이터 레이크 워크로드를 통합할 수 있다는 것을 의미한다.

반정형 데이터를 직렬화 처리하는 방법이 관계형 DBMS에서 반정형 데이터를 지원하기 위한 일반적인 설계 전략이지만, 반정형 데이터를 관계형 데이터로 변환(Schema-on-Write)하는 접근 방식은 칼럼형 데이터 처리보다 데이터 저장 및 처리 효율성이 떨어진다. 또 빅데이터 기반의 기술에서 반정형 데이터는 파일 자체를 그대로 저장하고 사용자가 읽는 시점에 스키마를 별도 정의해서 처리해야 한다.

스노우플레이크는 데이터 레이크의 주요 사용 목적인 반정형 데이터를 효율적으로 처리하기 위해 스키마 없는 직렬화 처리 유연성과 칼럼형 DBMS의 성능 이점을 모두 달성하기 위해 새롭고 자동화된 접근 방식을 도입했다. 스노우플레이크는 반정형 데이터를 전처리 없이 ‘베리언트(Variant)’라는 독창적인 데이터 타입에 키(Key)와 밸류(Value) 기반으로 칼럼화해 저장하기 때문에 정형 데이터와 동일한 성능을 제공할 수 있다.

반면 동일한 성능을 제공하면서도 반정형 데이터들도 DBMS에 저장된 다른 정형 데이터와 동일하게 처리하기 위해서는 기존 데이터 레이크의 ‘읽기 스키마(Schema-on-Read)’ 방식이 아닌 ‘쓰기 스키마(Schema-on-Write)’ 방식으로 처리돼야 한다. 스노우플레이크는 파일 내부에 스키마 정보가 저장된 파케이, ORC, JSON과 같은 반정형 데이터의 빠른 통합을 위해 ‘스키마 탐지(Schema Detection)’ 및 ‘스키마 진화(Schema Evolution)’ 기능을 지원한다. 이 기능은 반정형 데이터를 분석 용도로 사용하기 위한 별도의 데이터 파이프라인을 간소화하는데 도움이 된다.

[그림 5] 스키마 탐지 & 스키마 진화 기능
[그림 5] 스키마 탐지 & 스키마 진화 기능

오늘날 데이터 분석 플랫폼은 데이터 분석가, 엔지니어, 과학자, 애플리케이션 개발자뿐만 아니라 현업 사용자와 같은 다양한 사용자들이 선호하는 분석 언어와 환경을 지원해야 하는 요구사항이 증가하고 있다. 때문에 데이터 분석을 위해 표준 SQL뿐만 아니라 자바, 스칼라 및 파이썬과 같은 다양한 개발 언어와 분석 환경을 지원해야 한다.

스노우플레이크는 데이터 애플리케이션, 엔지니어 및 AI/ML과 같은 다양한 워크로드 요구사항을 단일 플랫폼에서 모두 충족하기 위해 표준 SQL뿐만 아니라 스노우파크 개발 프레임워크도 지원한다. 스노우플레이크 사용자들은 선호하는 개발 언어(자바, 스칼라 및 파이썬)로 데이터 관련 작업을 쉽게 수행할 수 있으며, 데이터 파이프라인, 애플리케이션 및 AI/ML 워크플로우도 동일한 환경에서 빠르게 개발해 사용할 수 있다.

이는 서로 다른 워크로드 개발을 위해 데이터를 이기종 환경으로 복사나 이동하지 않고 동일한 데이터에 대한 작업할 수 있음을 의미하며, 동시에 스노우플레이크에 내장된 거버넌스 및 보안 제어 기능을 다양한 워크로드 사용자들에게 동일하게 적용할 수 있다는 것을 의미한다. 또 아나콘다(Anaconda)와의 파트너십으로 스노우플레이크 환경 내 파이썬 오픈소스 라이브러리가 내장돼 별도의 라이브러리를 위한 리포지토리를 구축·관리할 필요가 없다.

[그림 6] 스노우플레이크 환경 내에는 파이썬 오픈소스 라이브러리가 내장돼 있다.
[그림 6] 스노우플레이크는 다양한 워크로드 요구사항을 단일 플랫폼에서 충족하기 위해 표준 SQL뿐만 아니라 스노우파크 개발 프레임워크고 지원한다.

많은 데이터·복잡한 워크로드 수용
스노우플레이크가 설립되던 2012년만 하더라도 12개 이상의 새로운 데이터베이스 솔루션들이 등장했으며, 대다수 하둡 기반의 SQL 처리 모델을 채택했다. 당시에는 클라우드를 위한 ‘클래식’ 데이터 웨어하우스 시스템을 완전히 새로운 기술로 설계하고 구축하는 것은 위험한 도전으로 간주됐었지만, 10년이 지난 오늘날에는 스노우플레이크의 접근 방식이 옳았다는 것을 시장에서 확인되고 있다.

하둡은 DBMS를 대체하지 못했으며, 단순히 DBMS의 단점을 보완하는데 그쳤다. 시장은 여전히 관계형 데이터베이스를 필요로 하지만, 동시에 더 효율적이고 유연하며 클라우드에 적합한 데이터베이스를 원하고 있다.

이와 같은 시장 요구사항을 충족하기 위해 스노우플레이크는 클라우드 환경에 맞는 데이터 솔루션을 새롭게 설계해 개발했다. 다중 클러스터 공유 데이터 아키텍처의 탄력성은 사용자가 데이터를 분석하는 작업 방식을 변화시켰다. SaaS 모델은 사용자가 시스템을 쉽게 테스트하고 사용하도록 했을 뿐만 아니라 개발 및 테스트에 큰 도움이 됐다. 단일 프로덕션 버전과 온라인 업그레이드를 통해 기존 개발 모델에서 할 수 있는 것보다 훨씬 빠르게 새로운 기능을 출시하고, 개선 사항을 적용해 문제를 해결했다.

반정형 데이터 활용이 유용할 것이라고 예상했었지만, 실제 고객 환경에서 채택되는 속도는 기대 이상이었다. 대다수의 기업 환경에서 JSON과 같은 반정형 데이터를 저장하고 DBMS에 로드할 수 있는 형식으로 변환하는 두 가지 용도로 하둡을 사용하고 있다는 사실을 발견했는데, 스노우플레이크는 반정형 데이터를 클라우드 스토리지에 저장하고 SQL 인터페이스로 반정형 데이터를 처리할 수 있는 기능을 제공함으로써 기존 DBMS 시스템뿐만 아니라 하둡 클러스터도 스노우플레이크로 대체할 수 있다는 사실을 알게 됐다.

오늘날 스노우플레이크 사용자들은 점점 더 많은 양의 데이터와 더 복잡한 워크로드를 스노우플레이크 시스템에서 사용하면서 더 이상 데이터 솔루션 아키텍처로 인해 야기된 문제를 해결하는데 시간을 낭비할 필요가 없게 됐다.



댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글 0
댓글쓰기
계정을 선택하시면 로그인·계정인증을 통해
댓글을 남기실 수 있습니다.