LoginSignup
2
2

More than 5 years have passed since last update.

Conoha VPSにRstudio serverを置いてみた

Last updated at Posted at 2019-02-23

Conoha VPSにRstudio serverを置いてみます。

何故VPSに置いたか

今回はconohaの2CPU/RAM1GBプランのサーバーにRstudio serverを置いてみましたが、コンパイルが走るpackageのインストールなどではかなり時間が掛かってしまいます。今回は勉強会で公開する為に変な使われ方をしても平気なようにVPSを選択しましたが、重い計算を走らせるつもりならAWS EC2などで使うときだけゴツいインスタンスを立てるなどした方が良さそうです。VPSだとサーバーを削除しない限り課金は止まりませんので、普通の使い方だとVPSで立てるというやり方はイマイチかも知れません。

ちなみに2CPU/RAM1GBだと、以下のようにpackageをまとめてインストールしようとすると軽く1時間ぐらい待たされます。
image.png

本エントリではポート変更やrootログインの無効化などを行っていませんが、そのままだと総当たり攻撃を受けまくりますので対処してください。
https://qiita.com/studio_haneya/items/455b6a5acf8095c08f1a

試行環境

手元環境: Windows10+tera term
VPS環境: conoha VPS 2CPU/RAM1GB ubuntu18.04

VPSサービスを契約してサーバーを立ち上げる

まず、Conohaアカウントを作ってサーバーを立ち上げます。
https://www.conoha.jp/

2CPU 1GBのサーバーを作ってみました。Conohaはサーバーのスペックを増減するときも日割りで計算されるので適当に選んで足りなかったら後でいつでも変更できるのが良いですね。

ネームタグをクリックするとそのサーバーの詳細画面に入れます。
image.png
conohaのサーバーの設定方法やターミナルからのログイン方法は公式サイトに詳しいインストラクションがありますので、こちらも参考にしましょう。
https://support.conoha.jp/v/study-03/

ターミナルでログインしてsudoユーザーを作る

conohaのインストラクション通りtera termを使いたいと思います。最新バージョンをダウンロードしてインストールします。
https://ja.osdn.net/projects/ttssh2/releases/

インストール出来たらtera termを起動します。これからアクセスするVPSのグローバルIPとID、パスワードを入力すればVPSにアクセス出来ます。IPはconohaサイトのコントロールパネルに書いてありますので、これを使います。下の画像だとIPが111.11.11.111であるサーバーにアクセスしようとしています。
image.png
IDはroot、パスワード(パスフレーズ)はconohaでサーバーを立てるときに入力したものです。
image.png

続いて一般ユーザーアカウントを作ります。いまはroot権限でログインしていますが、rootは何でも出来て危険なので権限を制限した一般ユーザーから実行するようにしなきゃいけないそうです。ここではhogeというユーザーを作っていきたいと思います。実際にはhogeではなくなんかそれっぽいアカウント名を決めてくださいね。

adduser hoge

なお、間違って作成したアカウントhogeをadduserで作成したフォルダごと消去するには以下を実行します。

sudo userdel -r hoge

adduserで一般ユーザーが作れましたが追加したばかりのユーザーはsudoが実行できません。sudoが実行できないとRstudio serverをインストールできませんから、上記で作ったユーザーhogeに権限を付与します。sudoが実行できるかどうかは/etc/sudoersに書かれているので、このファイルの書き換える専用コマンドであるvisudoを実行します。

visudo

開いた/etc/sudoersには既に%adminグループと%sudoグループがあります。新たに追加しなくても%sudoグループにユーザーを追加してsudo権限を付与したいと思います。

# User privilege specification
root    ALL=(ALL:ALL) ALL

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

hogeというユーザーを%sudoグループに追加します。

sudo usermod -aG sudo hoge

グループに追加できたか確認しておきます。最後に.27(sudo)とあるので追加できているようです。

# id hoge
uid=1000(hoge) gid=1004(hoge) groups=1004(hoge).27(sudo)

これでsudoが使えるようになった筈ですので、一旦ログアウトします。以下を実行するとtera termが閉じますので、再度tera termを実行して次は作成したアカウントhogeでログインします。

