AWS에서 데이터 웨어하우스 및 데이터 레이크 구축

데이터 저장소의 다양한 형태: 데이터 웨어하우스, 데이터 레이크, 레이크하우스

만약 데이터 웨어하우스, 데이터 레이크, 레이크하우스와 같은 용어가 익숙하지 않다면, 당신의 직업은 아마 데이터와는 거리가 멀 것입니다. 하지만 오늘날 데이터가 모든 것의 중심에 있는 것처럼 보이는 현실을 고려할 때, 이는 매우 드문 경우일 것입니다. 특히, 기업 리더들은 다음과 같은 목표를 제시합니다.

  • 데이터 중심의, 데이터 기반 비즈니스 구축
  • 언제 어디서든 데이터에 접근 가능

데이터, 가장 중요한 자산으로 부상

데이터는 점점 더 많은 기업에게 가장 귀중한 자산이 되고 있습니다. 과거에도 대기업들은 상당한 양의 데이터를 생성했지만, 현재는 그 양이 기하급수적으로 증가하고 있습니다. 과거에는 한 달에 테라바이트 단위의 데이터를 생성했다면, 이제는 며칠 안에 그 양을 훨씬 뛰어넘는 데이터를 생성합니다. 이처럼 생성되는 모든 데이터가 정말로 필요한 것인지에 대한 의문이 제기될 수밖에 없습니다. 분명히 모든 데이터가 다 가치가 있는 것은 아닙니다.

실제로, 일부 데이터는 단 한 번도 사용되지 않습니다. 수많은 기업들이 성공적인 로드 후에도 쓸모없어지는 엄청난 양의 데이터를 생산하는 것을 자주 목격했습니다. 하지만 이제는 이러한 상황이 크게 바뀌었습니다. 클라우드 스토리지 비용은 저렴해졌고, 데이터 소스는 기하급수적으로 늘어나고 있으며, 새로운 서비스가 시스템에 통합될 때 1년 후에 무엇이 필요할지 예측하기가 매우 어려워졌습니다. 과거에는 쓸모없어 보였던 데이터도 미래에는 중요한 가치를 지닐 수 있습니다.

따라서 현재의 전략은 가능한 한 많은 데이터를 저장하는 것입니다. 하지만 단순히 저장하는 것뿐만 아니라, 데이터를 효과적으로 저장하고 활용할 수 있어야 합니다. 다시 말해, 데이터를 쉽게 쿼리하고, 재사용하고, 변환하고, 배포할 수 있는 형태로 저장해야 합니다.

AWS에서는 이러한 목표를 달성하기 위한 세 가지 주요 방법이 있습니다.

  • Athena 데이터베이스: 클라우드에서 데이터 레이크를 구축하는 간단하고 저렴하며 효과적인 방법입니다.
  • Redshift 데이터베이스: 기하급수적인 데이터 증가에 대응하지 못하는 기존의 온프레미스 솔루션을 대체할 수 있는 강력한 클라우드 기반 데이터 웨어하우스입니다.
  • Databricks: 데이터 레이크와 데이터 웨어하우스를 단일 솔루션으로 결합한 플랫폼입니다.

AWS Athena를 활용한 데이터 레이크 구축

출처: aws.amazon.com

데이터 레이크는 구조화되지 않거나, 반구조화되거나, 구조화된 형태의 데이터를 빠르게 저장할 수 있는 저장소입니다. 데이터 레이크에 저장된 데이터는 변경될 것이라고 가정하지 않습니다. 오히려 데이터는 가능한 한 원자적이고 불변해야 합니다. 그래야만 나중에 재사용할 가능성이 높아집니다. 데이터가 데이터 레이크에 처음 로드된 직후 원자적 속성을 잃게 되면, 해당 정보를 복구할 방법이 없습니다.

