社長BLOG
EC2のIPアドレスの変更をno-ipでカバーする
- 2013-03-13 (水)
- 社長BLOG
Amazon EC2はストップして再びスタートする時、IPアドレスが変わってしまう。
「仕事開始とともにインスタンスを起動して、終了とともに停止する。休日は止めたまま」
というような使い方をしたい。
全開発スタッフにクラウド開発サーバを提供するのが今回のねらいだ。
Amazon Elastic IPを使えば簡単に固定化できる。IP固定化にかかる費用は一台あたり月に1,000円もしないが、開発サーバなので数十台にもなるかもしれない。
エンジニアが、なるべく気兼ねなく使えるようにしたい。
ということで、IPアドレスの変更をダイナミックDNSのno-ip.comでカバーする仕掛けを作ってみた。
まずはno-ip
no-ipは昔からあるダイナミックIP用のDNSサービス。
このサービスには、サーバのIPアドレスが変わったら自動的にDNSを書き換える仕組みが備わっている。
この機能はDynamic Update Client (DUC) という。
http://no-ip.comにアクセスして、無料アカウントをセットアップ。
no-ipが無料で提供しているドメインから選んで、ホストを作っておく。
IPアドレスはどうせ変更されてしまうので、デフォルトのままで良い。
no-ip側の設定はこれだけ。
EC2側の設定
EC2は、インスタンスを普通に起動(Amazon Linuxを使用)し、ec2-userとしてログイン。
次にシェルスクリプトを持ってきて、実行する。
スクリプトの内部では次の処理をしている。
1.DUCをダウンロードし保存する
2.実行パーミッションをつける
3.-C オプションを付けて設定スクリプトを実行する
4.一度DUCを実行してDNSを更新しておく
5.DUCが自動起動するようにrc.localの末尾に記述
途中の設定スクリプトの様子はこんな感じ、アカウント情報を入力して、自動更新したいホスト名を指定する。
動作確認
no-ip側の管理画面側の設定IPアドレスが書き換わっていたら、正しく動作している。
dig コマンド ( dig tejima.no-ip.info ) などで調べても良い。
まとめ
EC2を何回止めても、自動的にDNSが新しく割り当てられたインスタンスのIPアドレスを参照するようになった。
これで何台開発サーバを作っても、動かさなければ料金がかからなくなった。