【1】データベース
GAEは、GAEの特徴であるBigtableをデータベースとして利用できます。そのほかのクラウドはMySQLを利用でき、Morph AppSpaceはMySQLに加え、PostgreSQLを利用できます。Morph AppSpaceはHA構成でデータベースを構築でき、障害が発生しデータベースが停止した場合でもフェイルオーバできる点が優れています。
【2】サポートフレームワーク
理論的には、GAE以外は、JVMの設定なしにJava上で動作するフレームワークは動作します。表には、Webページ上で明確にサポートを表明しているフレームワークのみ記述しましたが、そのほかのフレームワークも動作すると考えられます。
ただし、各プラットフォームとも、アプリケーションサーバのJVM起動時の設定(例えば、javaagentなど)を行うようなものは動作しません。さらに、GAEは、I/Oやスレッド周りのAPIへのアクセスが制限されており、そのようなAPIを利用するフレームワーク、もしくはフレームワークの機能の一部は動作しないので、注意が必要です。
GAEは特有のデータベースであるBigtableをJDOやJPAといった標準のAPIで利用できるようになっています。
【3】統合開発環境サポート機能
GAEはEclipse上でのGWT開発サポート機能、およびGAEへのデプロイ支援機能が提供されています。Aptana Cloudはデータベース開発を支援する機能やJavaScriptサポートなど、高度なアプリケーション開発支援機能が提供されています。
StaxやMorph AppSpaceは、特に統合開発環境などは用意されていません。Eclipseを利用して開発したアプリケーションをコマンドラインやAntタスクを利用しでデプロイします。
【4】アカウント連携機能
GAEのみGoogleアカウントのアカウントを利用して、Webアプリケーションへの認証ができます。
【5】ジョブ実行機能
GAEのみ、クーロンによるジョブ実行機能が提供されています。
【6】メールサーバ機能
GAEは、GAEの提供するSMTPサーバを利用してメールが送信できます。Aptana Cloudは、サーバ上にPostfixを起動でき、サーバ上のPostfixを経由してメールを送信できます。
【7】バックアップ機能
Morph AppSpaceやStaxはデータベースのバックアップの機能を備えています。Staxはボタン1つで、データベースのスナップショットをバックアップできます。Aptana Cloudはデータベースに加え、ファイル、Subversionのリポジトリのバックアップができます。
【8】モニタリング機能
各クラウドとも、CPUやメモリなどのリソース使用量やアクセス数などのモニタリング機能を持っています。それぞれの画面イメージを図5〜8に示します。
【9】スケールアウト機能
クラウドのウリの1つとして、アプリケーションを柔軟にスケールアウトできる点がしばしば強調されています。
GAEは動的にスケールアウトし、ユーザーがスケールアウトのための設定を気にする必要がありません。Morph AppSpaceとStaxは、スケールアウトする構成(サーバ数)を指定する必要があります。Aptana Cloudはスケールアウトの機能はありません。
【10】チーム開発支援機能
いずれのクラウドもマルチアカウントに対応しており、複数の開発者によるクラウド上のアプリケーションの操作をサポートしています。
【11】バージョン管理機能
Aptana CloudやGAE、Staxはアプリケーションのバージョンを管理する機能を提供しており、アプリケーションをデプロイするごとにバージョンを付けて管理しています。さらに、GAEとAptana Cloudはステージング機能に対応しており、試験用のバージョンと正式リリース用のバージョンを分けてアクセス可能であり、試験用アプリケーションとしてデプロイし試験した後で、正式リリースとしてアプリケーションを公開可能です。
Aptana Cloudは、アプリケーションを作成すれば開発用のリポジトリも作成してくれるので、開発用のリポジトリを作成しなくても、すぐにチーム開発ができます。
【12】SLA
SLAについては、公式ドキュメント上、Morph AppSpaceのみが99.9%の稼働率を保証しています。
「Javaのクラウド」というインパクト
本稿では、Javaアプリケーションを実行できる4つのクラウドについて紹介してきました。ひとことでいうと、Javaアプリケーションが利用できるクラウドといっても、各クラウドごとに特性が異なることが理解できたと思います。
Javaに限らず、一般的なクラウドで提供されるPaaSの特徴として、下記のような点が挙げられます。
- 必要なときに、すぐにサーバを用意できサービスが開始できる。サーバの場所や設備など、悩まなくてもよくなる
- 利用した分だけ課金され、無駄な設備投資を防げる。アクセスが増えたとき、あるいは増えると予想されるときにサーバを増やし、アクセスが落ち着くと減らせる
- サーバのバックアップや多重化が簡単にでき、システム設計が簡単になるとともに、運用管理コストを削減できる
- 開発環境との連携により、開発環境上で作成、テストしたコードを簡単にクラウド上へデプロイ可能
日本のプログラマの人口が多いJavaでこれらのクラウドのメリットが享受されるようになったことは、クラウドの普及拡大に大きなインパクトを与えることでしょう。今後、読者の皆さんがクラウドを利用するうえでの参考になればと思います。
- exe/dmgしか知らない人のためのインストール/パッケージ管理/ビルドの基礎知識
- これでGitも怖くない! GUIでのバージョン管理が無料でできるSourceTreeの7つの特徴とは
- DevOps時代の開発者のためのOSSクラウド運用管理ツール5選まとめ
- GitHubはリアルRPG? そして、ソーシャルコーディングへ
- ついにメジャーバージョンUP! Eclipse 4.2の新機能7選
- いまアツいアジャイルプロジェクト管理ツール9選+Pivotal Tracker入門
- Git管理の神ツール「Gitolite」なら、ここまでできる!
- Java開発者が知らないと損するPaaSクラウド8選
- Eclipse 3.7 Indigo公開、e4、Orion、そしてクラウドへ
- AWSの自由自在なPaaS「Elastic Beanstalk」とは
- Ant使いでもMavenのライブラリ管理ができるIvyとは
- 「Hudson」改め「Jenkins」で始めるCI(継続的インテグレーション)入門
- Bazaarでござ〜る。猿でもできる分散バージョン管理“超”入門
- Review Boardならコードレビューを効率良くできる!
- Team Foundation ServerでJava開発は大丈夫か?
- コード探知機「Sonar」でプロジェクトの深海を探れ!
- 単体テストを“神速”化するQuick JUnitとMockito
- Java EE 6/Tomcat 7/Gitに対応したEclipse 3.6
- AzureのストレージをJavaで扱えるWindowsAzure4j
- 究極の問題解析ツール、逆コンパイラJD-Eclipseとは
- AWS ToolkitでTomcatクラスタをAmazon EC2上に楽々構築
- DB設計の神ツール「ERMaster」なら、ここまでできる
- Webのバグを燃やしまくるFirebugと、そのアドオン7選
- Googlerも使っているIntelliJ IDEAのOSS版を試す
- JUnit/FindBugs/PMDなどを総観できるQALab/Limy
- ブラウザを選ばずWebテストを自動化するSelenium
- Eclipse 3.5 Galileoの「実に面白い」新機能とは
- App Engine/AptanaなどJavaクラウド4つを徹底比較
- Aptanaなら開発環境とクラウドの連携が超お手軽!
- 分散バージョン管理Git/Mercurial/Bazaar徹底比較
- SubversionとTracでファイル管理の“迷宮”から脱出
- Trac Lightningで始めるチケット式開発「電撃」入門
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- Javaはクラウドのプラットフォームになり得るのか
小山博史のJavaを楽しむ(11) - Google App Engineの3つの「簡単」コンセプトとは
インタビュー特集:Google直伝!(4) - ソースコードの宝石箱、●●Forgeを見逃すなかれ
安藤幸央のランダウン(39)