AWS Athena는 S3 버킷에 직접 스토리지를 보유하고 있으며 백그라운드에서 실행되는 서버 클러스터가 없는 데이터베이스입니다. 다시 말해, 매우 저렴한 데이터 레이크 서비스입니다. Parquet 또는 CSV(쉼표로 구분된 값)와 같은 구조화된 파일 형식은 데이터의 구조를 유지합니다. S3 버킷은 파일을 보관하고, Athena는 데이터베이스에서 데이터를 선택할 때마다 해당 파일을 참조합니다.

Athena는 업데이트 문과 같은 표준 기능들을 지원하지 않습니다. 이는 Athena를 매우 단순한 옵션으로 간주해야 하는 이유입니다. 하지만 다른 한편으로는, 이러한 제약 덕분에 원자 데이터 레이크의 데이터가 수정되는 것을 효과적으로 방지할 수 있습니다.

Athena는 인덱싱과 파티셔닝을 지원하므로 효과적인 선택 문 실행과 논리적으로 분리된 데이터 청크(예: 날짜 또는 키 열로 구분)를 생성하는 데 유용합니다. 또한 인프라에 새 버킷을 추가하는 것처럼 쉽게 수평 확장이 가능합니다.

Athena의 장점과 단점

장점:

  • Athena는 매우 저렴합니다. S3 버킷 스토리지 비용과 SQL 쿼리 사용량에 따른 비용만 발생합니다. 이는 AWS에서 저렴한 데이터 레이크를 구축하는 데 가장 적합한 선택입니다.
  • Athena는 Amazon QuickSight(데이터 시각화 도구) 또는 AWS Glue 데이터 카탈로그(지속적인 구조화된 메타데이터 생성 도구)와 같은 다른 유용한 AWS 서비스와 쉽게 통합할 수 있습니다.
  • 전체 인프라를 유지 관리하지 않고 대량의 구조화되거나 구조화되지 않은 데이터에 대해 임시 쿼리를 실행하는 데 가장 적합합니다.

단점:

  • 쿼리가 데이터 레이크에서 데이터를 요청하도록 설계한 데이터 모델 가정에 부합하지 않는 경우, 복잡한 선택 쿼리를 빠르게 반환하는 데 효과적이지 않습니다.
  • 데이터 모델의 잠재적인 미래 변경에 대한 유연성이 떨어집니다.
  • Athena는 추가 고급 기능을 즉시 지원하지 않으므로, 특정 기능을 사용하려면 직접 구현해야 합니다.
  • 일부 고급 프레젠테이션 계층에서 데이터 레이크 데이터를 사용하려면 AWS Aurora 또는 AWS DynamoDB와 같은 다른 데이터베이스 서비스와 결합해야 하는 경우가 많습니다.

Athena의 목적 및 실제 사용 사례

만약 목표가 고급 데이터 웨어하우스와 같은 기능 없이 간단한 데이터 레이크를 생성하는 것이라면 Athena가 적합합니다. 예를 들어, 데이터 레이크에서 정기적으로 실행되는 고성능 분석 쿼리가 필요하지 않은 경우, Athena는 데이터를 저장하고 확장하기 쉬운 불변 데이터 풀을 확보하는 데 가장 적합합니다.

또한, 데이터 수명 주기 정책을 구현하면 S3 버킷 스토리지 비용을 더욱 절감할 수 있습니다. 이는 기본적으로 데이터를 여러 유형의 S3 버킷 간에 이동시키는 것을 의미하며, 수집 시간은 느려지지만 비용은 더 저렴한 보관 목적을 달성할 수 있습니다.

Athena의 또 다른 강점은 SQL 쿼리 결과로 구성된 파일을 자동으로 생성한다는 것입니다. 이 파일은 다른 용도로 사용할 수 있습니다. 따라서 데이터를 여러 단계로 추가 처리하는 람다 서비스가 많은 경우에 유용한 옵션입니다. 각 람다 결과는 자동으로 후속 처리를 위한 입력 준비가 된 구조화된 파일 형식이 됩니다.

