2024年2月分のAWS請求が急に跳ね上がっていた。原因はPublic IPv4料金改定

AWS

今までAWS使用料は毎月$1にも満たない金額でした。

しかし、先月(2024年2月)の請求金額を確認した所、急に$10以上に跳ね上がっていました

今月(2024年3月)の請求予測も、普段より多くなるデータが産出されていました。

2月中にAWSサービスをいじった記憶もなく、運営している当サイトのアクセス数も特に変化なしだった為、不正利用や請求ミスかと思い調査しました

原因はIPv4料金改定

Billing and Cost Management 画面で表示されていた通り、VPC(Virtual Private Cloud)での請求が急に増加していたので、関連個所を更に深堀りして調査しました。

すると下記の記事が見つかりました。

新着情報 – パブリック IPv4 アドレスの利用に対する新しい料金体系を発表 / Amazon VPC IP Address Manager が Public IP Insights の提供を開始 | Amazon Web Services
AWS は、パブリック IPv4 アドレスの利用に対して新しい料金体系を導入します。2024年2月1日より、特定のサービスに割り当てられているかどうかに関わらず、すべてのパブリック IPv4 アドレス...
AWS におけるパブリック IPv4 アドレスの使用状況の特定と最適化 | Amazon Web Services
この記事は、Identify and optimize public IPv4 address usage o

要約すると、PublicIPv4を使っている人は2024年2月以降、料金をプラスして請求するということでした。

EC2インスタンスを確認した所、パブリックIPv4を複数利用しており、無事原因の特定ができました。

ちなみに、現在パブリックIPをどれだけ利用しているかがわかるサービス(Amazon VPC IP Address Manager)がAWSからリリースされています。

利用IPが多くなりすぎて把握しきれない、という方は利用することをお勧めします。

対応

公式ページや個人サイトを参考に、IPv4からIPv6に移行しました。(正確には両方のアクセスに対応できるよう修正しました)

AWSのPublic IPv4構成をIPv6に切り替える | 外道父の匠
[AWS] IPv6でRoute 53+ALB+EC2構成のWebサーバーを構築する
Webサーバー on AWS EC2の運用を考えている方に向けて、IPv6構成でWebサーバーを構築する方法について解説しています。

2つ目の記事の「[AWS] IPv6でRoute 53+ALB+EC2構成のWebサーバーを構築する」の手順通り作業し、スムーズに移行することができました。

移行作業により、不要なElastic IPの削除及び、IPv6にも対応したサイトに作り替えることができました。

※移行に際して、EC2インスタンスをIPv6に対応したものに変更する必要があります。

※IPv6非対応のEC2インスタンスを利用していた場合、AMI(Amazon machine Image)を用いてインスタンスを再構築するなどの対応が必要となります

ロードバランサーを利用しているせいで、請求が少し高くなる

今まではALB(ロードバランサー)を利用していましたが、今回の料金改定により請求が高くなってしまう為、利用をやめることにしました。

請求が高くなる理由ですが、ロードバランサーを利用するには必ず2つ以上のサブネットを設定することになります。

その際に、強制的にパブリックIPv4を2つ以上取得することになります。

ロードバランサーは可用性を高めるための物なので、このような状態になるのは仕方ない(むしろそうした方がリスクは分散される)のですが、個人のサイトでそこまで可用性を重視する必要はないと判断しました。

ALBを削除してElastic IP を1つだけ取得しました。

それをRoute53にて設定することでパブリックIPv4の利用数を1つに絞りました。

可用性は乏しくなりましたが、毎月の出費が $3.6($0.005 x 24 x 30) 減ったので経費削減には成功しました。

因みに、最初にロードバランサーを設定した後に、片方のサブネットを後から削除するという方法が昔はできた?らしいです。

2024年3月現在で試した所、下記のエラーが出て削除できませんでした。

SSL化ができなくなったので対応

ロードバランサーを利用しなくなった結果、ALBに紐づけていたACM(証明書)も利用できなくなりました。

その為、let’s encrypt をサーバー内で設定してSSL化することにしました。

SSL化とは、インターネット上の通信を暗号化する技術の事です。

httpでサイトにアクセスしていたものが、httpsでの接続に代わります。

SSL化していないサイトは、不審なサイトであるとブラウザに判断されてしまいます。

本サイトの場合、EC2インスタンス内でbitnami というライブラリを利用して、Wordpressで運用しています。

bitnamiを利用していたおかげで、専用のコマンドを利用することで簡単に設定することができました。

やり方としては、EC2インスタンスのサーバーにSSH接続し、下記サイトを参考に証明書のインストール及び、自動更新設定を行いました。

Generate and Install a Let's Encrypt SSL Certificate for a Bitnami Application

もし、bitnamiを利用されていない場合は、let’s encrypt をサーバーにインストーする方法を適宜調べてください。

また、let’s encrypt は3か月毎に更新作業が必要となる為、cronなどで更新スクリプトを定期実行する設定も忘れず行ってください。

以上の作業を行うことで、パブリックIPv4の出費を大幅に下げることができました。

感想

ネットワーク関連はあまり知識がないと自負しているのですが、今回の件を機に少し勉強してみました。

VPCに関しては、多少理解が深まった気がしました。

今までは抽象的な概念のみ理解して触っていましたが、それらを多少具体的な知識に落とし込むことができたと思います。

また、今後実務でも増加するであろうIPv4からIPv6への移行作業を事前に作業することができたので、その点は収穫になりました。

実務でいきなりネットワークを弄るのは怖いですからね。インフラ作業はご安全に。。

タイトルとURLをコピーしました