PaaSの簡単な比較

PaaSがいくつかあるのですが,どれがいいのかよくわからなかったので,比較のために簡単な表を作ってみました.個人的に気になった以下の項目についての表になっています.

  • 無料枠があるかどうか
  • オートスケールするか
  • カスタムドメイン(独自ドメイン)を使えるか
  • 使えるプログラミング言語およびフレームワークは何か

それぞれサービス内容が違うので単純に比較できるものではありませんが,少しでも参考になれば幸いです.

PaaS 無料枠 オートスケール カスタムドメイン 言語/フレームワーク
Google App Engine ○ ※1 ○ ※2 ○ ※3 Go, Java, PHP, Python ※4
Heroku ○ ※5 ○ ※6 ○ ※7 Java, Node.js, PHP, Python, Ruby ※8
OpenShift Online ○ ※9 ○ ※10 ○ ※11 Java, Node.js, PHP, Python, Ruby, Perl ※12
Nitrous.IO ○ ※13 × ※14 △ ※15 Ruby/Rails, Node.js, Python/Django, Go, … ※16
AWS Elastic Beanstalk △ ※17 ○ ※18 ○ ※19 Java, Node.js, PHP, Python, Ruby, .NET ※20
Windows Azure (Web sites) ○ ※21 △ ※22 △ ※23 ASP.NET, Java, Node.js, PHP, Python ※24

※1 → [出典]
※2 → [出典]
※3 → [出典]
※4 → [出典]
※5 750 Dyno時間/月 → [出典]
※6 「Adept Scale」という add-on で対応可 → [出典1] [出典2]
※7 → [出典]
※8 → [出典]
※9 3 small gears → [出典]
※10 → [出典]
※11 → [出典]
※12 → [出典]
※13 150 N2O units → [出典1] [出典2]
※14 Nitrous.IO自体にオートスケールの機能はないが,別のPaaSにdeployできるので,deploy先のPaaSがオートスケールに対応していればオートスケールする. → [出典]
※15 「Shift」と「Turbo」プランのみ利用可能. → [出典]
※16 「Box Template」として用意されている分.他の言語も利用可能. → [出典1] [出典2]
※17 使用するAWS リソース(Amazon EC2,Amazon S3,…)に対する AWS 無料利用枠の範囲内は無料.ただし Amazon EC2 や Amazon S3 などの主なリソースの無料利用枠を使えるのは,AWS にサインアップした日から 12 か月間のみ. → [出典1] [出典2]
※18 → [出典]
※19 → [出典]
※20 → [出典]
※21 「Free」というレベルが用意されている. → [出典]
※22 「Standard」プランのみ利用可能. → [出典]
※23 「Shared」「Basic」「Standard」プランのみ利用可能. → [出典]
※24 → [出典]

Google App Engine/Python でサブディレクトリ内のスクリプトを実行する

Google App Engine/Python でサブディレクトリ内のスクリプトを呼び出して実行する方法です.

アプリケーション用のディレクトリとして,helloworld ディレクトリがあり,その中のサブディレクトリ subdir の中にある helloworld.py のコードを http://○○○/hello/ というURLで呼び出したいとします.

helloworld.py は特に変わったことをする必要はありません.
例えば以下のようなコードだとします.
webapp2.WSGIApplication のところでURLと一致するように注意してください( '/hello/' の部分).

helloworld ディレクトリ内に app.yaml ファイルを以下のように作成します.

次に,サブディレクトリ subdir 内に __init__.py ファイルを作成します.
このファイルの中身は空で構いません.

以上で準備は終了です.

Google App Engine SDKを用いて,ローカルでテストしてみます.

helloworld ディレクトリのひとつ上のディレクトリで以下を実行します.
このとき,dev_appserver.py コマンドのある場所へPATHを通しておくか,dev_appserver.py コマンドをフルパスで実行してください.

ブラウザで http://localhost:8080/hello/ にアクセスすると,「Hello, World!」と表示されます.

問題なければ,Google App Engine SDKを用いて,コードをアップロードすれば終了です.

アップロード後,ブラウザで http://[アプリケーションID].appspot.com/hello/ にアクセスすると,「Hello, World!」と表示されます.