Post List

2019년 9월 6일 금요일

AWS를 이용한 투자 자동화 구축하기! (4) 샤이니 서버 설치 및 app 실행하기





'R을 이용한 퀀트 투자 포트폴리오 만들기'가 출간 되었습니다.
많은 관심 부탁드리겠습니다.



↓↓ 구매링크 ↓↓





Ubuntu 서버에 샤이니 서버를 설치한 후 파일을 업로드하여 샤이니 앱을 실행할 수도 있습니다. Putty를 이용해 Ubuntu에 접속한 후 root 계정에서 다음의 명령어를 통해 샤이니 패키지와 샤이니 서버를 설치합니다. 각 OS별 샤이니 서버 설치 커맨드는 R Studio 사이트에 확인할 수 있습니다.

sudo su -c "R -e \"install.packages('shiny', repos='https://cran.rstudio.com/')\""
wget https://download3.rstudio.org/ubuntu-14.04/x86_64/shiny-server-1.5.9.923-amd64.deb
sudo gdebi shiny-server-1.5.9.923-amd64.deb



샤이니 서버가 잘 설치되었는지 확인하도록 하겠습니다. 퍼블릭 DNS(IPv4) 주소 뒤에 샤이니 서버의 포트번호인 :3838를 붙인 후 웹브라우에 입력해봅니다. 샤이니 서버가 제대로 설치되었다면 다음과 같은 페이지가 열립니다.




앱의 구성요소들을 저장할 폴더를 만들도록 합니다. screener 부분에 본인이 만들고자 하는 폴더명을 입력하면, 해당 폴더가 생성됩니다. (root 계정이어야 명령어가 실행됩니다.)

sudo chmod 777 /srv/shiny-server
sudo mkdir /srv/shiny-server/screener
sudo chmod 777 /srv/shiny-server/screener

샤이니 앱을 업로드 하기 위해 WinSCP를 설치해야 하며, 아래 주소에서 파일을 받을 수 있습니다.

WinSCP의 로그인 방법은 Putty와 거의 동일합니다.
  1. 호스트 이름에 IPv4 퍼블릭 IP 값을 입력합니다.
  2. 사용자 이름에 ubuntu를 입력합니다.
  3. [고급] 버튼을 누른 후 SSH의 [인증] 부분에서 개인키 파일에 ppk 형식의 키 페어를 선택합니다.
  4. 로그인을 누릅니다.



srv/shiny-server 폴더를 확인해보면 미리 만들어둔 screener 폴더가 있습니다.



다음으로 config file인 shiny-server.conf 파일을 구성해야 합니다. 해당 파일은 etc/shiny-server/ 에 있으며, WinSCP에서 드래그&드롭을 통해 해당 파일을 로컬 PC로 복사해옵니다.
간혹 etc 폴더에 접근할 수 없을수 있으며, Putty에서 다음 명령어를 친 후 WinSCP에 재접속하면 접근이 가능합니다.

sudo chmod 777 /etc/shiny-server 


로컬 PC에 받은 config 파일에서 아래 사항을 수정해야 하며, # 는 주석표시입니다.
  1. run_as shiny → run_as ubuntu
  2. timeout 추가



샤이니 앱 파일의 경우 이전에 작성한 스탁 스크리너 예제를 그대로 사용하며 다음 주소에 있는 코드를 복사하여 app.R 파일로 저장합니다.

샤이니 앱 파일과 수정한 config 파일을 미리 만들어둔 srv/shiny-server/screener 폴더에 복사합니다. 여러 샤이니 앱을 실행하고자 할 경우 위와 동일한 과정을 거쳐 각각 폴더를 만든 후 앱 파일과 config 파일을 복사하면 됩니다.


마지막으로 샤이니 앱을 호스팅해보도록 하겠습니다. 퍼블릭 DNS(IPv4) 주소 뒤에 샤이니 서버 포트와 폴더명에 해당하는 :3838/screener를 붙인 값이 해당 앱의 주소가 됩니다.


위 주소를 입력하면 샤이니 앱이 잘 구동됩니다. 주의해야할 점은 해당 코드에 사용된 각종 패키지들은 root 계정을 통해 우분투 서버에 미리 설치되어야 실행된다는 점이며, 그렇지 않을 경우 오류가 발생합니다.

댓글 1개: