2019년 5월 Onica.com 블로그에 처음 게시된 글입니다.
빅데이터의 잠재력은 누구나 알고 있습니다. 그러나 일부 기업들은 여전히 데이터와 분석을 레거시(구형) 환경에 머물러 있으며, 온프레미스 서버에 저장된 정형 데이터를 독점 소프트웨어로 분석하는 방식에 의존하고 있습니다.
빅데이터 친화적인 방식으로 전환하려는 조직에게 이러한 구식 환경은 커다란 걸림돌이 됩니다. 하지만 지난 몇 년간 데이터 엔지니어링 분야의 변화가 워낙 극적이었기 때문에, 새로운 방법론과 기술을 도입하지 않는 조직은 상당한 비즈니스 혜택을 놓치고 있는 셈입니다. 이러한 관점에서 지금 다시 한번 데이터 엔지니어링을 살펴보고, 이를 비즈니스 성공에 어떻게 활용할 수 있는지 짚어볼 필요가 있습니다.
데이터 엔지니어링이란 무엇인가?
데이터 엔지니어링의 정의 자체는 크게 변하지 않았습니다. 하지만 그 기반이 되는 기술과 도구는 획기적으로 진화했습니다. 본질적으로 데이터 엔지니어링이란 데이터 기술에 대한 폭넓은 지식, 체계적인 데이터 거버넌스와 보안, 그리고 데이터 처리에 대한 깊은 이해를 바탕으로 데이터 사이언스와 분석을 지탱하는 기반입니다.
관계형 데이터베이스나 트랜잭션 데이터베이스 같은 전통적인 기술도 여전히 빅데이터 아키텍처에서 중요한 역할을 하지만, 새롭게 등장한 기술들이 이 분야에 혁신을 가져왔습니다. 특히 데이터 엔지니어링 영역에서 AWS®는 게임의 판도를 바꾸었습니다. 대표적인 제품들을 살펴보겠습니다.
AWS의 주요 데이터 엔지니어링 서비스
Amazon® DynamoDB®: Amazon DynamoDB는 NoSQL® 데이터베이스로서, 문서(document), 그래프(graph), 키-값(key-value), 인메모리(in-memory), 검색(search) 등 다양한 데이터 모델을 지원함으로써 관계형 데이터베이스의 대안을 제공합니다. 이를 통해 현대적인 워크로드에 적합한 확장성 높고 유연하며 고성능의 데이터베이스를 구축할 수 있습니다.
Apache® Hadoop®: Apache Hadoop은 클러스터링을 활용해 대규모 데이터셋을 처리할 수 있는 오픈소스 프레임워크입니다. Hadoop은 다양한 워크로드 요구사항에 맞출 수 있는 완성도 높은 도구 생태계를 갖추고 있으며, Amazon Elastic MapReduce(EMR)를 통해 AWS에서 손쉽게 운영할 수 있습니다. EMR은 Hadoop 및 관련 애플리케이션 실행 시 클러스터 관리 부담을 크게 줄여줍니다.
Amazon EMR: AWS에서 Hadoop 생태계를 관리하기 위한 도구인 Amazon EMR은 Amazon Elastic Compute Cloud®(Amazon EC2) 인스턴스 전반에서 데이터를 비용 효율적으로 처리할 수 있게 해줍니다. 또한 Apache Spark®, HBase® 같은 분산 처리 프레임워크 실행을 지원하고, Amazon Simple Storage Service(S3)와 Amazon DynamoDB 같은 AWS 데이터 스토어와의 연동도 가능합니다.
Amazon Redshift: 빠르고 확장 가능한 데이터 웨어하우스인 Amazon Redshift는 데이터 레이크까지 쿼리 범위를 손쉽게 확장할 수 있도록 지원합니다. 머신러닝, 병렬 쿼리 실행, 컬럼 기반 스토리지(columnar storage)를 활용해 기존 타 데이터 웨어하우스 대비 최대 10배 빠른 성능을 제공합니다.
AWS Glue: AWS Glue는 완전관리형 추출·변환·적재(ETL) 서비스로, 고객이 분석용 데이터를 손쉽게 준비하고 적재할 수 있도록 돕습니다. 데이터가 카탈로그에 등록되면 즉시 검색, 쿼리, ETL 작업에 활용할 수 있습니다.
Amazon Athena: Amazon Athena는 표준 SQL®을 사용해 Amazon S3에 저장된 데이터를 대화형으로 분석할 수 있는 쿼리 서비스입니다. AWS Glue Data Catalog와 통합되어 여러 서비스에 걸친 통합 메타데이터 저장소를 구축하고, 데이터 소스를 크롤링해 스키마를 자동 발견하며, 신규 또는 변경된 테이블·파티션 정의로 카탈로그를 채우고 스키마 버전 관리까지 수행할 수 있습니다.
결국 모든 것과 마찬가지로 핵심은 조직의 데이터 보안 요구사항을 충족하는 형식과 모델에 맞는 올바른 구성 요소를 찾는 것입니다.
AWS 기반 데이터 엔지니어링: 고객 사례
실제 사례를 통해 그 효과를 확인해 보겠습니다. 어느 고객사는 월간 보고서 시스템을 통해 데이터를 처리하고 있었는데, 보고서가 필요한 정보는 제공했지만 축적된 방대한 데이터에서 추가적인 가치를 얻지 못하고 있었습니다. 우리는 이 프로젝트의 일환으로 자동화된 파이프라인과 내장 데이터 검증 기능을 갖춘 데이터 레이크를 구축했습니다. 데이터는 보고 시스템으로 전달되기 전에 이 데이터 레이크를 거치게 됩니다.
이 구성 요소를 데이터 아키텍처에 추가한 결과, 고객사는 기존 보고 시스템을 그대로 유지하면서도 원본 데이터셋에 대한 접근성과 활용 능력을 크게 확장했습니다. 그 덕분에 비용 관리와 수익성에 관한 ad hoc(즉석) 질문에도 즉각 답변할 수 있게 되었습니다. 많은 기업이 이미 일상 업무에서 데이터와 분석을 활용하고 있지만, 최신 도구와 기술을 올바르게 통합하면 데이터로부터 더 큰 성과를 이끌어낼 수 있다는 것을 보여주는 사례입니다.
데이터 처리 구현의 핵심
올바른 데이터 아키텍처 구성 요소만으로는 충분하지 않습니다. 데이터 엔지니어링의 가치를 극대화하려면 견고한 데이터 처리 기반이 반드시 뒷받침되어야 합니다. 데이터 처리란 데이터 라이프사이클 전반에 걸친 데이터 이동뿐 아니라, 품질 검증과 불량 데이터 정리 기법을 통한 데이터 최적화까지 포함하는 개념입니다.
데이터 수집(Data Ingestion)
데이터 처리에서 가장 중요한 부분은 단연 데이터 수집입니다. 본질적으로 데이터 수집은 발생 지점에서 저장 시스템으로 데이터를 옮기는 작업이지만, 그 방법은 매우 다양합니다. 데이터 수집은 자동화될 때 가장 큰 효과를 발휘하는데, 저유지보수로 데이터를 지속적으로 갱신해 최적의 신선도(freshness)를 유지할 수 있기 때문입니다. 스트리밍 데이터 파이프라인을 통한 실시간·연속 수집 방식, 배치(batch) 처리를 통한 비동기 방식, 혹은 두 가지를 병행하는 방식 중 선택할 수 있습니다.
어떤 수집 방식을 선택할지는 수집 대상 데이터의 유형, 소스, 목적지에 따라 달라집니다. AWS는 다음과 같은 자체 데이터 수집 서비스를 제공합니다.
- Amazon Kinesis Firehose: Amazon S3까지 완전관리형 실시간 스트리밍 수집을 지원
- AWS Snowball: 온프레미스 스토리지 및 Hadoop 클러스터의 대량 데이터를 Amazon S3로 물리적 마이그레이션
- AWS Storage Gateway: 온프레미스 데이터 처리 플랫폼과 S3 기반 데이터 레이크의 통합
ETL과 데이터 품질
관계형 데이터베이스를 사용한다면 추출·변환·적재(ETL) 과정도 수집의 중요한 부분입니다. ETL 처리는 데이터를 중복 제거하고, 불량 데이터(bad data)를 정리·플래깅하며, 데이터베이스 형식에 맞도록 변환함으로써 데이터를 정제합니다. Python, Java, Scala 같은 언어와 Spark, Flink 같은 프레임워크를 활용해 수행할 수 있으며, 데이터 품질 향상의 핵심 열쇠입니다.
사용하는 데이터베이스 유형과 무관하게, 결과 데이터의 정확성과 신뢰성을 담보하려면 강력한 데이터 품질 프로그램이 필수입니다. 여기에는 AWS Identity and Access Management(IAM) 같은 도구를 통한 데이터 접근 권한 역할 정의, 표준화·대사(reconciliation) 프로세스 시행, 데이터 무결성 유지를 위한 품질 검증 체계 구축이 포함됩니다.
데이터 품질 자체는 새로운 개념이 아니지만, 품질 높은 데이터를 만들기 위한 리소스는 최근에야 등장했습니다. 우리 팀은 현대적인 데이터 도구를 활용해 한 고객사를 위해 자동화된 데이터 품질 리포팅을 구축한 바 있습니다. 이 시스템은 소스 시스템의 데이터와 리포팅 대시보드로 향하는 다운스트림 시스템의 데이터를 주기적으로 비교하여, 시스템에서 나가는 데이터의 품질에 대한 전례 없는 가시성을 제공합니다. 오류나 품질 저하를 사전에 식별할 수 있어, 데이터 소비자의 불만이 발생하기 전에 문제를 선제적으로 수정할 수 있습니다.
현재와 미래의 성공을 위한 빅데이터 활용
데이터 엔지니어링의 변화를 분석하면 가장 분명하게 드러나는 사실은 프로세스가 변했다는 것만이 아니라, 지금도 계속 변하고 있다는 점입니다. 따라서 이러한 변화가 기업의 데이터 정책에 미치는 영향을 고민하고, 이를 비즈니스 성공으로 연결하는 방법을 모색해야 합니다. 데이터와 분석의 변화는 아키텍처와 도구에만 영향을 준 것이 아니라, 데이터 활용에 관한 새로운 시스템과 사고방식까지 만들어냈습니다.
과거에는 데이터·분석 작업이 프로젝트 완료 시점이나 사업 종료 후 후속 조치로 이루어졌지만, 이제는 데이터를 자동적이고 지속적으로 다루는 것이 표준이 되었습니다. Amazon S3, Amazon DynamoDB, 데이터 수집 파이프라인처럼 데이터 아키텍처를 개선하는 도구와 더불어, 머신러닝과 자동화 데이터 대시보드처럼 데이터 모니터링·소비 방식을 바꾸는 방법론 덕분입니다.
이제 기업은 스토리지 공간이나 비용 낭비 없이 데이터를 더 오래 보관할 수 있고, 데이터 정제를 손쉽게 자동화해 잘 관리되고 탐색하기 쉬운 데이터를 실시간으로 접근할 수 있습니다. 이러한 서비스를 데이터 아키텍처에 도입하는 기업에게는 그만한 경쟁 우위가 주어집니다.