Athena는 대량의 원시 데이터가 클라우드 인프라로 유입되는 상황에서 유용한 옵션입니다. 로드 시 데이터를 처리할 필요 없이, 이해하기 쉬운 구조로 구성된 클라우드 스토리지 공간만 있으면 됩니다. 또한 다른 서비스의 데이터 보관 전용 공간을 만드는 데도 활용할 수 있습니다. Athena DB는 현재 당장 필요하지 않은 모든 데이터를 위한 저렴한 백업 장소가 되지만, 데이터가 필요해지면 수집하고 전송할 수 있습니다.

AWS Redshift를 활용한 데이터 웨어하우스 구축

출처: aws.amazon.com

데이터 웨어하우스는 데이터가 매우 구조화된 방식으로 저장되는 저장소입니다. 데이터를 쉽게 로드하고 추출할 수 있습니다. 데이터 웨어하우스의 주요 목적은 복잡한 조인을 통해 여러 테이블을 연결하여 매우 복잡한 쿼리를 실행하는 것입니다. 또한 기존 데이터에 대한 다양한 통계를 계산하기 위한 다양한 분석 기능도 제공합니다. 궁극적인 목표는 기존 데이터를 사용하여 미래 예측을 수행하고 비즈니스 의사 결정을 지원하는 것입니다.

Redshift는 본격적인 데이터 웨어하우스 시스템입니다. 수평 및 수직으로 조정 및 확장할 수 있는 클러스터 서버와 빠르고 복잡한 쿼리 반환에 최적화된 데이터베이스 스토리지 시스템을 갖추고 있습니다. 최근에는 서버리스 모드에서도 Redshift를 실행할 수 있게 되었습니다. Redshift는 S3 또는 이와 유사한 파일 기반 스토리지를 사용하지 않고, 자체 저장 형식을 가진 표준 데이터베이스 클러스터 서버를 사용합니다.

Redshift에는 즉시 사용 가능한 성능 모니터링 도구가 제공되며, 대시보드 메트릭을 통해 사용 사례에 맞게 성능을 미세 조정할 수 있습니다. 또한, 별도의 대시보드를 통해 관리 기능에도 접근할 수 있습니다. Redshift의 모든 기능과 설정을 이해하고 클러스터에 미치는 영향을 파악하는 데는 어느 정도의 노력이 필요하지만, 온프레미스 솔루션에서 사용되는 Oracle 서버 관리만큼 복잡하지는 않습니다.

Redshift는 다양한 AWS 제약 사항(예: 하나의 데이터베이스 클러스터에서 동시 활성 사용자 또는 세션 수에 대한 제한)이 있지만, 작업이 빠르게 실행되면 이러한 제약을 어느 정도 해결할 수 있습니다.

Redshift의 장점과 단점

장점:

  • Redshift는 다른 AWS 서비스와 쉽게 통합할 수 있는 클라우드 데이터 웨어하우스 서비스입니다.
  • 다양한 소스 시스템에서 여러 유형의 데이터를 저장, 모니터링 및 수집하기 위한 중앙 위치를 제공합니다.
  • 인프라를 유지 관리할 필요 없이 서버리스 데이터 웨어하우스를 사용할 수 있습니다.
  • 고성능 분석 및 보고에 최적화되어 있습니다. 데이터 레이크와 달리, 들어오는 모든 데이터를 저장하기 위한 강력한 관계형 데이터 모델을 갖추고 있습니다.
  • Redshift 데이터베이스 엔진은 다른 데이터베이스 시스템과의 높은 호환성을 보장하는 PostgreSQL에서 시작되었습니다.
  • S3 버킷에서 데이터를 로드하고 언로드하는 데 매우 유용한 COPY 및 UNLOAD 문을 제공합니다.

