2013年08月28日

AppFog なら無料で出来る! 初めての Java On PaaS

Cloud Foundry のベータ期間も終わり無料で楽しめる次の Paas 環境を探している、何て人も多いかもしれません。
今日は無料、しかもスタンドアローン・アプリケーションも動かせる PaaS - AppFog をご紹介します。

appfog icon


AppFog の概要とアカウントの作成


AppFog は Node, Ruby, Python, Java, .NET などほぼ全てと言えるプログラミング言語とそのフレームワークをサポートする Paas ( Platform as a Service )です。
(そういえば Perl だけは無いですね・・・)

AppFog


無料プランでも 2 GB の RAM (メモリ)、 100 MB のデータベース領域( MySQL or PostgreSQL )、月間 5 GB のトラフィックと文句無し?のリソースを利用することが出来ます。

AppFog pricing


しかも、 Java スタンドアローン・アプリケーション( Jar アプリケーション)も起動出来るのが嬉しい!

その昔、 Kindlefeeder というオンライン・サービス用に KFeeder.jar というアプリケーションを公開、これと Cloud Foundry を組み合わせて無料で自動配信する方法をご紹介したんですが、今では Cloud Foundry のベータ期間も終わり困る方もいるみたい・・・。

Kindlefeeder.comで無料アカウントを使って自動配信する方法
Cloud Foundry ...


先日も kak0000102161 さんから相談頂いてたんですよねぇ。

netbuffalo様
有益な情報いつもありがとうございます。記事の通りにCloud Foundryを使って
毎朝幸せにRSSを読んでいたのですが、残念ながらCloud Foundryのβ(無料期間)が
終了してしまいました。
kindlefeederのプレミアム有料サービスも現在は受け付けていないようで、困っています。
Cloud Foundry以外に(無料で)kfeedr.jarを使用できるサービスはありませんでしょうか?
Posted by kak0000102161 at 2013年08月13日 18:44

---
kak0000102161さん、

Cloud Foundry の無料期間が終わってしまったんですね。
ご指摘の通り kindlefeeder も新たな有料アカウントは募集しておらず、
RSSフィードを全文変換、自動配信してKindleで読むのは難しい状況になっています。
何か良い方法が無いか考えてみますので、少々お時間を頂きたく。

---
Posted by netbuffalo(管理者) at 2013年08月14日 10:50
netbuffalo様

ありがとうございます。よろしくお願いします。


という事で今日は AppFog で Java スタンドアローン・アプリケーションを動かす方法をご紹介します。

早速 AppFog のアカウント作成から始めましょうか。 サインアップはこちらから。

AppFog sign up


登録したメール・アドレスへ認証用トークンが届くので続けて入力。
 
AppFog auth token

 
これでアカウントの作成はおしまい。

ダッシュボードが表示されますが、ここでは何も触らず、この後の作業は全てクライアント PC から af コマンドを使って操作(アプリケーションの作成、デプロイ)します。

AppFog web dashboard

 

AppFog - af 環境の構築とアプリケーションのデプロイ


Cloud Foundry 同様、 AppFog でも CLI ベースのユーティリティを使ってクライアント PC からアプリケーションの管理を行います。 
 
まずは、Ruby が必要。 僕は Ubuntu を使っているので次のコマンドでインストール。
( Windows ユーザは 先程紹介した過去記事を参考に)
 
$ sudo apt-get install ruby rubygems


続いて、 AppFog の管理ユーティリティである af を gem を使ってインストールします。

$ sudo gem install af


これで準備は出来ました。 次のコマンドで AppFog にログインしてみましょう。

