作業ログと所感の記録を目的としているため、ベンチマークテストは行っておりません。
経緯
- ServersMan@VPS(最小構成)で運用していたownCloudのファイル数が増えて、モッサリ感が無視できない状況になってきたため、なんとかしたかった。
- ServersMan@VPSのメモリ増設等で対応したかったが、契約して割と早い段階でリソースの増設ができなくなった。
→リソース増設受け付け復活の兆しが無いので思い切ってサーバー移行を決行。
結果
- ConoHa(最小構成)+CentOS7+nginxに移行したら比べ物にならないくらい速くなりました。
正確なベンチはとってないが、ざっくりと1GB(7,500ファイル)のフルアップロードが約30分→約8分(比べ物になった!)
- +500円の価値はあるから移行するといいと思います。
- 「このは」がかわいいとかは言わない。
おわり。
詳細
- サーバーサイドでのデータ移行(mysqlのdumpとって~等)はしていません。
ファイルはすべてクライアントにDLしてあるので、すべてアップロードしなおしました。
- 現行サーバーと新サーバーの比較です。
※OSもミドルウェアもがっつり変わってるので単純な比較はできませんが、参考程度に。
項目 |
現行サーバー |
新サーバー |
サーバープラン |
DTI ServersMan@VPS(最小構成) |
GMO ConoHa(最小構成) |
金額 |
467円 |
900円 |
CPU |
1core? |
2core |
メモリ |
1GB |
1GB |
ストレージ |
HDD 40GB |
SSD 50GB |
OS |
6.7 |
7.1.1503 |
Webサーバ |
Apache2.2.15 |
nginx1.8.0 |
PHP |
5.4.45 |
5.6.15 |
MySQL |
5.5.46 |
5.7.9 |
? ServersMan@VPSのCPUコア数は記述なし。
作業ログ
長いけど見るならクリック!
前提(手順はざっくり)
- CentOS7.1がインストールされている
- nginxがインストールされている
$ rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
$ yum install nginx
- yumリポジトリ「remi-php56」からPHP5.6がインストールされている
$ rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
$ yum install php-fpm
MySQLまわりのセットアップ
- yumからphp-mysqlのインストール
$ yum install php-mysql
$ systemctl restart php-fpm
- mysql-serverのインストール
$ rpm -ivh https://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
$ yum install mysql-server
$ systemctl start mysqld※初回起動時、/var/log/mysqld.logにrootの初期パスワードが出力されるのでメモっておく
$ grep ‘temporary password’ /var/log/mysqld.log
2015-11-09T05:59:42.998967Z 1 [Note] A temporary password is generated for root@localhost: N7UWS-B>kRHh
この場合は「N7UWS-B>kRHh」がパスワードになる。
- 初期設定
$ mysql_secure_installation
→mysqld.logから抽出したパスワードを使ってあれこれする。
- owncloud用のDB・ユーザー作成
$ mysql -uroot -p
※次のコマンド2つはmysqlのプロンプト内で実行
% create database dbname;
% grant all on dbname.* to username@localhost identified by ‘password‘;
※「dbname」「username」「password」にはそれぞれ任意の文字をいれること。
「dbname」は二か所あるけどどちらも同じ文字にすること。
- 一応確認
mysql -u username -p dbname
→先ほど設定したパスワード(passwordの部分)を入力してログインできればOK
owncloudインストール
- epelのyumリポジトリからインストール
$ yum install owncloud
※nginxを入れていたからか、Apacheではなくnginx用のパッケージ(「owncloud-nginx」とか)がインストールされた。
- nginxのconfを編集
$ vi /etc/nginx/conf.d/owncloud.conf
# 以下upstreamディレクティブを追加
upstream php-handler {
server unix:/var/run/php-fpm.sock;
}
sever {
# listen 80; # コメント化
listen 443 ssl; # コメント解除
server_name owncloud.example.com; # 変更
allow all; # 追加(一応)
# allow 127.0.0.1; # コメント化
# deny all; #コメント化
ssl_certificate /path/to/ssl/chained.crt; # 追加
ssl_certificate_key /path/to/ssl/key.pem # 追加
...
}
- owncloudのディレクトリの所有者がapacheになっているので、nginxにあわせて修正
$ chown -R nginx.nginx /usr/share/owncloud
$ chown -R nginx.nginx /etc/owncloud
- nginx再起動
$ systemctl restart nginx
OwnCloudの初期設定
- https://owncloud.example.com/へアクセス
– 初期設定の画面が表示されるはず。
※このとき権限エラーが表示されている場合はowncloudディレクトリの所有者を確認
※NotFoundとかになるならnginxの設定を見直す。
- 初期設定を入力
– 管理者用アカウント(ID/PW)は任意のものを
– データベースは「MySQL/MariaDB」を選択
※MySQLが選択できない場合はphp-mysqlが入っていない可能性がある。php-fpmの再起動した?
– データベース:dbname
– ユーザー名:username
– パスワード:password
– ホスト:localhost
所感
500円多く払っているのだからスペック向上して快適になるのは当然といえば当然なのですが、今後スケールアップしたくなったときにServersMan@VPSがリソース増設を受け付けていない可能性を考慮すると、単純にスペック向上だけではなく「いつでもスケールアップできる」という安心感も込みで500円追加したと言えなくもなく、それならまぁ費用対効果は申し分ないのではないかなと思います。
という+6,000円/年の支出に対する自分への言い聞かせ記事。
関連