caret
기반 다양한 기계학습 팩키지를 쉘스크립트에 담아 EC2 인스턴스 생성시에 설치한다. 기계학습 예측모형에 배포를 위해서 원데이터를 WinSCP
, Filezilla
같은 FTP 프로그램을 사용하여 전달한다. 멀티코어 병렬처리를 위한 준비가 준비가 완료되면 병렬처리 기계학습 알고리즘 코드를 작성한다.
기계학습 컴퓨터를 준비하기 위해서 AWS에서 인스턴스 시작
을 클릭하여 “단계 1: Amazon Machine Image(AMI) 선택”에서 좌측에 커뮤니티 AMI
를 선택한다. 그리고 나서 검색창에 rstudio
를 입력하여 클릭하면 RStudio-1.1.383_R-3.4.2_Julia-0.6.0_CUDA-8_cuDNN-6_ubuntu-16.04-LTS-64bit - ami-1280257c
을 볼 수 있다. RStudio Server Amazon Machine Image (AMI)이미지로 기계학습을 위한 준비가 된 이미지가 기본으로 제공된다. “단계 2: 인스턴스 유형 선택”에서 멀티코어가 많고 계산에 특화된 인스턴스로 선택한다. c4.xlarge
는 “Compute optimized” 되었고 멀티코어 프로세스도 숫자가 많은 것을 고른다. EC2Instances.info Easy Amazon EC2 Instance Comparison에서 가격을 비교하여 본인 문제에 가성비가 뛰어난 인스턴스를 선택한다.
기계학습 팩키지를 설치하기 위해서 앞선 “단계 3: 인스턴스 세부 정보 구성”에서 고급 세부 정보를 클릭하여 준비한 R 팩키지를 쉘스크립트로 담아 파일형태로 준비한 후에 넣어준다. 적당한 파일명 r_pkg_shell_script.sh
와 같은 명칭으로 담아낸다.
#!/bin/bash
sudo su - -c "R -e \"install.packages('devtools', repos='http://cran.rstudio.com/')\""
sudo su - -c "R -e \"install.packages('Rcpp', repos='http://cran.rstudio.com/')\""
sudo su - -c "R -e \"install.packages('RcppEigen', repos='http://cran.rstudio.com/')\""
sudo su - -c "R -e \"install.packages('tidyverse', repos='http://cran.rstudio.com/')\""
sudo su - -c "R -e \"install.packages('markdown', repos='http://cran.rstudio.com/')\""
sudo su - -c "R -e \"install.packages('yaml', repos='http://cran.rstudio.com/')\""
sudo su - -c "R -e \"install.packages('htmltools', repos='http://cran.rstudio.com/')\""
sudo su - -c "R -e \"install.packages('knitr', repos='http://cran.rstudio.com/')\""
sudo su - -c "R -e \"install.packages('rmarkdown', repos='http://cran.rstudio.com/')\""
sudo su - -c "R -e \"install.packages('caret', repos='http://cran.rstudio.com/')\""
sudo su - -c "R -e \"install.packages('e1071', repos='http://cran.rstudio.com/')\""
sudo su - -c "R -e \"install.packages('randomForest', repos='http://cran.rstudio.com/')\""
서버가 준비되면 우선 기계학습 예측모형을 개발하기 위한 데이터를 전송해야 한다. 그러기 위해서는 권한 설정을 해야 하는데… 다음과 같이 ubuntu
계정이 /home/rstudio/
디렉토리에 소유권을 주면 RStudio IDE등 관련하여 여러 권한 문제가 생길 수 있다. 이를 피해가는 방법은 누구나 쓸 수 있도록 권한을 주는 것도 한 방법이다… 하지만 실운영환경에서는 권장되지는 않는다.
WinSCP
와 같은 도구를 통해서 데이터를 전송할 수 있다.
$ sudo chmod -R 777 /home/rstudio/
$ sudo chown -R rstudio:rstudio /home/rstudio/
# $ sudo chown -R -v ubuntu /home/rstudio/
RStudio GUI 문제 해결
Rstudio initialization error: Error occurred during transmission
와 같은 오류가 생겨나는 경우 rstudio
사용자가 갖는 권한이 맞지 않는 경우 발생된다. 이를 원래대로 원복시키는 방법은 다음과 같다.
/home/rstudio/.rstudio
디렉토리를 날린다. 그리고 나서 .rstudio
, .rstudio/graphics-r3
를 생성시키고 나서, .rstudio
디렉토리에 rstudio
사용자가 사용할 수 있도록 권한을 부여하면 된다.
ubuntu@ip-xxx-xx-xxx-xxx:/home/rstudio# rm -r .rstudio/
ubuntu@ip-xxx-xx-xxx-xxx:/home/rstudio# mkdir .rstudio
ubuntu@ip-xxx-xx-xxx-xxx:/home/rstudio# mkdir .rstudio/graphics-r3
ubuntu@ip-xxx-xx-xxx-xxx:/home/rstudio# sudo chown -R rstudio:rstudio .rstudio
기계학습 서버 모니터링을 위해서 htop
모니터링 도구를 설치하여 병렬처리 기계학습 알고리즘을 학습시킬 수 때 확인목적으로 유용하게 사용된다.
$ sudo apt-get install htop