$ af login
Attempting login to [https://api.appfog.com]
Email: your@mail.com
Password: ***********
Successfully logged into [https://api.appfog.com]


よーし、早速デプロイ。 Java アプリケーションと同じ場所(ディレクトリ、フォルダ)に移動してから、

$ cd /path/to/application
$ ls
KFeeder.jar


' af push アプリケーション名' でアプリケーションの作成、デプロイを行います。 次の例では kfeeder というアプリケーション名で Java スタンドアローン・アプリケーションを作成、デプロイしています。

$ af push kfeeder
Would you like to deploy from the current directory? [Yn]: Y
Detected a Standalone Application, is this correct? [Yn]: Y
1: java
2: node04
3: node06
4: node08
5: php
6: python2
7: ruby18
8: ruby192
9: ruby193
Select Runtime [java]: 1
Selected java
Start Command: Java アプリケーション起動コマンド
1: AWS US East - Virginia
2: AWS EU West - Ireland
3: AWS Asia SE - Singapore
4: HP AZ 2 - Las Vegas
Select Infrastructure: 1
Application Deployed URL [None]: 
Memory reservation (128M, 256M, 512M, 1G, 2G) [512M]: 512M
How many instances? [1]: 1
Create services to bind to 'kfeeder'? [yN]: N
Would you like to save this configuration? [yN]: N
Creating Application: OK
Uploading Application:
  Checking for available resources: OK
  Processing resources: OK
  Packing application: OK
  Uploading (0K): OK   
Push Status: OK
Staging Application 'kfeeder': OK                                               
Starting Application 'kfeeder': OK  


Start Command: で Java アプリケーションの起動コマンドを指定。 僕の場合はこう。

java -jar -Xms128m -Xmx256m KFeeder.jar -e hoge@free.kindle.com -u username -p password -t 6:00


アプリケーションのステータスは $ af list で確認。

$ af list

+-------------+----+---------+------+----------+-----+
| Application | #  | Health  | URLS | Services | In  |
+-------------+----+---------+------+----------+-----+
| kfeeder     | 1  | RUNNING |      |          | aws |
+-------------+----+---------+------+----------+-----+


' af logs アプリケーション名 'でアプリケーションのログを見ることも出来ます。

$ af logs kfeeder
====> /logs/stdout.log <====

Waiting until next delivery. Wed Aug 28 06:00:00 UTC 2013 +16693 sec


問題無く動いているみたいですね!(実行環境は UTC ベースで日本時間と比較して - 9 時間になることに注意)

AppFog が混み合う時間はリソース不足(主にメモリ/ヒープ不足)でアプリケーションの起動に失敗します。
時間をおき諦めずに何度かトライしてみましょう(僕の場合、夕方~夜は失敗、朝 8:00 頃なら成功)。
 
勿論、 AppFog の Web ページ(ダッシュボード)からでもステータスの確認、アプリケーションの停止・起動が出来ますよ。

AppFog web dashboard


af コマンドで起動、停止、削除する場合は次の書式。

$ af start/stop/delete appname

詳しくは $ af --help をどうぞ。

スタンドアローン・アプリケーションが動くとなると自由度が一気に増えますから嬉しいですよね。

それでは、より良い PaaS ライフを。


クラウド大全 第2版 サービス詳細から基盤技術まで
日経BP社出版局
日経BP社
売り上げランキング: 84,432

ワンクリック
ワンクリック
posted with amazlet at 13.08.28
日経BP社 (2013-08-23)
売り上げランキング: 107

Posted by netbuffalo at 21:00│Comments(2)TrackBack(0)Java | cloud


この記事へのトラックバックURL

http://trackback.blogsys.jp/livedoor/netbuffalo/4566614
この記事へのコメント
5
netbuffaloさん

kakです。早速実践しデプロイ出来ました。明日の朝が楽しみです。
多謝。
Posted by kak0000102161 at 2013年08月30日 13:45
kak0000102161さん

こちらこそ今後とも宜しくお願い致します。
(もし、Kindlefeederが終わってしまったら似たサービスにについてレポートします)
Posted by netbuffalo(管理者) at 2013年08月30日 15:10

コメントする

名前
URL
 
  絵文字