데이터 과학과 분석이 점점 더 중요해짐에 따라, 이를 지원하는 다양한 툴과 서비스들이 등장하고 있습니다. 그 중에서 leonardo는 사용자가 클라우드 환경에서 고급 분석 작업을 손쉽게 수행할 수 있도록 돕는 강력한 노트북 서비스입니다. 특히, leonardo는 구글 클라우드 플랫폼(GCP)을 활용하여 사용자에게 다양한 컴퓨팅 옵션을 제공합니다. 이번 포스트에서는 leonardo의 주요 기능과 설치 방법, 기본적인 사용법에 대해 상세히 알아보겠습니다.
leonardo의 주요 기능 및 특징
leonardo는 다음과 같은 기능을 제공합니다:
- 클라우드 컴퓨팅 서비스 지원: GCP의 다양한 서비스와 통합되어 Spark 클러스터, 가상 머신, Kubernetes 애플리케이션을 손쉽게 생성하고 관리할 수 있습니다. 이를 통해 데이터 분석과 머신러닝 작업을 보다 효율적으로 수행할 수 있습니다.
- 커스터마이징 가능한 도커 이미지: 사용자는 자신의 필요에 맞춘 도커 이미지를 사용하여 Jupyter나 RStudio를 실행할 수 있습니다. 이는 개발자들이 자신이 원하는 환경을 구성할 수 있도록 도와줍니다.
- Galaxy와의 통합: 생물정보학 작업을 수행하는 데 유용한 Galaxy 플랫폼과 통합되어 있어, 복잡한 분석 파이프라인을 손쉽게 구성할 수 있습니다.
이러한 기능들은 데이터 과학자와 연구자들이 클라우드 환경에서 복잡한 분석 작업을 수행하는 데 큰 도움을 줍니다.
설치 및 기본 사용법
leonardo를 사용하기 위해서는 먼저 클라이언트 라이브러리를 설정해야 합니다. 다음은 Scala 기반의 프로젝트에서 leonardo-client를 설정하는 방법입니다.
1. 클라이언트 라이브러리 추가
먼저, leonardo-client를 빌드에 추가합니다. sbt 파일에 다음 코드를 추가하세요:
libraryDependencies += "org.broadinstitute.dsde.workbench" %% "leonardo-client" % "1.3.6-<git hash>"
여기서 <git hash>는 develop 브랜치의 HEAD 커밋 해시의 처음 7자리를 입력해야 합니다. 이 정보를 Google Artifact Registry에서 확인할 수 있습니다.
2. Scala에서의 기본 사용법
다음은 leonardo API를 사용하여 런타임 정보를 가져오는 기본 예제입니다:
import org.broadinstitute.dsde.workbench.client.leonardo.api.RuntimesApi
import org.broadinstitute.dsde.workbench.client.leonardo.ApiClient
import org.broadinstitute.dsde.workbench.client.leonardo.model.GetRuntimeResponse
class LeonardoClient(leonardoBasePath: String) {
private def leonardoApi(accessToken: String): RuntimesApi = {
val apiClient = new ApiClient()
apiClient.setAccessToken(accessToken)
apiClient.setBasePath(leonardoBasePath)
new RuntimesApi(apiClient)
}
def getRuntimeDetails(token: String, googleProject: String, runtimeName: String): GetRuntimeResponse = {
val leonardoApi = leonardoApi(token)
leonardoApi.getRuntime(googleProject, runtimeName)
}
}
이 코드는 사용자가 제공한 액세스 토큰과 구글 프로젝트 ID, 런타임 이름을 기반으로 런타임 세부 정보를 가져오는 역할을 합니다.
3. 로컬에서 leonardo 실행하기
로컬 환경에서 leonardo를 실행하기 위해서는 다음 단계를 따라야 합니다.
- 리포지토리를 클론합니다:
- 필요한 의존성을 설치하고 데이터베이스에 연결합니다.
- 클라우드 기반 데이터 분석 환경을 필요로 하는 데이터 과학자
- 생물정보학 데이터 분석을 수행해야 하는 연구자
- Jupyter와 RStudio를 커스터마이징하여 사용하고자 하는 개발자
git clone https://github.com/databiosphere/leonardo.git
cd leonardo
이후, leonardo의 실행 및 테스트를 위해 필요한 환경을 설정할 수 있습니다.
활용 시나리오
leonardo는 데이터 과학 프로젝트에서 다양한 방식으로 활용될 수 있습니다. 예를 들어, 대량의 데이터를 처리해야 하는 머신러닝 모델을 학습시키는 경우, leonardo를 사용하여 Spark 클러스터를 빠르게 구성하고 데이터를 처리할 수 있습니다. 또한, 데이터 분석 결과를 시각화하기 위한 Jupyter 노트북 환경을 구축하여 결과를 공유할 수 있습니다.
비슷한 도구와의 비교
leonardo와 유사한 도구로는 JupyterHub, Databricks, KubeFlow 등이 있습니다. 이들 도구 역시 클라우드 기반의 데이터 분석 환경을 제공하지만, leonardo는 GCP와의 깊은 통합과 커스터마이징 가능한 도커 이미지 지원으로 차별화를 지니고 있습니다. 특히, 생물정보학 분야에서의 활용 가능성도 높습니다.
추천 대상
leonardo는 이러한 사용자들에게 강력한 도구가 될 것입니다. GitHub에서 프로젝트를 확인하고 직접 사용해 보시기 바랍니다: DataBiosphere/leonardo