2.4 RStudio Server 사용 가이드

2.4.1 RStudio Server 

통계/분석 언어인 R을 기반으로 한 RStudio(Web-IDE)를 활용한 Deep Learning 예제입니다.
본 예제는 kt Cloud Deep Learning Server를 설치하고 정상 동작하는지 여부를 확인해 보기 위한 예제입니다.
본 예제에서 사용한 알고리즘 및 ML과 관련 내용은 간략하게만 설명하니 효과적으로 사용하기 위해선 Deep Learning에 대한 추가적인 학습이 필요합니다. 

ㅁ RStudio Server 접속 하기 

ㅇ 웹 브라우저를 이용해서 공인 IP 주소:8787(혹은 고객이 설정한 포트포워딩 번호)에 접속합니다.
- 공인 IP 주소는 콘솔의 Server 네트워킹 메뉴에서 확인할 수 있습니다.
- 8787포트는 포트포워딩 규칙에 의해 설정된 것으로 향후 포트포워딩 메뉴를 통해 변경할 수 있습니다.

ㅇ 초기 Username는 'ruser', Password는 'rstudio'를 입력하고 Log in을 클릭합니다.     


ㅁ Rstudio Server 비밀번호 변경 

ㅇ RStudio Server에 접속할 수 있는 기본 비밀번호를 변경합니다.
- 터미널에서 세팅한 서버에 접속 후 'dlspasswd'를 입력하면 비밀번호를 변경할 수 있습니다.
  (RStduio의 Username은 기본 설정 'ruser'로 변경할 수 없습니다.) 


2.4.2 RStudio용 Deep Learning DEMO 

kt Cloud Deep Learning Server는 Deep Learing 및 RStudio를 처음 사용하는 고객을 위해서 예제 2가지를 제공합니다.
kt Cloud의 watch 서비스를 이용하여 자원 사용율을 보고 예측하는 예제와 손으로 숫자를 쓴 이미지를 분석하여 고객이 입력한 숫자와 동일한 손글씨 숫자카드를 찾아주는 예제입니다.

ㅁ demo_function

ㅇ 해당 데모 스크립트는 KT Cloud의 모니터링 서비스인 KT Cloud watch의 데이터를 이용하여 TensorFlow 프레임워크를 통해 간단한 회귀 분석을 실행하는 예제입니다.




ㅇ 먼저, RStudio에 로그인을 하면  아래와 같이 데모 스크립트를 확인할 수 있습니다.

ㅇ 우리는 KT Cloud watch의 데이터를 수집하기 위해 API Key와 Secret Key가 필요합니다. API Key/Secret Key는 KT Cloud 오픈 API 가이드(https://cloud.kt.com/portal/portal.openapiinfo.html)에서 사용법 및 활용법을 확인 할 수 있습니다.

ㅇ API Key와 Secret Key를 확인하였으면 아래와 같이 Client.py파일에 접근하여, 보유하고 있는 API Key/Secret Key를 입력 합니다.
- (접근 경로: Home > ucloud_api > Client.py)

 

ㅇ 다음은 KT Cloud watch의 오픈 API를 이용하여, 모니터링 데이터를 조회(GET)하기 위한 파라미터 설정입니다.
- 파라미터 파일 위치: Home > ucloud_api > api_param
- 해당 디렉토리에서 아래 3개의 파일을 편집해야 합니다.
- (watch_getmetric_vm_cpu, watch_getmetric_vr_networkin, watch_getmetric_vr_networkout)

ㅇ 먼저 watch_getmetric_vm_cpu 파일을 편집해 보겠습니다.
- 아래 화면에서 보이는 위치에 조회할 VM에 대한 정보(Metric Name)을 입력합니다.
- VM의 Metric Name: VM의 Display Name(UUID)
- 해당 정보를 조회할 수 있는 방법은 KT Cloud watch open api 가이드에서 listMetrics 항목을 참조하기 바랍니다.


ㅇ Metric Name이 입력되었으면, 조회할 시간을 설정해야 합니다.
- 시간은 최대 1주일을 넘기지 않도록 설정합니다.


ㅇ 다음으로 watch_getmetric_vr_networkin, watch_getmetric_vr_networkout 파일을 편집합니다.
- 아래 그림과 같이, Dimensions.member.1.Name과 Dimensions.member.1.Value 영역의 required 파라미터를 "no"(고객의 전체 VR에 대한 데이터를 조회)로 변경합니다.


ㅇ 위의 VM파일과 마찬가지로 조회할 시간 값을 설정합니다.
- 시간은 최대 1주일을 넘기지 않도록 설정합니다.



ㅇ 이제, Demo 스크립트를 사용할 준비가 완료되었습니다. Rstudio Server UI에서 해당 스크립트를 전체 선택하고, RUN 버튼을 클릭합니다.


ㅇ RStudio Server를 통해서, KT Cloud watch 모니터링 데이터를 조회하여, tensorflow를 활용 분석된 결과가 RStudio 우측 하단에서 확인 할 수 있습니다.
- IR(선형회귀): VR 전체의 network in과 network out간의 관계성 분석


 - 위의 예제에서 검은점은 watch가 보유한 실제 데이터이며, 각 선들은 추정한 값들입니다. 선영 회귀분석은 주어진 데이터를 대표하는 하나의 직선을 찾는 것인데, 이 직선을 회귀선이라 합니다. 즉, 본 예제에서느 networkout에 대한 networkout 의 관계를 보는 예제입니다. network에 들어오는 데이터가 많을 수록 나가는 network양도 많은 것을 확인해 볼 수 있습니다.

- 시계열 분석 & 예측: 수요 예측 등 어떤 시간과 관련된 추이를 확인하고 이에 대해서 미래를 예측하는 모델
   (Watch 데이터에서 CPU의 사용량을 이용하여 분석합니다.)

 - 위의 예제에서 검은색과 오렌지색은 실제데이이고 파란색은 앞의 검은색 데이터를 통해 예측한 값입니다. 푸른색의 그래프 형태를 보면 오랜지 색의 그래프 형태와 유사함을 알수 있습니다. 이를 통해서 향후 CPU 사용량을 유추해볼 수 있습니다.

ㅁ mnist

ㅇ 해당 데모는 손으로 쓴 숫자들로 이루어진 샘플 이미지를 트레이닝 하여 사용자가 숫자를 질의했을 때 해당 질의와 관련 있는 숫자 카드를 찾아주는 예제입니다. (해당 예제 위치: mnist-example > mnist.R)
 위와 동일한 방법으로 해당 예제를 실행시키면 아래와 같은 결과를 확인할 수 있습니다.

- 아래 이미지는 트레이닝 데이터로 아래와 같이 손으로 쓴 숫자 이미지를 가지고 컴퓨터가 학습을 시작합니다.


 - 학습이 완료되고 테스트 데이터이터를 입력하면 아래와 같이 질의하는 숫자에 대한 해당 숫자 이미지를 찾을 수 있습니다.