Home > Ruby on Rails > EC2の固定IPを使ってみる

EC2の固定IPを使ってみる

 初期状態では、一つのインスタンスに、EC2の中だけで使えるPrivate IPと、外部からアクセスするためのPublic IP(グローバルアドレス)が割当たってます。
 インスタンス自体への割当IPはPrivate IPですが、上位のルータに1:1のNATがあり、これによって外部からPublic IPでアクセスできる様になっています。

 今までの、Private IPとPublic IPに加えて、今度は固定IPのグローバルアドレスが割り当てられるElastic IPを選択出来るようになりました。
これは、Public IPと同じ様に、外部からアクセスするためのグローバルアドレスですが、AWSアカウント毎に発行されるので、インスタンスの再起動などによって代わる事はありません。

 これを使えば、EC2で最大の問題点であった、「インスタンスを再起動するとIPアドレスが代わる」という問題から解放されます。

 Elastic IPを使うために、EC2 Toolsのアップデート。Amazon EC2 Command-Line ToolsからEC2 API toolをダウンロードしてインストール。

 自分のアカウントに割り当てられたElastic IP(EC2の固定IP)を確認。

$ ec2-allocate-address
ADDRESS	75.101.xxx.xxx

現在のアカウントで起動しているインスタンスを確認。

$ ec2-describe-instances
RESERVATION	r-e729dbxx	036701054xxx	default
INSTANCE	i-876892xx	ami-7034d119	ec2-67-202-xxx-xxxcompute-1.amazonaws.com	domU-12-31-38-00-xx-xx.compute-1.internal	running	nobody	0		m1.small	2008-03-24T04:17:43+0000	us-east-1b

 Elastic IPのアドレスと、割り当てたいインスタンス番号(i-から始まる番号)を指定して、ec2-associate-addressを実行します。
これを実行すると、今までのPublic IPではアクセス出来なくなります。インスタンスに割り当てられるグローバルアドレスはPublic IPかElastic IPのどちらかになります。

$ ec2-associate-address -i i-876892xx  75.101.xxx.xxx
ADDRESS	75.101.xxx.xxx	i-876892xx

 これで、Public IPの代わりに先ほど指定したElastic IPのアドレスが割り当てられます。
Private IPに変更はないので、インスタンスの再起動などは行われません。

 このElastic IPは剥がす事もできるので、別のインスタンスを上げておいて、そちらに振り直す事もできます。
サービスを止めずに、デプロイしたいときにも使えるかも。

p.s
あと、グローバルIP要らないから、少し安いインスタンスってのも出してくれないかな?
reverse proxyにしているfront server以外、グローバルアドレス要らないんだよね。

Related posts

masuidrive(増井 雄一郎)
PukiWikiなどのオープンソース活動を経て、2005年からRuby on Railsに的を絞り、WEB2.0社PingKingやニフティ社アバウトミーの開発に関わる。これまでのフリー活動から転身し、2007年は1年だけ会社員として働いた後、起業のため渡米。2008年4月にBig Canvas Inc.設立、iPhoneアプリなどの開発を行う。2009年11月に退社し、現在、米Appcelerator社のテクニカルエバンジェリスト。
Twitterは、@masuidrive

Comments:0

Comment Form
Remember personal info

Trackbacks:0

Trackback URL for this entry
http://blog.masuidrive.jp/index.php/2008/04/06/used-elastic-ip-on-ec2/trackback/
Listed below are links to weblogs that reference
EC2の固定IPを使ってみる from @masuidrive blog

Home > Ruby on Rails > EC2の固定IPを使ってみる

Search
Feeds
Meta

Return to page top