AWS) 2024/2/1~ 1パブリックIPに月500円かかるようになります

TL;DR

  • 2024/2/1~ 1パブリックIPにつき0.005USD/時間が課金される (1ドル140円で月500円くらい)
  • これまでも未使用のEIPに0.005USD/時間が課金されていたが、使用中のEIPや自動割り当てのパブリックIPは無料だった。2024/2/1からは使用中のEIPと自動割り当てのパブリックIPに対しても課金される (つまり未使用のEIPに限らずパブリックIPはすべて課金される。インスタンスごとでなくIP単位なので複数割り当てていれば全部課金される。)
  • 基本すべてのパブリックIPが対象 (マネージドサービスでAWSから自動割り当てされるパブリックIPも対象)
    • 具体的にはEC2の自動割り当てパブリックIP, EIP, NATゲートウェイ, パブリックサブネット上のELB(ALB/NLB/CLB)(ECS/EKSなどで利用しているものも対象)/RDS/RedShift, Site-toSite VPN, Global Accelaratorなどなど
      • ALBは複数AZ構成でAZごとにパブリックIPが割り当てられるのでAZ数分課金される
      • 見落としがちな課金対象がある (ECSサービスでパブリックIPの自動割り当てONにしている場合のタスク数分の課金など)
    • S3/CloudFrontなどIPアドレスを明示的に扱えないサービスは対象外と思われる
    • BYOIP(持ち込みIP)は課金されない
  • パブリック IPv4 インサイトで簡単に確認できる
    • 一覧でこれ何?ってなったときのリソースの特定は面倒&たまに難しい

リファレンス

New – AWS Public IPv4 Address Charge + Public IP Insights | Amazon Web Services

2024 年 2 月 1 日より、サービスに関連付けられているかどうかに関係なく、すべてのパブリック IPv4 アドレスに対して、IP ごとに 1 時間あたり 0.005 ドルの料金が発生します

IPv4 アドレスはますます希少なリソースとなっており、単一のパブリック IPv4 アドレスを取得するコストは過去 5 年間で 300% 以上上昇しています。この変更は、私たち自身のコストを反映するものであり、パブリック IPv4 アドレスの使用をもう少し倹約し、最新化と保護の手段として IPv6 の導入を加速することを検討することを奨励することも目的としています。

パブリックIPアドレスの種類現在の料金/時間 (USD)新しい時間あたりの料金 (USD)
(2024 年 2 月 1 日発効)
VPC、Amazon Global Accelerator、AWS サイト間 VPN トンネル内のリソースに割り当てられた使用中のパブリック IPv4 アドレス (Amazon 提供のパブリック IPv4 および Elastic IP を含む)無償$0.005
実行中の EC2 インスタンス上の追加 (セカンダリ) Elastic IP アドレス$0.005$0.005
アカウント内のアイドル状態の Elastic IP アドレス$0.005$0.005

Identify and optimize public IPv4 address usage on AWS | Amazon Web Services

4 種類の AWS パブリック IPv4 アドレスと、それぞれが発表された料金にどのように反映されるかを簡単に確認してみましょう。