terminal
exit

Rstudio serverのインストール

ubuntuでRをインストールすると古いのが入っちゃいます。古いRだと大抵のパッケージが動かなくて地獄なので、最新のが入るようにaptのソースリストにダウンロード元のURLを指定しておきます。ダウンロード元URLはubuntuのバージョンによって違うので、使っているubuntuの開発コードを確認しましょう。

terminal
cat /etc/lsb-release

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=18.04
DISTRIB_CODENAME=bionic
DISTRIB_DESCRIPTION="Ubuntu 18.04.2 LTS"

開発コードはbionicのようです。ubuntu16.04はtrustyなので同じubuntuでもバージョンが違うと開発コードも違うという事のようです。各開発コードごとのダウンロードURLは以下で公式情報が確認できます。
https://cran.r-project.org/bin/linux/ubuntu/README.html

2019年3月時点でのbionic用URLは「https://cran.rstudio.com/bin/linux/ubuntu bionic-cran35/」です。ソースリストである/etc/apt/sources.list/に上記を指定する行を追加します。

terminal
sudo vim /etc/apt/sources.list
追加する行
deb https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/

ダウンロード元の公開鍵を登録します

terminal
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9

これで準備が整ったので、Rをインストールします。

terminal
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install r-base-dev

RStudioServerをインストールします。公式サイトのインストール手順をそのままやってますがversionごとにURLが違うようなので、公式の最新コードを実行するようにしてください。

terminal
sudo apt-get install gdebi-core
wget https://download2.rstudio.org/rstudio-server-1.1.463-amd64.deb
sudo gdebi rstudio-server-1.1.463-amd64.deb

これでインストールを完了しましたのでアクセスしてみましょう。グローバルIPはVPSの管理画面から見られる筈です。例えばConohaならサーバー情報ページのネットワーク情報のところを開くとIPアドレスと書かれた右側に表示されています。
image.png
Rstudio serverのポートはデフォルトで8787ですので、もしIPが「111.11.11.111」である場合はブラウザのURL欄に「111.11.11.111:8787」と記入してアクセスするとRstudio serverのログイン画面が表示される筈です。
image.png

Rが上手く入らないとき

僕の環境では最新のRが上手く入りませんでした。その場合は最新バージョンをインストールするのではなく、アップデートすると上手くいくようです。
https://askubuntu.com/questions/1046289/unable-to-install-r-3-5-0-in-ubuntu-bionic-beaver-18-04

1. まず/etc/apt/sources.listから追加した行を消去します
2. 要らないのを消します

terminal
sudo apt-get autoremove
sudo apt-get update
sudo apt-get upgrade

3. 古いバージョンのRを入れます

terminal
sudo apt-get install r-base

4. /etc/apt/sources.listにダウンロード元のURLを追加します

追加する行
deb https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/

5. パッケージのupgradeを実行します

terminal
sudo apt-get update
sudo apt-get dist-upgrade

Rstudio用のポートを変更しておく

Rstudio serverの設定については以下が詳しいので見ておきましょう。
http://memorandum2015.sakura.ne.jp/docs/server/configuration.html

とりあえずポートだけ変更しておきます。まず、デフォルトでは存在しない設定ファイルである/etc/rstudio/rserver.confをtouchコマンドで作ってから、vimで書き換えます。このファイルはsudoじゃないと書き換えられません。

terminal
sudo touch /etc/rstudio/rserver.conf
sudo vim /etc/rstudio/rserver.conf

ポート指定の1行を追加して保存します。以下だと1111ポートに指定します。

terminal
www-port=1111

書いた内容に問題ないか確認しておきます。何も返事がなければ正常に書き換えが出来てます。

terminal
sudo rstudio-server test-config

問題ないようなら再起動します。

terminal
sudo reboot

ブラウザでアクセスして確認しておきましょう。
image.png

パッケージのインストールに必要なライブラリのインストール

Rのパッケージをインストールする際に必要なライブラリをインストールしておきます。入ってなくてもRstudio自体は動きますが、install.packages()するときにエラーが出てしまいますので入れておいた方が良いと思います。