단점:

  • Redshift는 많은 양의 동시 활성 세션을 지원하지 않습니다. 세션은 대기열에 추가되어 순차적으로 처리됩니다. 대부분의 경우에는 문제가 되지 않지만, 작업 속도가 매우 빠른 시스템에서는 제한 요소로 작용할 수 있습니다.
  • Redshift는 기존의 성숙한 Oracle 시스템에서 제공하는 많은 기능을 지원하지만, 여전히 동일한 수준에는 도달하지 못했습니다. 예상되는 일부 기능(예: DB 트리거)이 없을 수도 있으며, 구체화된 뷰와 같은 일부 기능은 매우 제한적인 형식으로만 지원합니다.
  • 고급 사용자 지정 데이터 처리 작업이 필요한 경우, 처음부터 직접 개발해야 합니다. 대부분의 경우 Python 또는 Javascript 코드 언어를 사용합니다. Oracle 시스템의 PL/SQL처럼 함수와 프로시저를 자연스럽게 작성하기가 어렵습니다.

Redshift의 목적 및 실제 사용 사례

Redshift는 기존의 클라우드 외부에 있던 다양한 데이터 소스의 중앙 저장소 역할을 할 수 있습니다. 이전의 Oracle 데이터 웨어하우스 솔루션을 대체할 수 있으며, 관계형 데이터베이스이므로 Oracle에서 마이그레이션하는 작업이 상대적으로 간단합니다.

접근 방식, 구조 또는 데이터를 실행하기 위한 공통 프로세스 세트 측면에서 실제로 통합되지 않은 여러 위치에 기존 데이터 웨어하우스 솔루션이 있는 경우 Redshift를 선택하는 것이 좋습니다. Redshift는 다양한 장소와 국가에 분산된 여러 데이터 웨어하우스 시스템을 하나의 플랫폼으로 통합할 수 있는 기회를 제공합니다. 데이터를 안전하게 유지하고 필요한 사용자만 액세스할 수 있도록 국가별로 데이터를 분리하면서, 동시에 회사 전체 데이터를 포괄하는 통합 웨어하우스 솔루션을 구축할 수 있습니다.

또 다른 사용 사례는 셀프 서비스 기능을 지원하는 데이터 웨어하우스 플랫폼을 구축하는 것입니다. 이러한 플랫폼에서 각 사용자는 자신만의 데이터 처리 작업을 구축할 수 있습니다. 하지만 이러한 작업은 공통 플랫폼 솔루션의 일부가 아니라, 생성자 또는 생성자가 정의한 사용자 그룹만 액세스할 수 있습니다. 즉, 다른 사용자에게 영향을 미치지 않습니다.

데이터 레이크와 데이터 웨어하우스의 비교에 대해 알아보세요.

AWS 기반 Databricks를 활용한 레이크하우스 구축

출처: databricks.com

레이크하우스는 Databricks 서비스와 관련된 용어입니다. AWS의 고유 서비스는 아니지만, AWS 생태계 내에서 훌륭하게 작동하며, 다른 AWS 서비스와 연결 및 통합하는 다양한 옵션을 제공합니다.

Databricks는 (이전에는) 서로 다른 영역을 함께 연결하는 것을 목표로 합니다.

  • 비정형, 반정형 및 구조화된 데이터의 데이터 레이크 스토리지 솔루션
  • 데이터 웨어하우스에서 구조화되고 빠르게 액세스할 수 있는 쿼리 데이터(Delta Lake라고도 함)를 위한 솔루션
  • 데이터 레이크에서 분석 및 기계 학습 컴퓨팅을 지원하는 솔루션
  • 다양한 유형의 개발자 및 사용자의 생산성을 지원하는 중앙 집중식 관리 및 즉시 사용 가능한 도구를 사용하여 위에서 언급한 모든 영역에 대한 데이터 거버넌스

Databricks는 데이터 엔지니어, SQL 개발자 및 기계 학습 데이터 과학자가 동시에 사용할 수 있는 공통 플랫폼입니다. 각 그룹은 자신의 작업을 수행하는 데 사용할 수 있는 고유한 도구를 가지고 있습니다.