1_ Amazon Elastic Compute Cloud (EC2) パブリック IPv4 アドレス
デフォルトのAmazon Virtual Private Cloud (VPC)またはパブリック IP アドレスの自動割り当て設定が有効になっているサブネットでAWS リソースを起動すると、AWS リソースは自動的にパブリック IPv4 アドレスを受信します。

    2_ Elastic IP アドレス

    3_ サービス管理のパブリック IPv4 アドレス
    インターネットに接続されたElastic Load Balancer、NAT ゲートウェイ、またはAWS Global Acceleratorなど

    4_ 独自の IPv4 アドレスの使用には料金はかかりません。

    実際にどのくらいの料金が発生するようになるかの試算

    直近1年の為替レート(2022/7~2023/7)は130円~150円で推移していて、ここ数か月は140円台で推移しています。(Google Finance より)

    1ドル140円で計算すると、0.005USDは、1時間あたり0.7円です。

    1日あたりや月ごとに換算すると、1日15.6円、月504円、年6048円となります。

    直近1年の為替レート(130円~150円)ごとの料金を円ベースで表にまとめました。

    (単位:円)

    為替レート1時間1日1か月1年
    1300.6515.64685616
    1400.7016.85046048
    1500.75185406480

    つまり、為替レートが現在のまま推移した場合は、大体1か月で500円 (500円弱~540円) かかると考えれば良いと思います。

    ざっくり1IPで月500/年間6000円。

    10IPで月5000/年間6万円。

    20IPで月1万円/年間12万円。

    IP数に応じてちょっと気になる金額になってきそうです。

    私の環境では、サーバ(やECSタスク)は極力プライベートサブネットに配置しているので、EC2インスタンスなどのネットワークインターフェースのカウントは少なかったのですが、ELB (具体的にはインターネットALB)(ECSタスクで構成するものも含む) を複数利用しているのと、ELBは複数AZで構成しますが、AZごとにネットワークインターフェースがありパブリックIPが付与されているためAZ数分カウントとなり、後述のパブリック IPv4 インサイトでの確認で、ELBで利用しているとしてカウントされるパブリックIPがたくさんありました。

    パブリックIP数の確認方法 (パブリック IPv4 インサイト)

    対象リソースが多岐にわたるので、実直にひとつひとつ確認するのは厳しいと思います。

    確認ツールが提供されたのでそちらを利用します。

    Amazon VPC IP Address Manager(IPAM)サービスにアクセス -> 左ペイン) パブリック IPv4 インサイト

    画面上部にポップアップ表示されているとおり、リージョンごとの表示となります (画面右上にご利用のリージョンが表示されていることを確認します)。

    複数リージョンを一括で確認するにはIP Address Manager(IPAM)が必要のようです。

    下部に一覧があります。

    一覧右上の歯車アイコンで表示件数と列を変更できます。

    表示件数がデフォルト10なので50に変更し、見てもどれか分からないので「ネットワークインターフェースID」をOFFにしました。

    上記画面には映っていませんが、私の環境ではELBのIPが大量に表示されました。

    ECSで複数クラスタを立てているためとなります(サービス列で、ECSのインターネットALBはELB、ECSのパブリックIP自動割り当てONでパブリックIPが付与されたタスクはECSとして表示されます)。

    一覧右上のCSVエクスポートでCSV出力できますが、CSVの項目は画面のまま出力されるので、必要な列はすべてONにしておくかすべての列をONにした状態でCSVエクスポートをすると良いです。

    ただしSecurity Groups列だけは、CSV上では[object Object] と表示されていて、セキュリティグループ名は秘匿されていました。

    インスタンス名/ALB名/ECSサービス名などが直接表示されずリンクもないのがつらいです (EC2インスタンスは、インスタンスIDのリンクをクリックすれば確認できます)。

    EC2インスタンス以外については、セキュリティグループ名などから当たりをつける感じです。

    ALBはそれぞれIPが2つ表示されています。これはALBが複数AZ必須で、AZ2つならIPも2つ、AZが3つならIPも3つ割り当てられるためと考えられます。

    また、気づきとして、ECSサービスの「パブリックIPの自動割り当て」が有効な場合、起動するタスク数に応じてパブリックIPも付与されていると考えられます。

    実環境では見たことありませんが、AWSの構成としては、Route53のルーティングポリシーで負荷分散してEC2をパブリックサブネットでオートスケーリングする構成も可能だと思うので、パブリックサブネットにECSタスクやEC2オートスケーリンググループを配置する場合スケーリングに応じてコストがかかるので注意が必要です。

    ECSの設定はECSサービスのネットワークタブで表示できます (真ん中部分)。

    怪しい点

    ECSの設定がパブリックIPの自動割り当てONになっててタスクにパブリックIPが付与され課金対象としてカウントされてるけど、ECSを、ALBだけ外に出してセキュアめなインターネットアクセスにするのってできなくて(?) (インターネットALBのみパブリックサブネット配置、タスクはプライベート配置にすることはできない?) 、ECS自体をパブリックサブネット配置したりパブリックIPの自動割り当てをONにしたりする必要があったような.. (うろ覚え)。で、ネットワーク的な構成はそうで、タスクのポートのセキュリティ担保するためにセキュリティグループでALBからの特定プロトコルの通信のみ許可とかで構成したような。じゃないとタスクはパブリックに出したくないので、パブリックサブネットに配置したりパブリックIPの自動割り当てONにしたりしないと思うんだよなあ.. (自動付与されるパブリックIPなんか使ってないし)

    でもだとすると、ECSタスク数分パブリックIPが払い出されて課金対象だと思うので、多数のタスクを起動/スケールする環境だとかなり金額が行くような.. (20IPで1万円なので)

    Fargateで2000タスク動かしてるって豪語してる知り合いいたなあ..

    この辺知りたい (ECSタスクをプライベートサブネットに置けたか、やはりパブリックサブネットに置かなきゃいけない場合はタスク数分課金発生するのか)