고객 사례

Snowpark로 실사용 임상 데이터 분석을 가속화한 Sanofi

Sanofi는 관리형 Spark 솔루션을 Snowflake로 교체함으로써 데이터 처리 속도를 높이고 총소유비용을 절감하는 동시에 규정 준수 및 데이터 거버넌스도 보장할 수 있게 되었습니다.

주요 성과:

50%

이전 관리형 Spark 솔루션 대비 성능 향상 비율

1억 개

평균 4분 이내로 처리되는 코호트당 환자 기록 수

Doctors looking at a computer
vanderbilt-university-logo-customer-story-alt
업종
Pharmaceutical
위치
Bridgewater, NJ

기적을 만드는 과학 실현

미국 뉴저지주 브리지워터와 매사추세츠주 케임브리지에 플래그십 연구소를 두고 있는 Sanofi US는 미 전역에서13,000여 명의 전문가를 고용하고 있으며, 전문 치료, 백신, 일반 의약품, 소비자 헬스케어의 4개 사업부로 구성되어 있습니다. 전 세계적으로 10만 명이 넘는 Sanofi 직원들은 인류의 삶을 개선하기 위해 기적을 만드는 과학의 실현을 목표로 최선을 다하고 있습니다.

주요 내용
  • 의료계의 실사용 임상 데이터: Sanofi는 의료 전문가들이 실사용 임상 데이터를 분석하여 치료 효과 또는 위험을 평가할 수 있도록 Snowflake를 기반으로 반응형 웹 애플리케이션을 구축하고 있습니다.

  • 관리형 Spark에서 Snowpark로 전환: Sanofi는 이전 관리형 Spark 솔루션에서 Snowpark로 마이그레이션한 후 50%의 성능 개선을 실현하고 관리, 구성, 동시성과 관련한 문제들도 해결할 수 있었습니다.

  • Professional Service: Professional Service와 자동화된 코드 변환 도구인 Snowpark Migration Accelerator 도구를 통해 PySpark 코드를 Snowpark로 변환하고 마이그레이션 속도를 높일 수 있었습니다.

규모 조정을 통해 실사용 임상 데이터 애플리케이션 지원

Sanofi는 특히 신약 개발과 관련한 의료계의 분석 요구사항을 지원하기 위해 엔터프라이즈급 데이터 처리 플랫폼 개발 프로젝트를 진행하고 있습니다. 이 프로젝트는 의료 전문가가 질병, 약물 또는 수술과 관련한 쿼리 필터를 입력하고, 특정 기준을 충족하는 환자 코호트를 식별하여 치료 효과 또는 위험 평가를 위한 실제 임상 데이터를 더 빠르게 분석할 수 있도록 직관적인 웹 애플리케이션을 구축하는 데 중점을 둡니다. 

이 웹 애플리케이션은 사용자가 탐색하고자 하는 주요 분석 인사이트를 생성하기 위해 수십억 개의 레코드를 처리해야 하는데, Sanofi의 이전 데이터 아키텍처는 이러한 레코드 처리를 지원하는 데 관리형 Spark 엔진을 계산 계층으로 사용했습니다. 그러나 데이터 팀은 Spark 환경에서 수동 배포 및 유지 관리, 리소스 확장성 문제, 제한된 계산 리소스로 인한 잦은 파이프라인 장애, 사용량이 최대에 달할 때 발생하는 동시성 문제, 여러 플랫폼 간의 데이터 이동 복잡성 등 여러 문제에 직면했습니다.

이에, Sanofi 데이터 팀은 사용자에게 더 나은 서비스를 제공하기 위해 분석 엔진을 재설계하기로 했습니다. 아키텍처 및 데이터 엔지니어링 책임자 Suku Muramula는 이렇게 말합니다. "Snowflake를 다양한 데이터 처리 태스크에 활용해 보면서 향후 데이터 처리 요구사항을 해결해 줄 유망한 솔루션으로 Snowpark를 고려하게 되었습니다."

Snowflake와 Snowpark를 기반으로 한 Sanofi의 분석 엔진 재설계

