初期状態では、一つのインスタンスに、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以外、グローバルアドレス要らないんだよね。