Amazon EC2 Micro Instance を無料枠で安全に利用する方法

前回 Amazon EC2 Micro Instance 上に Tomcat6 を立ち上げてみた。
自分の端末の WEBブラウザから EC2 上の Tomcat にアクセスする為には Security Group の設定を変更して 8080 へのアクセスを許可しなくてはならないのだが...
まだ Tomcat の設定をちゃんとしていないのに いきなりインターネット上に公開してしまうのはあまりにも無謀。
そもそも 個人的に使うだけなのに 危険を冒してまでインターネット上に公開する必要があるのだろうか?

と言うことで...
EC2 上のサービスに安全にアクセスする方法を考えてみた。

最初に思いつくのは...

自分の端末からだけ 8080 ポートにアクセスできるように Security Group の Source を設定すること
ただ、これだと使いたい端末の IPアドレスを全て設定しておかないとアクセスできないし...
しかも 大抵の家庭では プロバイダから動的に割り当てられる IPアドレスで インターネットに接続している。
そのため Security Group の設定を頻繁に変更しなくてはならないので現実的ではない。

そこで考えられるのが...

SSH ポートフォワード
SSH ポートフォワードを使う利点は...
  1. Security Group の設定を変更しなくても EC2 上の Tomcat にアクセスできる。
  2. 送受信データは全て SSL で暗号化される。
  3. Private Key さえあれば世界中どこからでもアクセスできる。
  4. 自分以外誰もアクセスできない。(想定外のデータ転送で無料枠を越えることがない。)
といったところだろう。

SSH ポートフォワードは ~/.ssh/config の設定を

Host ec2
User ec2-user
HostName ec2-aaa-bbb-ccc-ddd.xxxxxxxxxx.compute.amazonaws.com
Port 22
IdentityFile ~/.ssh/ec2.pem
LocalForward 18080 127.0.0.1:8080
Compression yes
ExitOnForwardFailure yes
のように変更して
$ ssh ec2
と実行するだけ。あとはブラウザのアドレスバーに
http://localhost:18080/
と入力して 自分の端末 (localhost) の 18080 ポートにアクセスすれば、自動的に EC2 上の Tomcat (8080 ポート) にフォワードされ ちゃんと画面が表示される。
これをうまく使えば、TracRedmine といったプロジェクト管理ツールや Subversion のようなリポジトリを自分専用で立ち上げることもできるだろう。

折角の AWS Free Usage Tier...
自分専用クラウドとして使うのも悪くない。