Sanofi는 분석 엔진 재설계 작업의 하나로 Python 코드를 안전하게 배포하기 위한 라이브러리 및 런타임 세트인 Snowflake와 Snowpark를 선택했습니다. Snowflake는 스토리지와 컴퓨팅의 분리, 니어 제로(Near-Zero) 유지 관리, 온디맨드 확장성을 지원하기 때문에, Sanofi는 성능 저하 없이, 증가하는 워크로드와 데이터 볼륨을 효율적으로 처리하는 동시에 비용은 최적 수준으로 유지할 수 있었습니다.

데이터 팀은 마이그레이션을 시작하면서 서비스 중심 아키텍처를 최우선으로 고려했습니다. 목표는 독립적인 서비스를 갖춘 강력하고 효율적인 시스템을 구축하고 하나의 서비스에서 발생한 문제가 전체 시스템에 영향을 미치지 않도록 장애 격리를 강화하는 것이었습니다. 이 목표는 관리형 Spark 클러스터에서 Snowflake로 마이그레이션하는 여정에 중요했습니다. 이를 통해 웹 애플리케이션의 중단을 최소화할 수 있었기 때문입니다.

sanofi diagram

그림 1. Snowflake 및 Snowpark 생태계를 갖춘 현재 아키텍처

그림 1에 나와 있듯이 새로운 아키텍처는 복잡한 파이프라인을 사용하는 대신 Snowflake 및 Snowpark를 기반으로 데이터 및 컴퓨팅 플랫폼을 통합하여 데이터 처리를 간소화합니다. 따라서 지연 시간이 단축되고 전반적인 성능이 향상되어 데이터 처리 및 분석 속도가 더 빨라졌습니다.

세분화된 권한 및 역할 기반 액세스 제어를 포함한 Snowflake의 데이터 거버넌스 기능은 데이터 및 라이브러리를 강력하게 제어할 수 있도록 지원하고 이를 통해 데이터 보안과 정책 준수를 보장할 수 있습니다.

"우리 업계에서는 데이터 처리 속도를 높이는 것 외에도, 지식 재산과 독점 데이터를 보호하고 알고리즘 보안과 효과적인 거버넌스를 보장하는 것이 무엇보다 중요합니다. Snowflake 데이터 플랫폼 내에서 Python 코드를 위한 계산 계층으로 Snowpark를 활용함으로써 데이터를 전송할 필요가 없어졌으며 관리자에게 모든 데이터와 라이브러리에 대한 포괄적인 권한을 부여할 수 있게 되었습니다."

Suku Muramula
Architecture and Data Engineering Lead, Sanofi

Snowpark로 50% 성능 개선

Sanofi는 이전의 관리형 Spark 엔진을 계산 계층으로 사용할 때 여러 과제에 직면했습니다. 엔진을 수동으로 배포하려면 새로운 기능을 도입하거나 백엔드 파이프라인에 변경이 이루어질 때마다 수동 업데이트를 실시해야만 했습니다. 이에 따라 모든 프로세스에서 조정이 많아지고 수동 작업에 대한 의존성이 높아졌으며, 그 결과 파이프라인을 엔드 투 엔드로 실행하는 데 더 오랜 시간이 소요되었습니다.

Spark 클러스터를 구축하고 구성하는 작업도 리소스 집약도가 높았습니다. Sanofi의 데이터 엔지니어 Ratan Roy는 이렇게 설명합니다. "우리가 관찰한 바에 따르면 Spark 클러스터는 확장성이 없었고, 복잡하거나 집약도가 높은 쿼리를 실행하려면 더 큰 인스턴스를 활성화하기 위해 수동 구성이 필요했고, 결국 파이프라인의 성능 문제가 발생했습니다. 게다가 자동 최적화 기능도 없었고, 처리에 막대한 메모리가 필요했습니다." 

데이터 팀은 계산 리소스가 부족하여 파이프라인이 고장 나거나 지연되는 상황을 자주 경험했습니다. 관리형 Spark 환경은 공유되었기 때문에, 요청에 따른 온디맨드 방식이 아닌 Spark 클러스터의 가용성을 기반으로 계산 리소스를 사용할 수 있었습니다. 

의료 서비스 사용자 커뮤니티가 이용하는 웹 기반 플랫폼에서는 여러 인터랙티브 사용자가 웹 애플리케이션을 동시에 실행하도록 요청할 경우 동시성 문제가 발생했습니다. 10억 개 이상의 레코드를 처리해야 하는 Spark 클러스터의 과도한 요건으로 인해, 요청에 대한 평균 분석 응답 시간은 피크 시간대 기준 약 15분에 달했습니다.

