EC2のIPアドレス
再起動のたびにIPが動的に変わる説
EC2を利用する際、EC2のパブリックIPアドレスはEC2インスタンスが再起動されるたびに変わるという、という話はよく聞きます。
パブリックIPアドレスが変わってしまうと接続時の情報が変わってしまい、システムが動かなくなってしまう恐れがあります。
AWSには、この問題を防ぐためにElasticIPというものが良いされています。
ElasticIPとは?
ElasticIPとは、EC2インスタンスに割り当てることの出来る不変なGIPとなっています。
このIPをあらかじめEC2インスタンスに割り当てておけば、再起動によりEC2インスタンス自体のパブリックIPアドレスが変わっても、外部からは不変のElasticIPを参照しているので、システムが動かなくなるという事が起きない、という事になります。
独自VPCを利用するとパブリックIPアドレスが変わらない?
ある時、独自VPCを用いて構築したEC2インスタンスについては、再起動をかけてもパブリックIPアドレスが変わらない、という話を聞きました。
果たして本当なのでしょうか?実際に検証してみました。
検証
参考
AWSへのVPC作成については以下の記事をご参考にしていただければなと思います。
関連記事
【仮想ネットワーク】AWS上に独自VPCを作ってみよう【AWSの土台】
IT
AWS
Mac
Windows
カスタマイズ
関連記事
【AWS】public/privateサブネット上にEC2インスタンスを乗せてSSH通信をしてみよう【VPC】
IT
AWS
Mac
Windows
カスタマイズIPアドレスについて
IPアドレスをここで公開すると、いろいろとセキュリティ的に怖いので、ダミー値を使った記事とさせて頂いてますのでご了承ください。
デフォルトVPC
まずは、デフォルトVPCにEC2インスタンスを作成し、確認してみます。
各種IPアドレス(作成直後)
作成直後のIPアドレスは以下の通りとなっています。
| IPv4 パブリック IP | 111.222.333.444 |
|---|---|
| プライベート IP | 999.888.777.666 |
各種IPアドレス(再起動)
では、EC2インスタンスを再起動してみましょう。
再起動後の各IPアドレスは以下のようになりました。
| IPv4 パブリック IP | 111.222.333.444 |
|---|---|
| プライベート IP | 999.888.777.666 |
どうやら再起動ではパブリック/プライベートともにIPアドレスは変わらないようですね。
2,3回行いましたが変わりませんでした。
各種IPアドレス(停止→起動)
では、次はEC2インスタンスを一度停止してから起動してみました。
停止→起動後のIPアドレスは以下のようになりました。
| IPv4 パブリック IP | 111.222.333.555 |
|---|---|
| プライベート IP | 999.888.777.666 |
一度停止すると、その時点でパブリックIPアドレスが解放されてしまい、そのタイミングで変わってしまうようですね。

ただ、プライベートIPアドレスは変わらなかったので、同ネットワーク内であれば気にする必要は無いのかもしれません。
独自VPC
では、次に独自VPCで作業を行ってみましょう。
各種IPアドレス(作成直後)
起動直後のIPアドレスは以下の通りとなっています。
| IPv4 パブリック IP | 222.222.333.444 |
|---|---|
| プライベート IP | 888.888.777.666 |
各種IPアドレス(再起動)
では、EC2インスタンスを再起動してみましょう。
再起動後のIPアドレスは以下のようになりました。
| IPv4 パブリック IP | 222.222.333.444 |
|---|---|
| プライベート IP | 888.888.777.666 |
こちらも同様に再起動ではパブリック/プライベートともにIPアドレスは変わらないようですね。
各種IPアドレス(停止→起動)
では、次はEC2インスタンスを一度停止してから起動してみました。
停止→起動後のIPアドレスは以下のようになりました。
| IPv4 パブリック IP | 222.222.333.444 |
|---|---|
| プライベート IP | 888.888.777.666 |
独自VPCの方のEC2は一度停止してから再起動してもパブリックIPアドレス/プライベートIPアドレスともに変わりませんでした。
停止した時点でもデフォルトVPCとは違い、設定されたままとなっていました。

結論
- 独自VPCでは停止→再起動をしてもパブリックIPアドレスは変わらない
- デフォルトVPCでも、再起動ではパブリックIPアドレスは変わらない
※今回はたまたま変わらなかっただけで、とある設定や条件下では変わる可能性がありますので、くれぐれも1参考例として捉えていただければなと思います。いずれにせよ、ElasticIPを使う/使わないの判断は要件によって合わせるようにお願いします。
終わりに
てっきり、自分はEC2インスタンスの再起動だけでもパブリックIPは変わってしまうのだと思っていました。
AWSのネットワーク周りはまだまだ知識不足でわからない部分が多々ありますので、少しずつ理解を深めていければなと思っております
