*

Google App Engine Modules in Javaを試す WebToolsPlatform編

公開日: : 最終更新日:2014/03/28 投稿者: GAE , ,

みなさんこんにちは。

2013年の7月に、Google App Engine1.8.2がリリースされましたが、そこでModulesという新機能が実装されました。

これにより、大きなアプリケーションを複数のモジュールに分けて動作させることが可能になりました。
つまり、一つのApplicationIDのもとに複数のコンポーネントとしてのアプリケーションを動作させることができる、ということです。

また、これまではスケーリングについての設定をすることができませんでしたが(※1)、これからはAutomatic-scaling, Manual-scaling, Basic-Scalingの3つを各モジュールごとに個別に設定できるようになりました。
これにより、速いレスポンスが求められ、かつ自在にスケールしてほしい場合はautomatic-scalingモジュールとして、時間のかかる重い処理を担当する場合はManual-scalingで、というような設定が可能になります。

今回は第一弾としてこの新機能「Modules」のサンプルアプリケーションをEclipse WTPを使って配備する方法をご紹介します。

0.事前準備および環境

筆者のEclipse環境は以下のとおり。
Eclipseバージョン:Kepler Service Release 1(Build id:20130919-0819)
Eclipseプラグイン:Google Plugin for Eclipse 4.3, Web Tools Platform,Google App Engine Java SDK 1.8.5 
Javaバージョン:JDK 1.7
また、GAEに配備する際のApplicationIDは各自で取得してください。

1.モジュールの作成

はじめに、アプリケーションを構成するモジュールを作成します。
Eclipseのプロジェクト作成ウィザードより、[Web]-[Dynamic Web Project]を選択し、[Next >]を選択します。

プロジェクト名の記入を求められるので、適当な名前を入力します。
その他の設定項目について、次の画像のように設定してください。
(一部、プラグインが正しく入っていないと選択できないものがあります。)
[Finish]を選択します。

同じ要領で、module2も作成します。
作成後のEclipseの画面は次のようになりました。(画像はJavaEE パースペクティブのProject Explorer)

作成したそれぞれのプロジェクトのappengine-web.xmlを編集します。
appengine-web.xmlは、それぞれの[プロジェクト名]/WebContent/WEB-INF配下にあります。
appengine-web.xmlを開いたら、タグの内側に次のようにタグを追加します。
[xml]
<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
<application></application>
<version>1</version>
<threadsafe>true</threadsafe>
<system-properties>
<property name="java.util.logging.config.file" value="WEB-INF/logging.properties" />
</system-properties>
<module>モジュール名</module> <!– ←追加 –>
</appengine-web-app>
[/xml]
このタグの値はモジュール名となり、特別な設定をしない場合、アプリケーションへのアクセス先の一部となります。
http://モジュール名.ApplicationID.appspot.com

タグの値を”default”にすると、そのモジュールがこのアプリケーションのデフォルトになります。
デフォルトモジュールにアクセスする場合、URLは次のようになります。
http://ApplicationID.appspot.com

2. EAR Application Projectの作成

次に、各モジュールをたばねるEAR Application Projectを作成します。
Eclipseのプロジェクト作成ウィザードより、[Java EE]-[Enterprise Application Project]を選択し、[Next >]を選択します。

プロジェクト名をmodules-sampleと入力し、[Next >]を選択します。

このEARアプリケーションがどのモジュールを含むかを選択する画面が表示されます。
ここで、先ほど作成したmodule1およびmodule2を選択します。
“Generate application.xml deployment descriptor”にチェックを入れます。
[Next >]を選択します。

Google App EngineのApplicationIDを入力する画面が表示されます。
前もって取得したApplicationIDを入力してください。
[Finish]を選択します。
以下のようにプロジェクトができたら、次のステップに進みましょう。

3. 動作の確認(ローカル)

サンプルプロジェクトが作成できたら、まずはローカルでの動作を確認します。
2. EAR Project Applicationの作成で作成した[sample-modules]プロジェクトを右クリックし、[Run As] – [Run on Server]を選択します。
動作させるサーバを選択するダイアログが表示されます。
次の画像のように設定して[Finish]を選択してください。

ローカル環境でのモジュールは、それぞれが別のポートで動作します。
コンソールにそれぞれのモジュールがどのポートで動作しているかが出力されるので、それぞれのURLに接続し、動作を確認してください。

4. GAEにデプロイする

ローカルでの動作を確認できたら、いよいよGAEにデプロイしてみましょう。
[sample-modules]プロジェクトを右クリックし、[Google App Engine WTP] – [Deploy Project to Remote Server]を選択します。

5. 結果の確認

特別なアドレスマッピングの設定をしていない場合、それぞれのmoduleへのアクセス先は以下の通りとなります。

http://module.appId.appspot.com

module部分には各モジュールのappengine-web.xml内のタグ内の値が入ります。
また、defaultモジュールとして指定されているモジュールにアクセスする場合、module部分のURLを省略して以下のようにアクセスできます。

http://appId.appspot.com

では、それぞれのmoduleにアクセスしてみましょう。

http://module1.appspot.com

http://module2.appspot.com

アクセスできましたか?
このように、Modules機能を使えば、一つのアプリケーション内に、モジュールとして複数のアプリケーションを動作させることが可能です。

GAEコンソールにもこの通り、複数のModuleが確認できます。

ちなみに、一つのapplicationIDに配備可能なModuleの数には制限があり、無料アプリケーションでは2つまで、有料では10まで、プレミアでは20までとなっています。
また、Modulesにはこれ以外にも様々な機能が盛り込まれています。ぜひこの新機能[Modules]を使ってみてくださいね!

この記事を書いた人

kimura
kimura
Webデザイナー。本サイトの管理・デザイン担当をしております。
 

関連記事

専用Memcacheは共有Memcacheよりも本当に性能が高いのか検証する Part2

前回のGAEの「専用Memcacheは共有Memcacheよりも本当に性能が高いのか検証する」が投稿

記事を読む

Cloud Loggingの利用方法

はじめに 本記事はGoogle Cloud Platformの公式ページで公開されている「Goog

記事を読む

東京リージョン内でのGAE・GCS・GCE間の通信はこのくらいだった

11月8日に Google Cloud Platform にて待ちに待った日本リージョンがリ

記事を読む

App Engine for PHP ベータ版から正式版へ

GCPBlogの記事によると App Engine for PHP(PHPアプリをGoogle Ap

記事を読む

Search API詳細解説 Part3「Search APIの使い方 検索編」

Search API詳細解説シリーズ タイトル Part1Search API 概要説明

記事を読む

GAEでWordPressを動かす

これは2014年時点での記事になります。 2015年版の記事がありますのでそちらをご参照下さい。

記事を読む

Datastoreモデル変更の影響調査

GoogleAppEngine(以下GAEと呼称)に限らず、開発を行なっていると『テーブルの構造を変

記事を読む

GAリリース記念!!今更だけどGAE Flexible Environmentのチュートリアルを試してみた!

GAE Flexible Environment(以下FE)のGA(General Availa

記事を読む

Search API詳細解説 Part6「Search API 詳細 限界値編」

みなさん、こんにちは。 前回はSearch APIの反映速度について調べてみましたが、いかがだった

記事を読む

1つのエンティティにプロパティをいくつまで作れるか(パート2)

1つのエンティティにプロパティをいくつまで作れるか 1つのエンティティにプロパティをいくつまで

記事を読む

PAGE TOP ↑