LoginSignup
14
17

More than 5 years have passed since last update.

さくらの VPS を借りて RStudio のサーバー版を動かす

Last updated at Posted at 2013-09-26

rstudio.png

今回、さくらの VPS を借りて RStudio のサーバー版を動かしたので、その顛末を記します。さくらの VPS のサーバーは標準で CentOS 6.4 でした。

1.サーバー導入から公開鍵認証方式での ssh 接続まで

主な流れ

  1. サーバーを申し込む
    • 一番安いコースで初回は 2 ヶ月分で 3000 円弱。V プリカ使用可能
  2. 送られてきた仮登録メールに載った ip アドレスと root パスワードをメモ
  3. VPS コンソール に先ほどの組み合わせでログイン (参考画像 1 参照)
  4. コンソールからサーバーを起動させる (参考画像 2 参照)
  5. ssh でログイン
  6. ユーザー作成
  7. yum をアップデート
  8. sudo の設定をする

(参考画像 1)
sakura01.png

(参考画像 2)
sakura02.png

リモートコンソールを利用して以下の操作を行う。
なお、今回利用する vi は i で編集可能な状態となり、 ESC でコマンドが使える状態になる。コマンドモードで :w をすると上書き、:q で編集終了となる。

ユーザー作成

useradd ユーザー名 -G wheel # wheel グループで sudo 権限の管理をする
passwd ユーザー名 # パスワード設定

yum をアップデート

sudo yum update

sudo の設定をする

sudo vi /etc/pam.d/su

下の方法は一般ユーザーでも su できなくなるので use_uid オプションではなく、root_only オプションを使う方法がある。
http://www.pistolfly.jp/weblog/2008/06/suroot.html

/etc/pam.d/su
---
以下をアンコメント
---
# auth required pam_wheel.so use_uid
↓
auth required pam_wheel.so use_uid
sudo vi /etc/login.defs
/etc/login.defs
---
最終行に以下を追加
---
SU_WHEEL_ONLY yes
sudo visudo
visudo
---
以下をアンコメント
---
# %wheel ALL=(ALL) ALL
↓
%wheel ALL=(ALL) ALL

root でのログインを禁止する & Port 変更

sudo vi /etc/ssh/sshd_config
sshd_config
---
以下をアンコメントし no に
---
# PermitRootLogin yes
↓
PermitRootLogin no
---
同上
---
# PasswordAuthentication yes
↓
PasswordAuthentication no
---
Port を変更する
---
Port ${49152 - 65535 の間の任意の整数}

ホームディレクトリ直下に .ssh ディレクトリを作成

su - 作成したユーザー名
mkdir ~/.ssh
chmod 700 ~/.ssh

ここまで行ったら一旦リモートコンソールから離れます。

公開鍵、秘密鍵の作成 (Windows)

Windows では putty と WinSCP を利用する方法を採用する。
公開鍵は puttygen を利用して作る方法 を参考に作成する。
WinSCP で作成した公開鍵を /home/ユーザー名/.ssh/authorized_keys に移動しておく。

公開鍵、秘密鍵の作成 (Mac)

Mac では標準のターミナルから接続する方法を採用する。

mkdir ~/.ssh # ホームディレクトリ直下に .ssh ディレクトリを作成する
cd ~/.ssh
ssh-keygen -t rsa
scp 公開鍵のファイルまでのパス root@xxx.xxx.xxx.xxx:/home/作成したユーザー名/.ssh/authorized_keys

公開鍵、秘密鍵の名称について

一般的に id_rsa.pub.${ドメイン名} id_rsa.${ドメイン名} のフォーマットで命名されるらしい。たとえば google.com であれば、id_rsa.pub.google.com id_rsa.google.com といったセットとなる。

sshd のリスタートなど

再びリモートコンソールに戻ります。

vi ~/.ssh/authorized_keys # 先ほど生成した公開鍵をはりつける
sudo chown ユーザー名:ユーザー名 ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
sudo /etc/init.d/sshd restart # 先ほど編集した sshd_config がやっと反映

これでリモートコンソールからの操作は終了です。

ssh での接続 (Windows)

putty で秘密鍵を利用して接続します。

ssh での接続 (Mac)

簡単に接続するため、まず config を作成する。

