さくら VPS 1G の CentOS で行った設定手順メモ

はじめに

これからのエンジニアは、プログラミングだけでなくインフラのスキルも必要だと思っているけど、インフラの経験は皆無。このままではマズイ。ということで、インフラの勉強を決意。
サーバーを調達して、MySQLApache などのミドルウェアをインストールし、実際に Web アプリケーションを運用してみようと思う。

さくらの VPS(1GB) を申し込む

ルート権限が欲しいけど、サーバー用のマシンを調達するお金はない。そこでさくらの VPS に申し込むことにした。

1GB のプランで月980円。これなら自分の小遣いから十分払える。支払いはクレジットカードで。

さっそくセットアップ開始

OS は CentOS のままにしておく。カスタムインストールで他の OS に変更できるから、CentOS をいじり倒したら Ubuntu に変更するかもしれない。

作業は さくら VPS コントロールパネルのリモートコンソールで行う。

root のパスワードを変更

さくら VPS にサインアップしたら送られてくる仮登録メールに、root のパスワードが載っているので、まず root でログインする。

passwd

で root のパスワードを変更。

作業用アカウントを作成

useradd <username>

で作業用アカウントを作成。 は適当なものにしておく。

作成したアカウントは

passwd <username>

でパスワードを設定する。

作業用アカウントで sudo を使いたいので

usermod -G wheel <username>

を実行して wheel グループに追加する。

visudo

を実行し、

%wheel ALL=(ALL) ALL

コメントアウトを解除すれば、作業用アカウントで sudo が使えるようになる。

保存したら、作業用アカウントでログインし直す。

SSH でアクセスできるようにする

さくら VPS のコントロールパネルで作業するのは面倒なので、SSH クライアントを使って作業できるようにしたい。そこで SSH でログインできるように設定する。

クライアントマシンに PuTTY をインストール

クライアントマシンは Windows なので、SSH クライアントは定番の PuTTY を使う。

クライアントマシンで公開鍵を生成

PuTTY 付属の puttygen を使って RSA の秘密鍵と公開鍵を生成する。
画面に表示された鍵をコピーし、authorized_keys という名前で保存。

公開鍵をアップロード

生成した公開鍵を、PuTTY 付属の pscp を使ってサーバーにアップロードする。

pscp.exe -P 22 -pw <password> authorized_keys <username>@<host>:. 

作業用アカウントのホームディレクトリにアップロードされているから

mkdir .ssh
chmod 700 .ssh

mv authorized_keys .ssh/

cd .ssh
chmod 600 authorized_keys

を実行。

SSH の設定を変更
sudo vim /etc/ssh/sshd_config

で SSH の設定を開き、下記の部分を変更する。

Port 10022

PermitRootLogin without-password
PasswordAuthentication no

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

sshd を再起動。

sudo /etc/init.d/sshd restart

PuTTY でログインできるか確認。無事ログインできたら、以降の作業は PuTTY で行う。

CentOS のチューンアップ

メモリ使用量チェック
[<username>@<host> ~]$ free
             total       used       free     shared    buffers     cached
Mem:       1020688     419616     601072          0      42900     285768
-/+ buffers/cache:      90948     929740
Swap:      2096472          0    2096472

既に 400MB 使っている。これだと Apache や MySQL を動かすには心もとない気がする。不要なデーモンを止めて、使用メモリを減らしたほうがよさそうだ。

不要なデーモンを止める

を参考に

sudo chkconfig auditd off
sudo chkconfig haldaemon off
sudo chkconfig lvm2-monitor off
sudo chkconfig mdmonitor off
sudo chkconfig netfs off
sudo chkconfig restorecond off
sudo chkconfig smartd off

を実行。

selinux を無効にする
sudo vim /etc/sysconfig/selinux

で設定ファイルを開いて、

SELINUX=disabled

に書き変え…ようと思ったら、さくら VPS では最初から無効になっていた。

再びメモリ使用量チェック

サーバーを再起動し、チューンアップ後のメモリ使用量を見てみる。

[<username>@<host> ~]$ free
             total       used       free     shared    buffers     cached
Mem:       1020688     110800     909888          0      27360      27152
-/+ buffers/cache:      56288     964400
Swap:      2096472          0    2096472

300MB ほど削減されていた。さくら VPS の CentOS では最初から selinux が無効だったので、デーモンが結構メモリを食っていたみたいだ。

アプリケーションをインストール

vim はプリインストールされていたから、あと zsh と screen をインストールする。

sudo yum install -y screen
sudo yum install -y zsh
chsh -s /bin/zsh <username>

ひとまず CentOS のセットアップは完了

疲れた…。これだけで何時間かかったことか。特に SSH まわりは嵌った。
一区切りついたので、今回はここまでにしておく。MySQL や Apache や Python は後でインストールしよう。