Technology

テクノロジー

クラウドのメリット、デメリットを理解して使おう (1/2)

株式会社オリエンタルアーツ 北 義弘
2010年12月8日 / 08:00
 
 
◆ Google App Engine の制限事項

l前回紹介した「Google App Engine」(GAE)は、無償で気軽に利用でき、かつスケールアウトにも即座に対応できるという、すばらしいクラウド環境です。

しかしながら、通常の Web アプリケーションに比べると、Google 独自の仕様によるいくつかの制限があります。

以下に Google App Engine/Java の制限事項、および回避例について、一部紹介します。

1. リソースアクセスの制限

OS レベルのコマンドやリソースにはアクセスできません。jetty(OSS の Web サーバー)の API と、Java クラスライブラリが、アプリケーション側から利用できる I/F となります。

2.クラスライブラリの制限

使用できる Java クラスライブラリが限られています。使用可能なクラスライブラリは、ホワイトリストとして明示されていますので、開発着手前に参照することをお勧めします。

3. データベースの制限

通常、データベースアクセスで使用する SQL、ストアドプロシージャ、トリガなどは使用できません。GAE のデータベースである「BigTable」へのアクセスは、JDO、JPA という OODB を使用します。SQL ライクな文法でのアクセスが可能です。

4. レスポンス時間の制限

レスポンス送信までに30秒以上を要するリクエストは使用できません。その場合は、内部エラー500が発生しますので、時間のかかる処理は、見直しが必要です。

5. ファイル出力の制限

サーバーにおけるファイル出力はできません(ただし読込は可能)。従来、ファイルアップロードでテンポラリファイルを作成しているようなケースでは、メモリから直接 JDO 経由で BLOB へ格納するような処理に変更が必要です。ただし、サイズが大きい場合は、メモリを大量に消費するため、GAE を無料で使用できる範囲を超えてしまう可能性がありますので、分割で操作するようにします。

6. スレッドの制限

スレッドは作成できません。バッチ処理の起動は可能なので、時間の掛かる処理・非同期処理は、バッチ側で実行するようにします。

7. ソケット通信の制限

ソケット通信は使用できません。他システムと連携する場合、HTTP の使用で代替できます。

以上、GAE の各種制限を見てきましたが、これらの制限を踏まえても、GAE にはそれを凌駕する魅力があります。GAE での運用を視野に置く際には、あらかじめ上記制限の回避策を検討の上、利用してください。
【関連記事】
Google App Engine のクライアント環境とクラウド環境での開発
システム開発にはトラブルがいっぱい
【LinuxToday】オリエンタルアーツ、開発支援機能を強化した pirka を公開
Google が企業向けクラウド戦略を強化、VMware と提携も
クラスキャット、クラウドアプライアンス対応「Google App Engine」動作環境を配布

New Topics

Special Ad

ゆりかごからロケットまで、すべての乗り物をエンジョイ
ゆりかごからロケットまで、すべての乗り物をエンジョイ えん乗り」は、ゆりかごからロケットまで、すべての乗り物をエンジョイする、ニュース、コラム、動画などをお届けします! てんこ盛りをエンジョイするのは こちらから

Hot Topics

IT Job

Interviews / Specials

Popular

Access Ranking

Partner Sites