読者です 読者をやめる 読者になる 読者になる

ゆーすけべー日記

はてなBlogってどーなの!?

月額980円のさくらVPSを個人用に使い倒す

Technologies Web Essay VPS

Webサービスの運営用にVPSと呼ばれるバーチャル・プライベート・サーバを借りることは昨今よくあることだと思います。 VPSのサーバを借りればroot権限を持てることになるので、自由度が高いサーバ環境を構築することができます。 また、スペックによって価格が違っていて、低いスペックなものだと月額かなり低価格なものが存在します。 僕はその中でも月額980円のさくらVPSを借りていて、それを個人用に限って使っています。 これから紹介するような用途であれば980円でもかなりいけます。 ちなみに980円コースのスペックは2012年3月現在で以下のようなものです。

  • メモリ: 512MB
  • HDD: 20GB
  • CPU: 2Core(仮想)

スクリーンショット 2012-03-01 9.33.23.png



gitリモートレポジトリ

僕が現行で行っているWebサービスでもiPhoneアプリ開発でもバージョン管理は必要になってきて、 そのためのプライベートなレポジトリが欲しくなります。 githubなどでは無料で公開レポジトリが持てますが、プライベートレポジトリを持つには有料プランが必要です。 こちらを使ってもいいですがだんだんキリがなくなってくるので、 僕は980円VPSにgitのプライベートレポジトリを構築しています。

gitのリモートレポジトリを作るにはgitoliteというソフトがオススメです。 新規ユーザーを追加したり、 新たなレポジトリを追加したりする際に「管理用のレポジトリ」を取ってきてpushするだけで済むのが非常によいですね。 例えばレポジトリ「Hoge」を追加するとします。管理レポジトリを取ってきて

$ git clone git@yourdomain:gitolite-admin.git
$ cd gitolite-admin

「conf/gitolite.conf」に以下を追加します。

repo    Hoge
        RW+     =   @all

そしてcommitしてpush。

$ git commit -a -m 'add Hoge repo.'
$ git push

自動的に「Hoge」レポジトリを作ってくれます。

remote: creating Hoge...
remote: Initialized empty Git repository in /home/git/repositories/Hoge.git/

そのままgit cloneすれば空のレポジトリを取ってこれますね。

$ git clone git@yourdomain:Hoge.git
Cloning into Hoge...
warning: You appear to have cloned an empty repository.

他にもgitosisなどの管理ツールはありますが、色々ためしてこのgitoliteに落ち着きました。

gitレポジトリビューアー

さてgitのリモートレポジトリができたところで、僕はレポジトリ郡の様子をWebブラウザで閲覧したいと思い、 「gitweb.cgi」を設定しました。gitweb.cgiでは個々のレポジトリのコミットログやコードを表示してくれます。

筆者のgitweb.cgi

gitweb.cgiはgitのソースコードに同封されています。 いくつかの設定をしてApacheでcgiが実行されるようにすればよいのですが、 僕は980円VPSにApacheを入れていないので特殊な方法で立ち上げてます。 PerlモジュールであるPlackを入れて、

$ cpanm Plack

以下のような.psgiというファイルを書きます。

use Plack::App::WrapCGI;
use Plack::Builder;

my $app =  Plack::App::WrapCGI->new( script => '/home/git/gitweb/gitweb.cgi' )->to_app;
builder {
    enable "Plack::Middleware::Static",
      path => qr{^/static/},
      root => '/home/git/gitweb/';
    $app;
};

そしてplackupで起動すれば「http://yourdomain:3000/」などのアドレスで閲覧することができます。

$ plackup gitweb.psgi

工夫してBasic認証などを書ければ誰にも閲覧されない「俺だけの」レポジトリビューアーが完成です。

Blogのホスティング

本Blog「ゆーすけべー日記」も980円VPSでホスティングしています。 上記した通りWebサーバにApacheは使っておらずに基本的にはフロントに省メモリの「nginx」を使っています。 BlogはMovableTypeで動いていて、投稿時にHTMLなどの静的ファイルを書き出してくれるので、 それをnginxで配信するという形です。 これだと負荷がかかるのが再構築時のみなのである意味効率的かと思います。

さて、nginxはもともとCGIをサポートしてませんので、MovableTypeの管理画面のCGIを別途違う方法で動かす必要があります。 gitweb.cgiの時も使ったPlackで動かしましょう。 以下のようなMTディレクトリと同じ階層に置く.psgiを利用しています。

use File::Basename;
use Plack::Builder;
use Plack::App::CGIBin;
my $base_dir = dirname(__FILE__);
builder {
    enable "Plack::Middleware::Static",
      path => qr{^/mt-static},
      root => $base_dir;
      mount "/" =>
          Plack::App::CGIBin->new( root => $base_dir, exec_cb => sub { 1 } )->to_app;
};

これもplackupコマンドで立ち上げて、 「http://yourdomain:3000/」などにアクセスすれば管理画面を見ることができるはずです。

各種Webサイトのホスティング

Blogの他にも弊社のHPや小物のWebサービスも同じ月額980円のさくらVPSでホスティングしています。 このくらいだったら、メモリ512MBでもなんとかなるものです。 その他僕はあまり使いませんが、Trac、RedmineなどのBTSツールを入れても良いでしょうね。 また、チャットシステムのIRCのためにtiarraというゲートウェイを入れている人も多いですね。

まとめ

さくらの回し者ではないですが、この980円VPSをしばらく使ってきてなかなかいいです。 ちょっとしたモノを動かしたい時に「980円VPSがあるから」という安心感もあります。 人によっていろいろな活用法があると思うので自分なりの「使い倒し」をすればいいと思います!

宣伝

さくら980円VPSより安い!メルマガ「ゆーすけべーラジオ」はこちら