薄っぺらりん

厚くしていきたい

AWS パブリックIP有料化によるちょっとした影響

目次

スポットインスタンスよりも高価なパブリックIP

2024年2月1日からAWSのパブリックIPv4アドレスの料金体系が変更となり、アドレスを使用中であっても課金が適用されることがアナウンスされ話題になっています。それに伴い、Amazon VPC IP Address ManagerにパブリックIPアドレスの使用状況を確認できるPublic IP Insightsがリリースされました。
私がこのアナウンスで真っ先に思い浮かんだのは春先のツイートのことでした。

スポットインスタンスの割引率は驚異的で、オンデマンド料金と比べて最大90%安くなります。3月はt3.nanoを約715時間使い1.43 USDかかったので、時間あたり0.002 USDになります。オンデマンド料金は0.0068 USDなので60%ほど安くなっています。
アタッチしていないElastic IPは0.005 USDなのでt3.nanoを起動したままにしていた方が安く済みます。
ただしこれはアタッチされているElastic IPが無料だったからであり、来年2月からはEIPとt3.nanoで0.007 USDかかってしまいます。節約のためには、使用しないときはEC2を停止し、EIPをデタッチしてリリースする必要があります。そして使うときにはEC2を起動し、EIPを割り当て、アタッチしなければなりません。現状、AWS Consoleモバイルアプリからはそういった柔軟な操作は行えません。また、EIPを新規割り当てしているためアドレスが変わってしまいます。アドレスが変わってしまうのであれば、もはやElastic IPを使用する必要はありません。インスタンスに直接パブリックIPアドレスを関連付ければよく、その場合はインスタンスの起動、停止だけで済みます。この操作ならAWS Consoleモバイルアプリからでも行えます。
問題はパブリックIPアドレスを関連付けたインスタンスを停止した場合、IPアドレスに対して課金されるのかという点です。
EC2のドキュメントには次のように記載があります。

We release your instance's public IP address when it is stopped, hibernated, or terminated. Your stopped or hibernated instance receives a new public IP address when it is started.

インスタンスが停止した場合はパブリックIPアドレスはリリースされるようです。
折角なのでPublic IP Insightsを使用して本当にリリースされているのか確認してみることにします。

EC2停止時のIPリリースをPublic IP Insightsにて確認

画像内のIDは全てランダム値になります。

パブリックIPアドレスを関連付けたEC2インスタンスを起動します。

Public IP Insightsを見てみます。
アドレスタイプ別に色分けされたドーナツグラフが表示され、画面下部のテーブルにはアドレス毎に関連付けられているリソースなどの情報がまとめられています。
パブリックIPアドレスの使用状況をひと目で確認することができて便利です。

インスタンスを停止します。
自動的に割り当てられたIPアドレスパブリックIPv4 DNSの値は空になります。コンソール内の更新ボタンを押しただけだとパブリックIPv4アドレスの値が残ってしまっていますが、画面をリロードするとちゃんと消えます。

再びPublic IP Insightsを見てみます。
ひとつもパブリックIPアドレスが無い状態のメッセージが表示され、EC2停止後すぐにアドレスがリリースされたことが確認できます。

おわりに

EC2にパブリックIPアドレスを直接関連付けることにより、有料化後もElastic IPよりは節約することができそうです。
インスタンスを起動する度にアドレスが変わってしまうため、このままではクライアント側で都度設定が必要になってしまいます。対応としてはRoute53の既存パブリックホストゾーンを使用し、EC2のユーザーデータでパブリックIPのレコードを作成することになりそうです。
Public IP Insights、見やすくて便利ですね。