スマートフォンをサーバー化
機種変更して使わなくなったスマートフォン.なかなかのハイスペックな上,常時電源ONが前提の仕様.バッテリーまで入っているという要素を並べてみると,案外サーバー向きなのではと思い,無料のアプリを使って遊んでみた.
Motivation
以前からphpやMySQLで遊んでみたいと思いながらもなかなか一歩踏み出せない状態にいた.環境を用意するのがめんどくさかったためだ.こうした場合,一般的にはサーバーを用意するか,PC上にローカル環境を構築するか,フリーのレンタルサーバーを登録するか,が候補となる.前者2つはいずれも手間がかかるイメージなので,以前 少し遊ぶ場合には,フリーのサーバーを利用していた.(php+MySQL)が使える=WordPressが使える,なのでWordPressを構築できるサーバーを探すとたくさんhitする.
でもこうしたフリーのサーバーは結構制約が大きい.安定性が悪かったり自由度が低かったり.私が利用したサーバーでは,サーバー上のファイルからしかMySQLのDBにアクセスが許可されておらず,ローカルアプリケーションから直接つなぐことができず,困ってしまった…
スマートフォンの特徴
ここ数年,androidスマートフォンの性能はインフレ気味で,デュアルコア・クアッドコアCPU,メモリ2GB以上は当たり前という恐ろしい状態(スペック的には十分).スマートフォンは常時電源を入れて使うことが前提の設計になっている(常時起動を前提としていないノートPCをサーバー化した結果,ホコリで火事になったという記事を以前見かけたので).おまけにバッテリーまでついている(停電が起きても心配ない).これって,すごくサーバー向きじゃないか?そう思いWEBで調べてみると,予想通りいろんな情報が転がっている.できそうな予感.
実際にやってみた
PlayStoreで「MySQL」と検索してみると,まずMySQLのクライアントアプリがたくさんhitする.求めているものはサーバーアプリなのでしばらくスクロールして飛ばしていくと,それらしきものもいくつか見つかった.無料アプリから有料のものまで.今回はその中から無料のPalapa Web Serverをchoiceしてみた.
WEB Serverでphpを動かす
使い方はいたって簡単でインストールした後アプリを立ち上げ,Startを押すだけ.これでサーバーが起動する.Stopを押せば当たり前だがサーバーが落ちる.標準では端末ローカルストレージの /psw/www/ がWEB Serverのホームディレクトリとなるので,ここに以前 作ったphpファイルを配置してみた.あとは指定されたURLを同一LAN上の端末(PC)からアクセスして動作を確認する.結果,問題なくあっさり機能した.同一LAN上で同時に1アクセスと負荷をかけていないため,レスポンスも悪くない.ちょっとした動作確認なら問題なさそう.
MySQLを動かす
次にMySQL.phpMyAdminをサーバー上にインストール(ファイルを配置)してPCから管理画面へアクセスしてみた.これも問題なし.ややレスポンスは悪いが.
ADO.NETを介して.NETのローカルアプリケーションからMySQL DBの操作も試みた.問題なく接続でき,DBの参照・更新ができた.ただ今回試したものの中で一番レスポンス・安定性が良くない.3回に1回程度 接続タイムアウトが発生してしまう.更新時のトランザクションに気を配らないとデータの不整合が起きそうな予感.
まとめ
アプリをインストールするだけで,簡単にandroidスマートフォンをサーバー化できることがわかった.これならphpやMySQLを触る際の敷居がかなり下がると思う.もちろんちょっとした開発・検証用途としてであり,このサーバーを活用してがっつり何かを運用しようとは思わないほうがよいかな(本気で何かするならちゃんとしたサーバー立てるか,PaaSを契約するか).