前に書いたEclipseによる開発環境構築以外に、コマンドラインでやる方法もある。
Google App Engine SDK for Java のインストール
-
ダウンロード – Google Code から、Google App Engine SDK for Java をダウンロードする。
-
ダウンロードしたSDKを、任意のフォルダに解凍する。※ここでは、c:\opt\java に解凍した。
-
コマンドラインで使うときの為に、環境変数を登録しておくと便利。
-
SET PATH=%PATH%;c:\opt\java\appengine-java-sdk-1.2.6\bin
-
SET GAE_HOME=c:\opt\java\appengine-java-sdk-1.2.6
-
コマンドプロンプトを開き、サンプルアプリケーションを起動してみる
-
cd %GAE_HOME%
-
bin\dev_appserver.cmd demos\guestbook\war
参考サイト
Java SDK のインストール – Google Code
脳内で、月間PVが300万PV位のソーシャルメディアを、Google App Engine for Java にのせてみる。
■ストレージ容量
無償は1GBまで。
コンテンツ、画像、DBでだいたい50GB位と仮定。
$0.005 x 50GB x 30日 = $7.5 / 月
■ネットワーク帯域
無償は、上り、下り それぞれ 10GB /日まで。
下りの 1日当たりのデータ転送量は、仮に4GB/日と仮定すると・・・
要らんやん。
上りはもっと少ないから、当然無償だな。
■CPU時間
無償は 6.5時間 / 日 まで。
以降、 $0.10 / 時間
これは読めないなぁ。
色々遊んでみて、感覚を掴むしかないか。
とりあえず、20時間として、
13.5時間 * $0.1 * 30 = $40.5
■メール送受信数
2000件 / 日 までは無料。
週3回、32000通のメルマガを発行したとして、
30000 * $0.0001 * 3 * 4 = $36 / 月
これが一番高くつきそうやん。
それでも4000円以下だから、メールサーバのホスティングとか管理とか考えたら安いモノだけど、
大量のメール送信を伴うアプリケーションは、別途ホスティング等を考えた方がいいかもしれない。
■合計
・ストレージ $7.5
・ネットワーク帯域 Free
・CPU時間 $40.5
・メール送受信 $36
計 $84.0
Amazon Web Services (EC2) で、同じ条件で脳内試算したときは、$185.1 だったから、半額以下になる。
しかもGAEの場合は、サービス立ち上がり当初 ~ 一定規模までは、無償な訳だから、圧倒的にコストメリットが高い。
GAEって素敵。
Google App Engine for Java (GAE/J) で、静的ファイル ( html、css、js ) を扱おうとして、
WARNING: Can not serve /hoge/hoge.nocache.js directly. You need to include it in in your appengine-web.xml.
てな感じで怒られる。
appengine-web.xml の書き方が間違っているらしい。
<static-files>
<include path="/**.html" />
<include path="/**.css" />
<include path="/**.js" />
</static-files>
こう書いてたけど、これではルート直下のんしか駄目らしい。
ルート以下の任意のサブディレクトリの下にも適用するには、
<static-files>
<include path="**.html" />
<include path="**.css" />
<include path="**.js" />
</static-files>
こっちが正解らしい。
Google App Engine for Java (GAE/J) で、まずはHTMLファイルをデプロイだ!
つまづいた事 その1
GAE/J での開発は、eclipseのプラグインで始めてます。
まず eclipse に慣れてないもんで、素のHTMLファイルってどう扱うかでつまづいた。
JSPとかjavaとかは、workspaceのディレクトリに直接作って編集したりしているもんだから、そのノリでHTML作っても、Javaパースペクティブのパッケージ・エクスプローラに出現しない。
よく判らないけど、eclipse のパッケージ・エクスプローラ上で右クリック – [新規] – [ファイル] でもって、HTMLを作成したら、ちゃんとパッケージ・エクスプローラにも表示されました。
つまづいた事 その2
Google Codeを読んだ。
warフォルダ直下にhtdocsディレクトリを作成し、その中にHTMLファイルを作成した。
HTMLを静的ファイルとして明示的に扱う様に、web.xmlを編集した。
<static-files>
<include path="/htdocs/**.html" />
</static-files>
良く読んでから気づいたけど、web.xml じゃなくって appengine-web.xml だった。
先入観でやったら駄目ですね。
JDK 1.4時代の古いJavaアプリケーションをeclipse(Ganymede)に持ってくると、
ArrayList は raw 型です。 総称型 ArrayList への参照は、パラメーター化する必要があります
的な警告が、それはそれはものすごく沢山でた。
JDK5以降は、ジェネリクス(総称型)でコンパイル時に型をチェック出来るので、キャスト地獄から開放されるわけだけど、
あまりに量が多くて対応してらんない。
仕方ないから、警告が出ない様にしました。
[ウィンドウ]→[設定]→[Java]→[コンパイラー]→[エラー/警告]→[総称型]→[raw型の使用]
を
[無視]に変更