2012/06/27

Google App EngineでWANアドレス管理サーバー(開設編)

自分の元wavecastマシンへ外からアクセスするには誰かがWAN側のIPアドレスを管理する必要がある訳だけど、今まではwavecast.tvがその役割をしていた。けれど、UbuntuServerで再構築してしまったので、自分でなんとかしないと。
固定IPとかDDNSではお金がかる。

そこで思ったのが、今流行のクラウドサービスを利用すれば無料で出来るんじゃん?と。
で軽く調べると世の中には沢山似たようなサービスがあったとさ。ありすぎてよくわからないので、自分に一番身近で無料で気軽に使えそうなのが、Goole App Engine だった。

ここで使えるスクリプト言語は日頃使っているJavaやPythonで書けるらしいと。
(ほんとはRubyで書きたいけど。実はそういう環境を作れたりするんだなこれが)
無料で10個の独立したアプリケーションを作れるらしいと。
MySQLじゃないけど、もどきSQLDBっぽいものが使えるらしいと。
Cronタスクも走らせられるらしいと。
日本語ドキュメントも分かりやすい。いけそうだ。

プランとしては、
app-engine上の自分のアプリにcronとかで定期的に元wavecast(名前が欲しいな・・)でアクセスして、そんときのWANアドレスをアプリ側のDBで覚えておいて、アプリにブラウザでアクセスしたら、WANアドレスでのURLが出てくるようにすればよい。
wavecast.tvとイメージは同じだ。

サイト開設のために必要なもの
・当然googleアカウントがいる。
・携帯キャリアのメールアドレスがいる。うーん。これがいやだ。

アプリケーション作成(サーバー)
appengine.google.comでアプリケーション名を決めてアプリ作成。
ここで作成した名前はhttp://アプリ名.appspot.comでアクセスできる。
自分は.comドメインを持ってるんで頭を同じ名前をつけた。
早い者勝ちなので、何はさておき、作っておきます。

SDKダウンロード
ローカルでアプリ開発するためのライブラリとアップロード・ダウンロードするツール一式が入ったSDKをダウンロードする。JavaにするとJRubyが使えるようになるらしいけど、今んところPythonじゃないとサポートしていないサービスがあるらしいのでPythonにした。


そうそう。Mac/Windows版のSDKを使えばGUIで便利にできるらしい。
私は端末一つで十分なので使わない。試しにWindows版を入れてみたけどMinGWやCygwinとか色々入ってるためかまともに動かなかった。やっぱりConsoleが一番!


アプリケーション作成(ローカル)
チュートリアルにそって、ざっと流れを把握する。これってRailsみたいだ。
全くその通りのことを説明されているぺーじもありました→appengineでRoR
チュートリアルのHelloWorldはせっせと必要なファイルを手作業で作る説明になってるけど、SDKに、'new_project_template'があるんで、これをコピって使うのが手っ取り早い。
アプリ名と同じ名前のディレクトリを作って、そこに放り込む。

app.yaml
application: サーバー側に作成したアプリ名を記述

main.py
あとは、ここのgetメソッドに色々書けばアプリとして動作する。

動作テスト
$ dev_appserver.py [app-name] で、テストサーバーを起動する。
http://localhost:3000でアクセスして動作を確認。

アップロード
$ appcfg.py update [app-name] で、サーバーにアップロード
動作テストが終わったら、本物へアップロードして動作確認。

サイト開設から、アプリ動作確認まで出来たので、次回は目的のものを作ってみる。

0 件のコメント:

コメントを投稿