Amazon Web Services 한국 블로그

RStudio on Amazon SageMaker – 데이터 사이언티스트를 위한 완전 관리형 개발 도구

2년 전, AWS는 기계 학습을 위한 최초의 완전 통합형 개발 환경(IDE)인 Amazon SageMaker Studio를 도입했습니다. Amazon SageMaker Studio는 모든 기계 학습 개발 단계를 수행할 수 있는 단일 웹 기반 시각적 인터페이스를 제공하여 데이터 과학 팀의 생산성을 최대 10배까지 향상시킵니다

많은 데이터 사이언티스트는 R 프로젝트를 선호합니다. 이는 18,000개 이상의 패키지가 포함된 오픈 소스 생태계로, 그저 프로그래밍 언어가 아니라 데이터 과학을 수행하기 위한 대화형 환경입니다. RStudio는 기계 학습 및 데이터 과학 프로젝트의 R 개발자들 사이에서 가장 인기 있는 IDE 중 하나입니다. RStudio는 데이터 과학 팀이 조직에서 작업을 개발하고 공유할 수 있도록 하는 R 및 엔터프라이즈급 전문 소프트웨어를 위한 오픈 소스 도구를 제공합니다. 그러나 RStudio를 직접 구축, 보안, 확장 및 유지 관리하는 것은 지루하고 번거로운 작업입니다.

오늘, RStudio PBC와의 협력을 통해 업계 최초의 클라우드 내 완전관리형 RStudio Workbench IDE인 RStudio on Amazon SageMaker 정식 버전을 발표합니다. 이제 몇 가지 간단한 단계만으로 현재 RStudio 라이선스를 가져와 자체 관리형 RStudio 환경을 Amazon SageMaker로 쉽게 마이그레이션할 수 있습니다. 이 흥미로운 공동 작업에 대해 자세히 알아보려면 RStudio PBC의 블로그를 확인하세요.

RStudio on Amazon SageMaker를 사용하면 관리자가 RStudio 환경을 마이그레이션하여 Amazon SageMaker에 통합하고 AWS License Manager를 통해 관리할 기존 RStudio 라이선스를 가져오는 과정이 간단해집니다. AWS Single Sign-On(SSO) 또는 AWS Identity and Access Management(IAM)를 사용하여 R 및 Python 개발자 모두를 동일한 Amazon SageMaker 도메인에 온보딩하여 해당 도메인을 RStudio와 Amazon SageMaker Studio를 모두 구성할 수 있는 중앙 집중식 공간으로 사용할 수 있습니다.

따라서 데이터 사이언티스트는 프로그래밍 언어와 코딩 인터페이스 중에서 자유롭게 선택하여 RStudio와 Amazon SageMaker Studio 노트북 간을 전환할 수 있습니다. 코드, 데이터 집합, 리포지토리 및 기타 아티팩트를 비롯한 모든 작업은 기본 Amazon EFS 스토리지를 통해 두 환경 간에 동기화됩니다.

SageMaker에서 RStudio 시작하기
이제 Amazon SageMaker에서 간단한 클릭으로 익숙한 RStudio Workbench를 시작할 수 있습니다. 시작하기 전에, 관리자가 RStudio PBC에서 최종 사용자를 위한 적합한 라이선스를 구입하고, AWS License Manager에서 부여된 라이선스를 설정하고, RStudio on Amazon SageMaker를 시작할 Amazon SageMaker 도메인 및 사용자 프로필을 생성해야 합니다. 라이선스 관리 및 사용 모니터링을 비롯한 모든 관리자 작업에 대해 알아보려면 설정 프로세스 관련 블로그 게시물을 참조하거나 AWS 설명서의 RStudio on Amazon SageMaker 관리를 참조하세요.

필요한 설정 프로세스가 완료되면 생성된 사용자 목록의 새로운 앱 시작(Launch app) 드롭다운 목록에서 RStudio Workbench를 열고RStudio를 선택할 수 있습니다.

