클라우드 네이티브 아키텍처로 어디서나 확장 가능한 데이터 분석 지원
쿠버네티스(Kubernetes)로 아키텍처를 설계하는 것은 데이터 분석을 비즈니스 니즈가 있는 지점이면 어디서든, 대규모로, 높은 동시성·성능·효율성·가용성으로 실행할 수 있게 하는 필수적인 중심축입니다.
금융 서비스, 보험, 제조, 의료 등 다양한 업종의 수천 개 기업이 퍼블릭 및 프라이빗 클라우드, 하이브리드, 엣지 배포가 데이터 관리 및 분석 니즈에 가장 적합하다는 것을 깨닫고 있습니다. 따라서 분산 클라우드 개념이 클라우드 성숙의 일부가 된 것은 놀라운 일이 아닙니다. 데이터 웨어하우스, 데이터 레이크, 고급 분석을 분산 클라우드 아키텍처로 가져오는 것이 시장의 향방입니다. 이 아키텍처를 고차원 데이터 관리 및 분석 서비스로 확장하면 자연스럽게 분산 데이터 클라우드라는 개념으로 이어집니다. 분산 데이터 클라우드 내에서 기업 데이터 웨어하우스는 단순히 회사의 수백 명 비즈니스 분석가나 데이터 과학자에게 분석을 제공하는 데 그치지 않고, 궁극적으로 기업의 최종 고객(수만 명 규모)이 직접 사용하는 실시간 분석 애플리케이션을 구동할 수 있게 됩니다. 데이터는 어디에서나 즉시 접근 가능하고 통찰력을 제공합니다.
참고: 2021년 클라우드 도입 트렌드, 2022년에 증폭
목적지 탐색
클라우드 네이티브는 자주 언급되는 용어지만, 소프트웨어 아키텍처가 분산 클라우드의 이점을 활용하도록 처음부터 설계될 때 진정한 의미를 가집니다. 완전히 구현된 클라우드 네이티브 데이터 웨어하우스는 논리적으로 분산 데이터 클라우드 아키텍처를 활용해야 합니다. 가장 넓은 의미에서 이는 분석을 데이터가 존재하는 곳으로 가져옵니다(반대가 아님), 집중 위험을 완화하고, 효율성을 극적으로 높이며, 통제된 비용(FinOps)과 경쟁 우위를 위한 현대화를 이끕니다.
더 정확히 말하면, 클라우드 네이티브 데이터 관리 및 분석 기술은 분산 데이터 클라우드 청사진에 부합하기 위해 다음 다섯 가지 핵심 특성을 보여야 합니다:
- 데이터와 분석을 어디서든 프로비저닝할 수 있는 플랫폼 독립적 런타임
- 어디서든 공통된 사용자 경험
- 어떤 배포 대상에서든 공통된 보안 및 거버넌스 기능
- 어디서든 비용 및 기술 효율성, 리소스 최소화 및 강력한 비용 관리(FinOps)와 지출 가드레일 허용
- 퍼블릭 클라우드, 온프레미스, 네트워크 엣지 등 모든 배포를 연결하는 단일 컨트롤 플레인
필요한 지점 어디에나 배포 가능하며, 이 패턴을 따르는 완전히 구현된 클라우드 네이티브 데이터 웨어하우스는 클라우드, 온프레미스, 네트워크 엣지 인프라의 복잡성을 최종 사용자로부터 추상화합니다. 요점은 उन्हें 인프라 세부 사항에서 해방시키고 분석으로부터 가치를 창출하고 데이터를 관리하는 데 집중하게 하면서 여전히 클라우드의 네이티브 파워를 전달하는 것입니다.
올바른 가이드 선택
그렇다면 어떻게 그 목적지에 도달할까요? 오픈소스 컨테이너 오케스트레이션 도구인 쿠버네티스가 클라우드 네이티브 운영으로 가는 가장 대중적인 길을 제공합니다. 유닉스(Unix)에서 워크로드를 분할하는 아이디어는 1970년대부터 있었지만, 약 10년 전 컨테이너가 널리 구현되어 애플리케이션 개발을 더 쉽고, 이식 가능하며, 리소스 사용 측면에서 효율적으로 만들었습니다. 하지만 수백, 수천 개의 애플리케이션을 거대한 마이크로서비스 아키텍처 전반에 배포하는 것은 극도로 까다로웠습니다. 다른 옵션도 있지만, 구글의 오픈소스 쿠버네티스 프로젝트(현재 클라우드 네이티브 컴퓨팅 재단에서 유지)가 마이크로서비스 애플리케이션 오케스트레이션을 해결하기 위해 두각을 나타냈습니다. 이는 애플리케이션이 일반 인프라에서 실행되고, 표준 방식으로 모니터링 및 관리되며, 오픈 표준을 사용하여 인증되도록 합니다.
애플리케이션에는 좋은 이야기입니다. 하지만 데이터 세계는 어떨까요? 동일한 기초적 컨테이너 오케스트레이션이 클라우드 네이티브 데이터 웨어하우스에 필요합니다. 이는 퍼블릭 및 프라이빗 클라우드, 네트워크 엣지, 하이브리드, 완전 분산 클라우드 전반에서 탄력성과 배포 유연성을 제공하기 위함입니다.
스케일아웃 웹 애플리케이션의 클라우드 네이티브 재설계는 흔하지만, 데이터베이스는 대부분 '리프트 앤 시프트(lift-and-shift)' 방식으로 클라우드 네이티브 세계에 들어왔습니다. 데이터베이스를 컨테이너에 넣으면 최신 인프라에서 실행되게 할 수 있지만, 클라우드의 모든 이점을 보여주는 경험을 제공하지는 않습니다. 소프트웨어는 자신이 컨테이너 환경에서 실행 중이라는 사실을 거의 인식하지 못하며, 탄력적 클러스터 관리 같은 작업은 오퍼레이터(Operators)를 사용하고 헬름(Helm) 차트를 해킹하여 외부에서 수동으로 어설프게 처리해야 합니다. 여러 개의 탄력적 온디맨드 컴퓨트 클러스터가 객체 스토리지의 동일한 기본 데이터를 공유하도록 허용하는 기능은 종종 사용할 수 없습니다. 탄력적 클라우드 기반 데이터 웨어하우스에서 비즈니스 가치를 얻으려는 사용자는 헬름 차트, 파드, 노드, 구성 파일을 알고 싶어 하지 않습니다. 그들은 단지 데이터 웨어하우스를 프로비저닝하고, 탄력적 클러스터를 관리하고, 데이터로부터 통찰력을 얻고 싶어 합니다.
쿠버네티스 위에 SQL 인터페이스를 제공하여 여러 탄력적 클러스터를 온디맨드로 프로비저닝하고, 쿠버네티스 복잡성을 DBA와 최종 사용자로부터 숨기는 것이 해답입니다.
이 방식으로 서로 다른 사용자에게 서로 다른 컴퓨트 클러스터에서 워크로드를 실행하도록 할당할 수 있으며, 사용 중인 컴퓨트 클러스터는 권한에 따라 SQL을 통해 런타임에 변경할 수 있습니다. 클러스터는 유휴 기간 후 자동으로 일시 중단되고 온디맨드로 다시 시작되도록 구성할 수 있습니다. 예를 들어, 필요할 때 ETL 프로세스를 실행하기 위한 별도의 컴퓨트 클러스터, 애드혹 비즈니스 인텔리전스(BI)용 하나, 여러 데이터 사이언스 클러스터를 생성할 수 있습니다. 컴퓨트 클러스터는 사용량이 많은 기간에는 온라인으로 확장되고 조용한 기간에는 꺼져 비용을 절약할 수 있습니다. 일일, 주간, 월간 배치 리포팅 작업이 해당 기간에만 활성화되도록 클러스터를 생성할 수 있습니다. 컴퓨트 클러스터의 노드 크기와 노드 수 모두 이 모델에서 제어 가능하며, 인스턴스 수준에서 리소스 소비 제한을 설정하여 예측 가능성을 확보할 수 있습니다. 마찬가지로, 기본 데이터 웨어하우스 인스턴스로부터 복제 트래픽을 수신하는 저비용 복제 시스템을 설정할 수 있으며, 이는 복제본이 사용되어야 할 때 온디맨드로 확장 가능합니다.
이런 종류의 탄력성은 쿠버네티스와 깊이 통합할 뿐만 아니라, 개발자 도구 대신 SQL 자체를 클러스터 생성, 일시 중단, 재개, 관리를 위한 '사용자 인터페이스'로 사용함으로써 구현됩니다. 쿠버네티스는 모든 클러스터 상태에 대한 권위 있는 진실 공급원(authoritative source of truth)입니다. 클러스터 상태를 보여주는 시스템 뷰는 쿠버네티스 API를 사용하여 쿠버네티스에서 데이터를 가져옵니다. 클러스터 관리 SQL 문이 입력되면, 클라우드 네이티브 데이터 웨어하우스는 인스턴스의 원하는 상태를 변경하기 위해 쿠버네티스에 도달하고, 쿠버네티스는 필요한 변경 사항을 구현합니다. 클러스터의 노드가 비정상 상태가 되면 쿠버네티스가 대체 노드를 온라인으로 가져옵니다.
이는 쿠버네티스와의 독특한 '인사이드아웃(inside-out)' 관계를 나타냅니다. 쿠버네티스가 클러스터 상태를 주도하는 '사용자 인터페이스'가 되는 대신, 쿠버네티스에 의해 관리되는 데이터베이스 자체가 사용자 인터페이스가 됩니다. 이 아키텍처는 독특하고 완전히 구현된 클라우드 경험을 제공하는 공생 관계를 만듭니다. 쿠버네티스의 힘과 크로스 플랫폼 유연성이 데이터 웨어하우스에서 사용 가능해지며, 완전히 SQL을 통해 구동됩니다.
더 많은 데이터가 생성되고 더 많은 사용 사례가 배포됨에 따라, 기업은 생태계가 특정 클라우드 내에서 점점 더 깊이 뿌리내리는 악순환에 쉽게 빠질 수 있습니다. 금융 서비스 및 보험과 같은 엄격하게 규제된 분야에서 중요한 IT 인프라에 너무 많은 노출을 주는 단일 클라우드에서 시스템적 위험이 발생할 수 있습니다. 쿠버네티스로 아키텍처를 설계하는 것은 완전히 구현된 클라우드 네이티브 데이터 웨어하우스를 현실화하는 유일한 핵심 개념이 아닙니다. 분산 데이터 클라우드 패턴에 부합하는 유일한 아키텍처 구성 요소도 아닙니다. 하지만 그것은 데이터 분석을 비즈니스 니즈가 있는 지점이면 어디서든, 대규모로, 높은 동시성, 성능, 효율성, 가용성으로 실행할 수 있게 하는 없어서는 안 될 중심축입니다. 결과적으로 주어진 기업의 수천 명의 사용자가, 서로 다른 사업 라인과 지리적 지역에 걸쳐, 거의 실시간으로 움직이는 분석으로부터 매우 빠른 결정을 내리고 가치를 창출할 수 있습니다.