自宅サーバーの電気代を抑える方法 #WebサーバーをRaspberryPiに載せ替え

2015年12月24日

RaspberryPi サーバー テクノロジー 日記

自宅の電気代が1万円もあることがとてももったいなく思えてきたので、そろそろ本気で節電に取り組もうと思う。 確かにクラウドサーバーを使った方が安くなるというのもハラがたつので、できれば、終了形態は太陽光発電で、電気代なしサーバーを実現したいという構成である。 前回はHDDがいっぱいのせてあるストレージサーバーをWOL起動化した事により、必要時以外は待機電力しか発生しないようになっている。 自宅サーバーの電気代を抑える方法 #WOL

概要と構成

現在は、Shuttleの小型ベアボーンとSSDという高速かつ、まあまあのスペックという事で、ダウンもせずに頑張ってくれてます。 今回はRaspberryPiの64MB領域で使うので、電気代は格安になる事間違いないが、負荷に対しての対応はどの程度、堅牢なのかわからないので、とりあえず、構築して、インフラ内で負荷を与えてみたいと思う。

構築

まずはRaspberryPiに「Raspbian」をインストール(以前のブログを参考にしてください) RaspberryPiのOSをMacのコマンドでインストールする。 ちなみに、余談だが、今回「Raspbianの2015-11-21」バージョンを使ったんだが、SD-Cardに書き込む時間が以前だと30分ほどだったのが、50分以上かかったので、新規セットの時間が大きく増えていることに気が付きました。 sudo dd if=2015-11-21-raspbian-jessie.img of=/dev/disk2 bs=1m Password:***** 3752+0 records in 3752+0 records out 3934257152 bytes transferred in 3738.501097 secs (1052362 bytes/sec) webサーバーはwordpressサーバーなので、下記モジュールをインストール

Nginx

$ apt-get install nginx

PHP-fpm

$ apt-get install php5-fpm

MySQL

$ apt-get install mysql-server

Wordpress(ディレクトリコピー)

$ rsync -av user@192.168.1.**:/var/www/html/wordpress ./

データコピー

# MySQLのデータをダンプ $ mysqldump -u root -p wordpress > wordpress.sql # 現在サーバーからRaspberryPiにデータコピー rsync -avP wordpress.sql pi@192.168.1.** # MysqlにDatabaseがない場合は以下コマンドで構築 $ mysql -u root -p Enter password: ******** mysql> create database wordpress; Query OK, 1 row affected (0.00 sec) # RaspberryPiでSQLデータのリストア $ mysql -u root -p wordpress < wordpress.sql

Nginx設定

server { listen 80; server_name wordpress.ideacompo.com; root /var/www/html/wordpress; index index.html index.php; include /etc/nginx/default.d/*.conf; location / { if (-f $request_filename) { expires 30d; break; } if (!-e $request_filename) { rewrite ^.+?(/wp-.*) $1 last; rewrite ^.+?(/.*.php)$ $1 last; rewrite ^ /index.php last; } } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } location ~ \.php$ { fastcgi_param SCRIPT_FILENAME /var/www/html/wordpress/$fastcgi_script_name; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; } }

CentOSとDebianの設定をできるだけ同じにするために

CentOSのProxy設定は /etc/nginx/conf.d/**.conf というパスになりますが、Debian系は /etc/nginx/site-enabled/** という風にapacheに準拠したような内容になります。 でも、Debian系でも、「conf.d/**.conf」階層も同時に読み込んでいるため、 ファイル名に拡張子をちゃんとつけてconf.dフォルダに格納することで、同じ設定状態にすることが可能です。

アクセス値比較

Chromeブラウザのデバッグモードに表示される値で判断
現在サーバー | Load: 4.70s RaspberryPi | Load: 20.06s
これはヤバいですね。 RaspberryPiだと5倍ぐらい表示速度が遅いです。 正直WEBページ表示としては致命的な遅さです。 きっとwordpressの性能としてはこんなものなんでしょう。 自分でフレームワークを作れば同じぐらいの性能を出すことは可能なんですが、今回はこの値を元に、本番切り替えは断念したいと思います。

このブログを検索

ごあいさつ

このWebサイトは、独自思考で我が道を行くユゲタの少し尖った思考のTechブログです。 毎日興味がどんどん切り替わるので、テーマはマルチになっています。 もしかしたらアイデアに困っている人の助けになるかもしれません。