httr, RCurlに必要なlibcurl4-openssl-devをインストール

terminal
# sudo apt-get install libcurl4-openssl-dev

RMySQLに必要なlibdbd-mysql libmysqlclient-devをインストール

terminal
# sudo apt-get install libdbd-mysql libmysqlclient-dev

maptoolsに必要なlibgeos-devをインストール

terminal
# sudo apt-get install libgeos-dev

XMLに必要なlibxml2-devをインストール

terminal
# sudo apt-get install libxml2-dev

Rstudio server用ユーザーを追加する

linuxユーザーのIDとパスワードがそのままRstudio serverのユーザーIDとパスワードとして使われるようです。sudoersにする必要はありませんので、単にユーザーを作ります。

terminal
sudo adduser huga

ここで設定したIDとパスワードでRstudio serverにログインできるようになります。

グラフに日本語を表示できるようにする

Ubuntu18.04のXウィンドウ版は標準で日本語フォントが入っているようですが、コマンドラインにはインストールされないようで、RStudioServerのグラフに日本語を使おうとすると豆腐になっちゃいます。
68747470733a2f2f71696974612d696d6167652d73746f72652e73332e616d617a6f6e6177732e636f6d2f302f3237373233332f34643032353032322d643964302d323638372d323664382d3131383036653364356162642e706e67.png
インストールされてるフォントの一覧を確認します。

terminal
$ fc-list
/usr/share/fonts/truetype/dejavu/DejaVuSerif-Bold.ttf: DejaVu Serif:style=Bold
/usr/share/fonts/truetype/dejavu/DejaVuSansMono.ttf: DejaVu Sans Mono:style=Book
/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf: DejaVu Sans:style=Book
/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf: DejaVu Sans:style=Bold
/usr/share/fonts/truetype/dejavu/DejaVuSansMono-Bold.ttf: DejaVu Sans Mono:style=Bold
/usr/share/fonts/truetype/dejavu/DejaVuSerif.ttf: DejaVu Serif:style=Book

やはり日本語フォントがないようですのでインストールします。ubuntu18.04のXウィンドウ版で標準になっているgoogle notoフォントを使おうと思います。ちなみにnotoはno more tofuの略で、マルチバイト文字が表示できなくて豆腐になっちゃうのを防ごうという動機で作られたフォントなんだそうです。ありがたやですね。

sudo apt-get install fonts-noto-cjk

インストールできたか確認しておきます。

$ fc-list : family

Noto Sans Mono CJK TC,Noto Sans Mono CJK TC Bold
Noto Sans Mono CJK TC,Noto Sans Mono CJK TC Regular
Noto Sans Mono CJK SC,Noto Sans Mono CJK SC Regular
DejaVu Sans Mono
Noto Serif CJK JP
Noto Serif CJK KR
Noto Sans CJK SC,Noto Sans CJK SC Regular
Noto Serif CJK SC
Noto Serif CJK TC
Noto Sans CJK TC,Noto Sans CJK TC Regular
Noto Sans CJK KR,Noto Sans CJK KR Bold
Noto Sans CJK JP,Noto Sans CJK JP Bold
Noto Sans CJK SC,Noto Sans CJK SC Bold
DejaVu Sans
Noto Sans CJK TC,Noto Sans CJK TC Bold
Noto Sans Mono CJK SC,Noto Sans Mono CJK SC Bold
Noto Sans Mono CJK JP,Noto Sans Mono CJK JP Regular
Noto Sans CJK JP,Noto Sans CJK JP Regular
Noto Sans Mono CJK KR,Noto Sans Mono CJK KR Regular
DejaVu Serif
Noto Sans CJK KR,Noto Sans CJK KR Regular
Noto Sans Mono CJK KR,Noto Sans Mono CJK KR Bold
Noto Sans Mono CJK JP,Noto Sans Mono CJK JP Bold

無事インストールできたようなので、RStudioServerで確認してみます。
image.png

というわけでVPS上にRstudio serverが作れました。
やったね!

2
2
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
2
2