따라서 Databricks는 데이터 레이크와 데이터 웨어하우스의 이점을 단일 솔루션으로 결합하려는 ‘올인원’ 솔루션을 목표로 합니다. 또한 이미 구축된 데이터 저장소에서 직접 기계 학습 모델을 테스트하고 실행할 수 있는 도구를 제공합니다.

Databricks의 장점과 단점

장점:

  • Databricks는 확장성이 뛰어난 데이터 플랫폼입니다. 워크로드 크기에 따라 자동으로 확장됩니다.
  • 데이터 과학자, 데이터 엔지니어 및 비즈니스 분석가를 위한 협업 환경을 제공합니다. 이 모든 것을 동일한 공간에서 함께 할 수 있다는 것은 큰 이점입니다. 조직적 관점에서뿐만 아니라 별도의 환경에 필요한 추가 비용을 절감하는 데도 도움이 됩니다.
  • AWS Databricks는 Amazon S3, Amazon Redshift 및 Amazon EMR과 같은 다른 AWS 서비스와 원활하게 통합됩니다. 이를 통해 사용자는 서비스 간에 데이터를 쉽게 전송하고 전체 범위의 AWS 클라우드 서비스를 활용할 수 있습니다.

단점:

  • Databricks는 설정과 관리가 복잡할 수 있으며, 특히 빅 데이터 처리를 처음 접하는 사용자에게는 더욱 그렇습니다. 플랫폼을 최대한 활용하려면 상당한 수준의 기술 전문 지식이 필요합니다.
  • Databricks는 종량제 가격 모델을 채택하고 있지만, 대규모 데이터 처리 프로젝트에는 여전히 비용이 많이 들 수 있습니다. 특히 사용자가 리소스를 확장해야 하는 경우 플랫폼 사용 비용이 빠르게 증가할 수 있습니다.
  • Databricks는 미리 빌드된 다양한 도구와 템플릿을 제공하지만, 더 많은 사용자 지정 옵션이 필요한 사용자에게는 제한이 될 수도 있습니다. 빅 데이터 처리 워크플로에 대해 더 많은 유연성과 제어가 필요한 사용자에게는 적합하지 않을 수 있습니다.

Databricks의 목적 및 실제 사용 사례

AWS Databricks는 데이터 양이 매우 많은 대기업에 가장 적합합니다. 다양한 외부 시스템의 다양한 데이터 소스를 로드하고 컨텍스트화해야 하는 요구 사항을 처리하는 데 유용합니다.

또한 실시간으로 데이터를 제공해야 하는 경우가 많습니다. 즉, 데이터가 소스 시스템에 나타나는 즉시 프로세스가 데이터를 선택하고 처리하여 Databricks에 저장해야 합니다. 1분 이상의 지연이 있는 경우, 데이터는 거의 실시간으로 처리되는 것으로 간주합니다. Databricks 플랫폼은 다양한 AWS 기본 서비스에 연결되는 광범위한 어댑터 및 실시간 인터페이스 덕분에 두 시나리오 모두를 지원할 수 있습니다.

또한 Databricks는 Informatica ETL 시스템과 쉽게 통합됩니다. 이미 Informatica 생태계를 널리 사용하고 있는 조직의 경우 Databricks는 플랫폼에 호환되는 추가 기능처럼 느껴질 것입니다.

마지막으로

데이터 볼륨이 기하급수적으로 계속 증가함에 따라, 이러한 증가에 효과적으로 대처할 수 있는 솔루션이 있다는 것은 매우 고무적인 일입니다. 과거에는 데이터 관리가 악몽과 같았지만, 이제는 관리 작업이 거의 필요하지 않습니다. 팀은 데이터에서 가치를 창출하는 데 집중할 수 있습니다.

필요에 따라 적절한 서비스를 선택하기만 하면 됩니다. AWS Databricks는 결정을 내린 후에는 유지해야 하지만, 다른 대안은 특히 서버리스 모드와 같이 기능이 떨어지더라도 유연성이 훨씬 뛰어납니다. 나중에 다른 솔루션으로 마이그레이션하는 것도 어렵지 않습니다.