はじめに
これからのエンジニアは、プログラミングだけでなくインフラのスキルも必要だと思っているけど、インフラの経験は皆無。このままではマズイ。ということで、インフラの勉強を決意。
サーバーを調達して、MySQL や Apache などのミドルウェアをインストールし、実際に 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 をインストール
クライアントマシンで公開鍵を生成
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 は後でインストールしよう。