RStudio Workbench 홈 페이지가 즉시 표시되며 세션, 프로젝트 및 게시된 콘텐츠 목록을 홈 페이지에서 볼 수 있습니다. 새 세션을 생성하려면 페이지에서 새 세션(New Session) 버튼을 선택하고 인스턴스 유형(Instance Type) 드롭다운 목록에서 원하는 인스턴스를 선택한 다음 세션 시작(Start Session)을 선택합니다.

vCPU 2개와 GiB 메모리 4개로 구동할 수 있는 경량 분석용 컴퓨팅 인스턴스 유형을 선택하면 기본 ml.t3.medium 인스턴스를 사용할 수 있습니다. 복잡하고 규모가 큰 기계 학습 모델링의 경우 Amazon SageMaker에서 사용 가능한 다양한 기계 학습 인스턴스에서 원하는 컴퓨팅 및 메모리를 갖춘 대규모 인스턴스를 선택할 수 있습니다.

몇 분 안에 RStudio Workbench에서 세션을 개발할 준비가 완료됩니다. RStudio 세션을 시작하면 Base R 이미지가 인스턴스의 기본 역할을 합니다. 이 Docker 이미지에는 R v4.0, AWS 도구(예: awscli, Sagemaker, boto3 Python 패키지 및 Python과 R 간의 상호 운용성을 위한 reticulate 패키지)가 포함되어 있습니다.

R 패키지 관리 및 분석 게시
RStudio Workbench와 함께 RStudio ConnectRStudio Package Manager는 RStudio에서 가장 많이 사용되는 제품입니다.

RStudio Connect는 데이터 사이언티스트가 RStudio Workbench에서 인사이트, 대시보드 및 웹 애플리케이션을 쉽게 게시할 수 있도록 설계되었습니다. RStudio Package Manager는 조직의 패키지 리포지토리를 중앙에서 관리하므로 데이터 사이언티스트는 프로젝트 재현성 및 반복성을 보장하면서 패키지를 더 빠르고 안전하게 설치할 수 있습니다.

예를 들어 관리자는 리포지토리를 생성하고 RStudio Package Manager의 cran이라는 기본 제공 소스를 구독할 수 있습니다.

$ rspm sync --wait # Initiate a sync
$ rspm create repo --name=prod-cran --description='Access CRAN packages' # Create a repository:
$ rspm subscribe --repo=prod-cran --source=cran # Subscribe the repository to the cran source

이 단계가 완료되면 RStudio Package Manager의 웹 인터페이스에서 prod-cran 리포지토리를 사용할 수 있습니다.

이제 RStudio Workbench에서 패키지를 설치하고 관리하도록 이 리포지토리를 구성할 수 있습니다. 또한 RStudio Connect를 통해 RStudio Workbench에서 인사이트, 대시보드 및 웹 애플리케이션을 게시하도록 RStudio Connect를 구성하여 공동 작업자가 작업 결과물을 쉽게 사용할 수 있도록 할 수 있습니다.

예를 들어 분석을 인라인으로 실행하여 공동 작업자에게 게시할 수 있는 R Markdown을 생성합니다. 코드를 작성하는 동안 미리 보기(Preview) 버튼을 사용하여 슬라이드를 미리 보고 RStudio 세션에서 게시(Publish) 아이콘을 사용하여 게시할 수 있습니다.

또한 대화형 웹 인터페이스 생성에 용이한 Shiny 애플리케이션 또는 Streamlit과 같은 Python 기반 콘텐츠를 RStudio Connect 인스턴스에 게시할 수 있습니다.

자세한 내용은 저의 동료들인 Michael Hsieh, Chayan Panda, Farooq Sabir가 AWS Machine Learning 블로그에 작성한 RStudio on Amazon SageMaker에서 기계 학습 개발을 위한 RStudio Connect 및 Package Manager 호스팅을 참조하세요.

