Gehirn Web Services ファミリーの Gehirn RS2 に恋をして Pyramid を動かす
2012/11/22 記事の最後に追記しました
ただいま
ただいま! さくらインターネットの石狩データセンター見学から先ほど帰って来ました。
Gehirn RS2 とは
ゲヒルン株式会社 が先日リリースした Gehirn Web Services というインフラプラットフォームファミリーのうちの1プロダクトで、平たく言うとレンタルサーバーサービスです。
Gehirn RS2 のすごい話
- 安い
- 315 円から借りられる
- WAF (Web Application Firewall) が標準搭載
- 定期的にスナップショットが作成され、データを自動でバックアップできる
他にも、独自 SSL 証明書持ち込めて設定できたり、特定ホストへのアクセスをローカルのポートにリバースプロキシすることで Node.js とかで立てたサーバーに80番ポートでアクセスできたり、いろいろおもしろい機能がたくさん実装されています。 それなのに、1ヶ月315円で借りられます。
ご存知のように、ぼくの自室内に自分専用の VPS サービスが構築されていて、運営してるサービスのほとんどを自宅サーバーから提供している程度にはサーバーに困らない生活を送っていますが、この中二心をくすぐる素敵なサーバーを使ってみたいということ、 Gehirn の社長と知り合いであることなどから、発表された日の夜にバイト帰りの電車の中で契約しました。 安価でいいおもちゃが手にはいりました。
Python を使う
私といえば Python です。 なので、 Gehirn RS2 の特徴でもあるリバースプロキシ機能を使って Python で書いた WSGI アプリケーションをローカルでデーモンとして動かし、外から gehirn-rs2.yosida95.com にアクセスすればローカルで動いているアプリケーションにアクセスできるようにしました。
Python のバージョンを調べる
$ python --version
Python 2.6.6
あれ……? Python 2 系の最新安定版って 2.7.3 だよな……?
rs2 コマンド
Gehirn RS2 には rs2 コマンドというものがあって、例えば Node.js を使いたい場合は
$ rs2 install node
として Node.js をインストールした後
$ rs2 use node
とすれば、 Node.js が使えるようになります。
install の際は、最新バージョンのソースコードをダウンロードしてきてビルドしてくれます。
もしかして同じように Python もつかえるのではないか……?
$ rs2 install python
Usage:
:
:
だめか……。
ソースからビルド
しかたがないので、 python.org から Python 2.7.3 のソースコードをダウンロードしてきて自分のホームディレクトリの下でビルドしました。 この件について、 Gehirn の社長に「 Python 2.7.3 を使いたいんだけど」ってリプを送ったところ次のようにお答えをいただきました。
一段落。寝る。 - The Pyramid Web Application Development Framework: http://t.co/1ovhoFdC #miteru
— Kohei YOSHIDA (@yosida95) November 12, 2012
@yosida95 おおー!乙!!
— isidai (@isidai) November 12, 2012
@isidai Python2.7 ビルドして、A, AAAA レコード設定して、Pyramid 入れて走らせただけなんですけどねww
— Kohei YOSHIDA (@yosida95) November 12, 2012
@yosida95 それだけでも十分!
— isidai (@isidai) November 12, 2012
@isidai Python2.7.3 標準で入ってくれませんかね(/ω・\)チラッ
— Kohei YOSHIDA (@yosida95) November 12, 2012
@yosida95 virtualenv対応じゃダメですかね
— isidai (@isidai) November 12, 2012
@isidai それだと結局Python 2.7 系をビルドする手間がかかるのは同じなので、あってもなくても良くなっちゃうなーとは思います。
— Kohei YOSHIDA (@yosida95) November 12, 2012
@yosida95 2.6がいい、2.7がいい、3.1がいいっていう意見を全部聞いてると結局virtualenvに辿り着くのです…
— isidai (@isidai) November 12, 2012
ということで、 Gehirn RS2 には virtualenv と virtualenvwrapper を /usr/local/bin 以下に入れていただけました。 この、 Twitter とかで要望出してカジュアルにレンタルサーバーが使いやすいものになっていくのってとってもステキだと思います><
Pyramid アプリを起動
ご存知とは思いますが、 Pyramid というのは Python の超素敵な WAF(Web Application Framework) で、家系図的に言うと Pylons2 に当たるプロダクトです。
早速 virtualenv を1個切って、
$ pip install pyramid
$ pcreate -t starter testproj
$ cd testproj
$ python setup.py develop
を実行してさくっと Pyramid プロジェクトを作りました。 pcreate の時点で / にサンプルのビューが定義されているので、これを利用してサクッと動作を確認してしまします。
- 自分に割り当てられたポート番号を確認する
- 自分に割り当てられたポート番号を使用して WSGI サーバーを立ち上げる。
以上の設定でリバースプロキシの設定が完了です。 外部からアクセスしてみてください。
最後に
俺が Gehirn RS2 でもっとも最初に Python 2.7.3 を動かし、最初に Pyramid 製アプリケーションを動かし、最初に gunicorn を起動し、最初に Python 3.3.0 を動かした人です!!!(よしだ調べ)
追記
なんとこの記事を公開したその日、 rs2 install python が実行できるようになりました! これを実行すると、 pythonbrew がインストールされます! やばい! 対応早い! pythonbrew ってどうよって話は置いといて
@yosida95 rs2 install python でpythonbrew入るようになったので普通に使えるか見て欲しいです。
— isidai (@isidai) November 19, 2012