Snowflake 플랫폼에서는 컴퓨팅과 데이터 스토리지의 분리가 네이티브이지만, 이전의 관리형 Spark 솔루션에는 통합된 데이터 스토리지 계층이 없었습니다. 데이터 처리가 별도로 이루어져야 했고 여러 플랫폼 간에 추가 설정, 구성, 데이터 이동이 필요했기 때문에 처리 시간이 더 길어졌습니다.

Sanofi 데이터 팀은 Snowpark 및 Snowflake 플랫폼으로 마이그레이션하기로 결정하면서 벤치마크 분석을 수행했고 그 결과, 관리형 Spark 클러스터를 사용할 때보다 전반적으로 성능이 50% 개선되고 전체 총소유비용(TCO)도 절감됨을 확인할 수 있었습니다. Ratan은 이렇게 말합니다. "Snowflake 환경 내에서는 대규모 데이터를 모두 처리할 수 있기 때문에 더 적은 비용으로 더 높은 민첩성과 속도를 누릴 수 있습니다. 중앙 데이터 스토리지로 Snowflake를, 컴퓨팅에 Snowpark를 사용하면서 데이터 이동 비용을 절감할 수 있었고, 결과적으로 성능은 더 빨라지고 컴퓨팅 비용은 줄었습니다."

doctors in a hallway

"전체 데이터 엔지니어링 파이프라인과 알고리즘은 Python과 Snowpark 코드를 사용하여 구축되었으며, 모든 데이터 쿼리는 Snowflake 플랫폼의 Snowpark를 통해 처리됩니다."

Ratan Roy
Data Engineer, Sanofi

Snowflake Professional Service 팀과의 파트너십

Sanofi가 Spark에서 Snowpark로 마이그레이션하기로 결정했을 때, Snowflake Professional Service 팀이 마이그레이션 여정의 핵심 동반자로 함께해 주었습니다. 

"솔직히 저는 Professional Service 팀의 지원에 매우 만족했습니다. Professional Service 팀은 첫날부터 성공적인 마이그레이션에 필요한 것을 파악하고 관리할 수 있도록 도와주었습니다."라고 Muramula는 말합니다. "Professional Service 팀의 준비 상태 평가는 매우 훌륭했습니다. 덕분에 마이그레이션에 대한 귀중한 인사이트를 얻을 수 있었고, 리소스를 구축하고 마이그레이션에서 발생하는 격차를 파악할 수 있도록 만반의 대비를 할 수 있었습니다."라고 Muramula는 덧붙입니다.

자동화된 코드 변환 도구인 Snowpark Migration Accelerator는 PySpark 코드를 Snowpark로 변환하고 마이그레이션 속도를 높여 주었습니다. "이 도구는 신의 한 수였습니다. 코드를 그대로 유지하면서 신속하게 마이그레이션을 진행할 수 있도록 도와주었습니다. 누군가 마이그레이션 여정을 시작한다고 하면 꼭 Professional Service 팀의 도움을 받으라고 강력히 추천할 것입니다."라고 Muramula는 말합니다.

데이터 공유 및 데이터 사이언스의 간소화

Sanofi의 데이터 팀은 현 애플리케이션으로 몇몇 데이터 소스에 집중하고 있지만 의료계가 추가 질병과 치료법을 연구할 수 있도록 앞으로 더 많은 데이터 소스로 확장해 나갈 계획입니다. 

Muramula는 이렇게 말합니다. "앞으로 데이터 수집 및 처리 절차는 계속 발전해 나갈 것이고, 결국 분석 능력을 향상시키려면 수십억 개의 추가 레코드를 처리해야 할 것입니다. 우리가 역동적으로 확장하고 강력한 성능을 확보하고 지속적으로 확장되는 환경에 손쉽게 대응할 수 있도록 Snowflake 플랫폼이 앞으로도 계속 신뢰할 수 있는 파트너가 되어 줄 것이라고 믿어 의심치 않습니다."

30일 무료 평가판시작하기

Snowflake를 30일 동안 무료로 사용해 보세요. 다른 솔루션에 내재된 복잡성, 비용 부담, 제약 조건 

등을 해소하는 데 도움이 되는 데이터 클라우드를 경험하실 수 있습니다.