02. 우분투(Ubuntu) 서버에 R + R Studio + Shiny 설치

- Step-by-step 따라하기 -


이 글은 '데이터 분석 결과를 웹에 반응형으로 시각화하기 (Ubuntu Server + R + Shiny)' 의 연속 포스트입니다.

데이터 분석 결과를 웹에 반응형으로 시각화하는 과정을 정리하고 있습니다.




R Studio 서버 설치

지난 포스트에 이어 본격적으로 우분투 서버에 R Studio를 설치해 보겠습니다.

먼저 발급받은 가상서버, VPS에 접속을 합니다.다.


#. R 설치

R Studio를 설치하기 전, 먼저 R을 설치해야 합니다.

R Studio는 R 언어의 IDE (Integrated Development Environment, 통합개발환경) 이기 때문이죠.

아래와 같이 명령어를 입력합니다.

$ sudo apt-get install r-base


-- 생략 --

Do you want to continue? [Y/n] [Y 입력 후 Enter]


처음 설치하는 것이라면, 시간이 다소 걸릴 수 있습니다.


설치가 잘 됐는지 R의 버전을 확인하는 명령을 내려봅시다.


$ R --version


R version 3.2.3 (2015-12-10) -- "Wooden Christmas-Tree"

Copyright (C) 2015 The R Foundation for Statistical Computing

Platform: x86_64-pc-linux-gnu (64-bit)


R is free software and comes with ABSOLUTELY NO WARRANTY.

You are welcome to redistribute it under the terms of the

GNU General Public License versions 2 or 3.

For more information about these matters see

http://www.gnu.org/licenses/.


위와 같이 R 버전이 출력된다면 정상입니다.


#. R Studio 서버 설치

다음으로는 R Studio 서버를 설치합니다.

포스팅 시점에 64bit 최신 버전이 1.1.456 이었네요. 지금 이 글을 읽고 계신 시점에는 더 최신버전이 나왔을 수 있습니다.

https://www.rstudio.com/products/rstudio/download-server/

위 페이지 하단부에 R Studio 설치 Section 을 참조하셔서 최신 버전의 명령어를 사용하시면 좋을 것 같습니다.

$ sudo apt-get install gdebi-core

$ wget https://download2.rstudio.org/rstudio-server-1.1.456-amd64.deb

$ sudo gdebi rstudio-server-1.1.456-amd64.deb


-- 생략 --

Do you want to install the software package? [y/N] [y 입력 후 Enter]


설치가 잘 됐는지 R Studio 서버의 상태를 확인해봅시다.


rstudio-server status


rstudio-server.service - RStudio Server

   Loaded: loaded


-- 생략 --


systemd[1]: Starting RStudio Server...

systemd[1]: Started RStudio Server.


보안을 위해 내용을 생략했지만, 'Started' 이라는 문구가 있다면 정상일 것입니다.


만약 문제가 있다면, 아래 설치 점검 명령어로 추가적인 지시사항을 따르면 됩니다.

( 아무런 반응이 없으면 정상입니다. )


sudo rstudio-server verify-installation


다음으로 앞 포스팅처럼 우분투 방화벽을 잘 설정했다면,

외부에서 R Studio가 접속이 되지 않을 것입니다. 확인해봅시다.


http://<server-ip>:8787


위 URL이 웹 브라우저로 접속이 되지 않아야 좋은 상태입니다. ( <server-ip> 부분을 자신의 VPS 서버 IP 로 변경해야 합니다 )

방화벽에 R Studio가 사용하는 Port인 8787을 허용하지 않았기 때문이죠.


아래와 같이 방화벽에 8787번 포트를 허용해 봅시다.


$ sudo ufw allow 8787


다시 접속해보면 잘 되는 것을 확인할 수 있습니다.


아이디 비밀번호는 앞 포스트에서 생성한 리눅스 계정으로 접속하시면 됩니다.




Shiny 서버 설치

다음으로는 Shiny 서버를 설치하겠습니다.

먼저 아래 명령어로 R에 Shiny 패키지를 설치합니다.


$ sudo su - \

-c "R -e \"install.packages(c('shiny', 'rmarkdown'), repos='https://cran.rstudio.com/')\""


위 명령어는 R을 Root 권한으로 실행한 다음,