훈련 작업을 Amazon SageMaker와 통합
RStudio on Amazon SageMaker를 사용할 때 얻을 수 있는 이점 중 하나는 Amazon SageMaker 기능의 통합입니다. Amazon SageMaker의 RStudio 및 Jupyter 노트북 인스턴스를 사용하면 동일한 Amazon EFS 파일 시스템을 공유할 수 있습니다. Jupyter 노트북에 작성된 R 코드를 가져올 수 있고, Jupyter 노트북과 RStudio 사이에 파일을 이동하지 않고도 Jupyter 노트북과 RStudio에서 동일한 파일을 사용할 수 있습니다.

예를 들어 라이브러리 가져오기, Amazon SageMaker 세션 생성, IAM 역할 가져오기, 샘플 데이터 가져오기 및 시각화 등의 R 샘플 코드를 실행할 수 있습니다. 그러면 S3 버킷에 데이터가 저장되며, 훈련 컨테이너 지정 및 Amazon SageMaker Estimator 정의를 통해 XGBoost 모델에 의해 훈련 작업이 트리거됩니다. 자세한 내용은 Amazon SageMaker의 R 샘플 코드를 참조하세요.

# Import reticulate, readr and sagemaker libraries
library(reticulate)
library(readr)
sagemaker <- import('sagemaker')

# Create a sagemaker session
session <- sagemaker$Session()

# Get execution role
role_arn <- sagemaker$get_execution_role()

# Read a csv file from UCI public repository
data_file <- 'http://archive.ics.uci.edu/ml/machine-learning-databases/abalone/abalone.data'

# Copy data to a dataframe, rename columns, and show dataframe head
data_csv <- read_csv(file = data_file, col_names = FALSE, col_types = cols())
names(data_csv) <- c('sex', 'length', 'diameter', 'height', 'whole_weight', 'shucked_weight', 'viscera_weight', 'shell_weight', 'rings')
head(data_csv)

# Visualize data have height equal to 0
library(ggplot2)
options(repr.plot.width = 5, repr.plot.height = 4) 
ggplot(abalone, aes(x = height, y = rings, color = sex, alpha=0.5)) + geom_point() + geom_jitter()

# Upload data to Amazon S3 bucket
s3_train <- session$upload_data(path = data_csv,
                                bucket = my_s3_bucket, 
                                key_prefix = 'r_hello_world_demo/data')
s3_path = paste('s3://',bucket,'/r_hello_world_demo/data/abalone.csv',sep = '')

# Train a XGBoost model, specify the training containers, and define an Amazon SageMaker Estimator
container <- sagemaker$image_uris$retrieve(framework='xgboost', 
                                           region= session$boto_region_name, 
										   version='latest')							
estimator <- sagemaker$estimator$Estimator(image_uri = container,
                                           role = role_arn,
                                           train_instance_count = 1L,
                                           train_instance_type = 'ml.m5.4xlarge',
                                           train_volume_size = 30L,
                                           train_max_run = 3600L,
                                           input_mode = 'File',
                                           output_path = s3_path)

정식 출시
RStudio on Amazon SageMaker는 Amazon SageMaker Studio와 AWS License Manager를 모두 사용할 수 있는 모든 AWS 리전에서 사용할 수 있습니다. RStudio on Amazon SageMaker의 기존 보유 라이선스를 가져오고 사용량에 따라 Amazon SageMaker 또는 기타 AWS 서비스 내의 기본 컴퓨팅 및 스토리지 리소스에 대한 비용을 지불할 수 있습니다.

RStudio on Amazon SageMaker를 시작하기 위해 AWS 프리 티어를 사용할 수 있습니다. 처음 2개월 동안 Amazon SageMaker Studio에서 매달 250시간의 ml.t3.medium 인스턴스를 사용할 수 있습니다. 자세한 내용은 Amazon SageMaker 요금 페이지를 참조하세요.

사용해 보시고 피드백이 있으면 Amazon SageMaker에 대한 AWS 포럼 또는 평소에 이용하는 AWS Support 연락처를 통해 알려주시기 바랍니다.

Channy