2012年4月19日木曜日

Google App Engine(GAE)、Amazon Web Service(AWS)、Windows Azure、Herokuを比較

最近既存Webアプリをクラウドプラットフォームに移行する際に調査を行ったので、せっかくだから公開してみる。

この4つ以外にも色々なサービスがあるが、知名度と実績からこの4つを選んで重点的に調査した。

ただし、どのサービスもサードパーティのソフト等で実際はこの表に載っている以上に色々なことができるし、料金体系ももっと複雑なので、この表はあくまで参考程度にして、実際に使用する場合は各サービスのサイトで詳細を調べて下さい。

以下に各サービスのメリット・デメリットを簡単にまとめました。

Google App Engine

  • メリット

    • サーバ環境が全て揃っているため、環境構築の必要がない。
    • 無料枠があるため小規模であれば料金が他のサービスより安い。
  • デメリット

    • 独自の仕様が多いためロックインされてしまい、他のサービスに移行しづらい(2011年9月のように突然値上げされても逃げられない)。
    • 学習コストが高い。
    • RDBが使用できない。

Amazon Web Services

  • メリット

    • PaaSとしてJava, PHP、IaaSとしてLinuxとWindows Server両方提供しているので、やろうと思えば何でもできる(VMのレンタルサーバのイメージ)。
    • サービスが豊富。
    • オープンな技術を使用して開発可能。
  • デメリット

    • サービスが豊富すぎて料金体系が複雑。
    • 管理コンソールが使いにくいらしい。
    • 自由度が高い分アプリケーションの管理等を自分でしなければならない(IaaSとして使用すれば当然OSの管理も必要)。

Windows Azure

  • メリット

    • SQL Azureの料金が安い 。
    • Visual Studio、Windows Server、SQL ServerなどのMS製品との相性が良い。
    • オープンソース技術も積極的にサポートしており、オープンな技術を使用しての開発も可能。
  • デメリット

    • 開発環境もサーバもWindowsになってしまう。

Heroku

  • メリット

    • 多くの言語が使用可能。
    • オープンな技術を使用して開発可能。
    • 料金体系がシンプルでわかりやすい。
  • デメリット

    • DBの容量が少ない場合料金がやや割高(5MBまでは無料だが、それを超えるといきなり$15になる)。

何か間違いなどがあったらお知らせ下さい。

2012年4月17日火曜日

MacからWindowsにVNC+SSHでリモートアクセス

色々ハマりどころがあるのでメモ。

WindowsのVNCサーバは色々あるが、今回はRealVNC日本語インストール版を使用した。

VNCサーバ(アクセスされる側)の設定

環境はVista Home Premium 32bit。

  1. RealVNC日本語インストール版をダウンロード

  2. 解凍して中にあるvncjp-4_1_2-x86_win32.exeを右クリックする(そのまま起動してインストールしてはだめ)

  3. 「管理者として実行」を選択してインストール。Vista, 7ではWindowsサービスとしては正常に動作しないため、サービスの登録等はしなくてよい

  4. VNCサーバをユーザモードで起動

  5. VNCパスワードの設定、ポートの設定、Windowsファイアウォールの設定等を行う

  6. 自動起動したい場合はスタートアップにショートカットを登録

VNCクライアント(アクセスする側)の設定

環境はMac OS X Lion 32bit

  1. VNCサーバのIPアドレス(192.168.0.3など)、ポート番号(デフォルトでは5900)を調べる。

  2. Finderで「サーバへ接続」(⌘K)を選択

  3. サーバアドレスに1.で調べたIPアドレスとポート番号を「vnc://192.168.0.3:5900」のように入力

  4. 正常に接続されれば画面共有アプリが自動で起動し、Windowsのデスクトップが表示される。

SSHトンネリングの設定

VNCの通信は暗号化されないので、LAN内であれば良いがインターネット越しにアクセスする場合はSSHトンネリングで暗号化した方が安全だ。

SSHトンネリングの場合はファイアウォールのポートもSSHのポート(22番ポート)を開くのみでOK。

以下はSSHトンネリングを使用したVNCの設定手順。

  1. http://d.hatena.ne.jp/Guernsey/20091115/1258257335等を参考にVNCサーバ側にFreeSSHd等のSSHサーバをインストールし、VNCクライアント(Mac)からVNCサーバ(Windows)にSSHでアクセスできるようにする。

  2. VNCクライアント(Mac)でターミナルを起動し、「ssh -N -L 10023:localhost:5900 192.168.0.3」を実行(このコマンドを実行するとVNCクライアントの10023ポートの通信は192.168.0.3(SSHサーバ)経由でlocalhost(192.168.0.3から見たlocalhostなので、この場合は192.168.0.3と同じ)の5900に転送される)

  3. Finderの「サーバへ接続」を実行する際のサーバアドレスを「vnc://localhost:10023」にして実行

無事画面共有ができればSSHトンネリング成功です。