shiny 패키지를 rstudio repository에서 다운받아 설치하는 과정입니다.


포스팅 시점에 64bit 최신 버전이 1.5.7.907 이었네요. 지금 이 글을 읽고 계신 시점에는 더 최신버전이 나왔을 수 있습니다.

https://www.rstudio.com/products/shiny/download-server/

위 페이지 하단부에 설치 Section 을 참조하셔서 최신 버전의 명령어를 사용하시면 좋을 것 같습니다.

$ wget https://download3.rstudio.org/ubuntu-14.04/x86_64/shiny-server-1.5.7.907-amd64.deb

$ sudo gdebi shiny-server-1.5.7.907-amd64.deb


-- 생략 --

Do you want to install the software package? [y/N] [y 입력 후 Enter]


Shiny 데몬(서버)을 시작하고, 서버가 부팅될 때마다 자동으로 실행되게끔 설정합니다.

그 다음, 잘 시작됐는지 확인합니다.


$ sudo systemctl start shiny-server

$ sudo systemctl enable shiny-server


shiny-server.service - ShinyServer


-- 생략 -- Started ShinyServer.


보안을 위해 내용을 생략했지만, 'Started' 이라는 문구가 있다면 정상일 것입니다.


외부에서 Shiny를 통한 Interactive Visualization을 사용하기 위해, 필요한 3838번 포트를 허용합시다.


sudo ufw allow 3838


웹 브라우저에서 잘 접속이 되는지 확인합니다.


http://<server-ip>:3838





마치며

지금까지 우분투 서버에 R이랑 R Studio IDE, Shiny 까지 세팅을 마쳤습니다.
이제부터는 Shiny 튜토리얼을 보면서 직접 나만의 Interactive 하게 분석 결과를 시각화 해봅시다.

포스팅 내용에 오류가 있거나, 궁금한 사항 등이 있으시면 코멘트 주세요.

읽어주셔서 감사합니다.



참고 문헌

http://docs.rstudio.com/ide/server-pro

http://docs.rstudio.com/shiny-server

https://cran.r-project.org/bin/linux/ubuntu/README.html

서울 치킨집 폐업 예측 프로그램 (ver 0.10)

http://analytics.hyeongeun.com/chicken_place/

Ubuntu + R + Shiny


계속 공부로 진행하는 프로젝트입니다. 아직은 재미로만! 봐주세요 ^^

추후 만든 과정을 정리할 생각입니다..




데이터 분석 결과를 웹에 반응형으로 시각화하기

- Ubuntu Server와 R, Shiny 패키지 -


포스팅을 시작하며

데이터 분석 결과를 웹에 반응형으로 시각화하는 과정을 정리해보려 합니다.


통계학을 전공하면(학교 커리큘럼마다 조금씩 다를 수 있으나) 일반적으로 교과서에 있는 예제 데이터에서 시작해 공공데이터, 오픈 데이터, 직접 수집한 데이터, 분석 공모전이나 대회의 데이터까지 다양한 분석 프로젝트를 수행하게 됩니다.

그런데 그렇게 고생한 프로젝트를 리포트로 제출하거나, 발표 PT가 끝나면 말 그대로 끝나버리는.. 아쉬움이 항상 있었습니다.


'우리끼리 고생했다, 잘했다, 이거는 이렇게 해보면 좋았을 것 같다'로 머물지 말고,

분석 결과를 외부와 공유하고 피드백을 주고받을 수는 없을까?


여러 가지로 알아보니 R과 Shiny 패키지를 이용해 웹에 반응형으로 시각화하면 재밌을 것 같았습니다.

아래 예제처럼 말이죠. (매우 어려울 것 같지만..)



https://shiny.rstudio.com/gallery/superzip-example.html


저와 같이 통계학 전공자거나 데이터 분석에 관심이 있다면, 이런 멋진 일을 한 번쯤은 상상해보셨을 겁니다.


이를 위해서는 사람들이 외부에서 물리적으로 접근 가능한 '서버'를 구축해야 합니다.

그리고 분석 결과를 RStudio의 Shiny 패키지로 시각화할 줄 알아야겠지요.


서버나 웹 프로그래밍 등은 전공분야가 아니라서 '도전적인' 일이 될 것 같습니다.


+ Recent posts