vi ~/.ssh/config
config
Host    任意の名前
        HostName    IPアドレス
        Port    ポート
        User    作成したユーザー名
        IdentifyFile    秘密鍵へのパス

作成した config を使って ssh 接続します。

ssh 設定した名前

ここまでの参考サイト
さくらVPS 1GB に CentOS6.4 を入れて、 環境構築1 - ssh など - Qiita
さくらVPS/Cent OS 6.4 初期状態から鍵認証SSHでの接続まで[Railsサーバへの道] - 酒と泪とRubyとRailsと

2. 各種セットアップ

主な流れ

  1. iptables (ファイアウォール) 設定
  2. MeCab インストール
  3. R インストール
  4. R Studio インストール

iptables 設定

まず iptables6 を無効化

sudo vi /etc/modprobe.d/disable-ipv6.conf
disable-ipv6.conf
---
以下を追加
---
options ipv6 disable=1

reboot 後も起動しないように設定

sudo /etc/init.d/ip6tables stop
sudo chkconfig ip6tables off

確認

chkconfig --list | grep ip6tables

すべて off になっていれば OK
次に postfix の設定

sudo vi /etc/postfix/main.cf
main.cf
---
inet_protocols を all から ipv4 へ変更
なお、``IPv4`` と大文字を使って書くとエラーとなるので注意
---
inet_protocols = all
↓
inet_protocols = ipv4

iptables の設定

sudo vi /etc/sysconfig/iptables
iptables
---
基本的に以下をコピペで貼り付けるが、
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 自分の ssh ポート -j ACCEPT
を一行追加する
---
*filter
:INPUT   ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT  ACCEPT [0:0]
:RH-Firewall-1-INPUT - [0:0]

-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -p tcp -m tcp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# SSH, HTTP, HTTPS, MySQL
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 433 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306  -j ACCEPT

-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited

COMMIT

空白行に半角スペースがあるなどするとエラーが発生するので注意。

iptables 再起動

sudo /etc/init.d/iptables restart
chkconfig iptables on
chkconfig --list | grep '3:on' # iptables があれば OK

ここまでの参考サイト

さくらのVPSへのiptablesの設定 - 9ensanのLifeHack

Mecab のインストール

https://mecab.googlecode.com/ を見る

sudo yum install glibc glibc.i686 gcc* # gcc のインストール
mkdir ~/tmp
cd ~/tmp
wget https://mecab.googlecode.com/files/mecab-0.996.tar.gz
tar zxvf mecab-0.996.tar.gz
cd mecab-0.996
./configure
make
sudo make install

mecab 辞書のインストール

cd ~/tmp
wget http://downloads.sourceforge.net/mecab/mecab-ipadic-2.7.0-20070801.tar.gz
tar zxvf mecab-ipadic-2.7.0-20070801.tar.gz
cd mecab-ipadic-2.7.0-20070801
./configure --with-charset=utf8
make
sudo make install
mecab # テスト
sudo vi /etc/ld.so.conf
---
最終行に以下を追加
---
/usr/local/lib
sudo ldconfig # 共有ライブラリを認識させる

R 関係のインストール

R のインストール

sudo yum install R

R Studio のインストール準備 (最新版は 0.98)

sudo yum install openssl098e compat-libgfortran-41
cd ~/tmp
wget http://download2.rstudio.org/rstudio-server-0.97.551-x86_64.rpm
sudo yum install --nogpgcheck rstudio-server-0.97.551-x86_64.rpm
sudo rstudio-server verify-installation # install check
sudo rstudio-server start # RStudio Server 起動
sudo chkconfig rstudio-server on # chkconfig に登録

iptables 関係

sudo vi /etc/sysconfig/iptables
iptables
---
以下を追加
---
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8787 -j ACCEPT
sudo /etc/init.d/iptables restart

これで http://xxx.xxx.xxx.xxx:8787 (xxx.xxx.xxx.xxx は IP アドレス) にアクセスすることで、
ネット環境さえあればいつでも RStudio が利用可能に。

rstudio.png

また、R で MeCab を利用するには RStudio で以下を実行すれば良い。

install.packages ("RMeCab", repos = "http://rmecab.jp/R")

rstudio02.png

14
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
17