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 ポートフォワードを使う利点は...
- Security Group の設定を変更しなくても EC2 上の Tomcat にアクセスできる。
- 送受信データは全て SSL で暗号化される。
- Private Key さえあれば世界中どこからでもアクセスできる。
- 自分以外誰もアクセスできない。(想定外のデータ転送で無料枠を越えることがない。)
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 ポート) にフォワードされ ちゃんと画面が表示される。
これをうまく使えば、Trac、Redmine といったプロジェクト管理ツールや Subversion のようなリポジトリを自分専用で立ち上げることもできるだろう。