Java EE アプリケーションをAmazon EC2にデプロイするツール「Cloud Tools」

エントリのタイトル通りですが、Amazon EC2のインスタンスへJava EE アプリケーションデプロイしたりテストしたりできるツールがあるようです。これは便利そう!

cloudtools - Google Code
http://code.google.com/p/cloudtools/


Cloud Tools」はGroovyで実装されたEC2Deployや、それらが設定されたAMI(Amazon Machine Images)、実行するときのインターフェースとなるMavenもしくはGrailsプラグイン、の全てを包括した総称のようです。

で、前述のようにMavenプラグイン(もしくはGrailsプラグイン)として使います。
まず、pom.xmlに初期設定を記述後に、、、

$ mvn cloudtools:deploy

↑のようなゴールが用意されていて、以下のタスクが実行されるようです。

  • Amazon EC2 インスタンスの起動
  • MySQLデータベースの設定
    • スキーマの作成、データベースの初期化スクリプトの実行
    • スレーブの設定(複数可で、オプションにより異なるAvailability Zoneにすることも可)
  • WebアプリケーションをEC2インスタンスへアップロード
  • Tomcatサーバ(複数可)を設定、かつアプリのデプロイを実行
  • 複数のTomcatサーバであれば、ロードバランス(負荷分散)するためのApacheの設定を実施


Javaで実装したWebアプリケーションをAmazon EC2のインスタンス上で運用するのに、必須となるツールではないでしょうか。
Mavenを使われて開発されている方も多いかと思います。EC2運用環境への連携が、Mavenでの開発/デプロイフローに追加できることにより、より稼動確認やサービスインまでの時間短縮に貢献してくれそうです。


ちなみに、上記以外にも以下のゴールが用意されているようです。

  • cloudtools:jmeter - runs a load test
  • cloudtools:redeploy - redeploys the web application
  • cloudtools:dbsave - save a database snapshot in S3
  • cloudtools:dbrestore - restore the database from S3
  • cloudtools:clone - creates a copy of the cluster
  • cloudtools:describe - describes the cluster
  • cloudtools:list - lists the available clusters
  • cloudtools:stop - shutdown the cluster
Google Code Archive - Long-term storage for Google Code Project Hosting.


デプロイだけではなく、JMeterを使った負荷テストや、再デプロイ、DBのスナップショットをAmazon S3にバックアップおよび、S3からリストアするゴールなども。


これらの"Getting Started"や、ゴールについての詳細、pom.xmlの設定については、以下のリンクに記してあります。ご参考に。


私も時間ができたら試してみて、ブログに追記したいと思います。

# すっかりJavaから離れてしまっていて、昔、JavaPressでMavenの記事を寄稿したときのことを思い出しました。

まとめ

クラウドAMAZON EC2/S3のすべて (ITpro BOOKs)

クラウドAMAZON EC2/S3のすべて (ITpro BOOKs)

Apache Maven 2.0入門 Java・オープンソース・ビルドツール

Apache Maven 2.0入門 Java・オープンソース・ビルドツール