AWS データ転送料金の全体整理 — どこで課金され、どこが無料か

読了 5分

AWS の請求書で最も予測が難しい項目がデータ転送です。コンピューティングとストレージは作った分だけ出ますが、転送料金はトラフィックが通った道筋によって課金の有無と単価が変わるからです。結論を先に書くと、受信は無料、送信は課金という大原則の上で、インターネットに出ていく区間(約 $0.09/GB)と AZ の間を行き来する区間(往復合計約 $0.02/GB)が請求書の大部分を作ります。 そこに NAT Gateway の処理料金とパブリック IPv4 の料金が転送とは別に上乗せされます。NAT は別の記事で扱い、CloudFront 経由の損益は前の記事で計算しました。料金は us-east-1 基準です。

一目でわかる区間別単価 #

区間単価備考
インターネット → AWS(受信)無料全サービス共通
AWS → インターネット(送信)約 $0.09/GB(最初の 10TB)全サービス合算で月 100GB 無料、段階的引き下げ
同一 AZ 内(プライベート IP)無料パブリック IP 経由は課金
AZ 間各方向 $0.01/GB(合計 $0.02)同一リージョン内でも課金
リージョン間約 $0.02/GB(組み合わせで異なる)一部の近接リージョンは $0.01
AWS オリジン → CloudFront無料CloudFront からインターネットに出るときだけ課金
NAT Gateway 通過処理料金 $0.045/GB 追加時間料金は別、転送料金に上乗せ
パブリック IPv4 保有時間あたり $0.005転送ではなく保有への課金

大原則 — 方向と境界 #

課金を判断する質問は 2 つです。どちら向きか、どの境界を越えるか。

方向は単純です。AWS に入ってくるトラフィックはどこから来ても無料で、AWS から出ていくトラフィックが課金対象です。アップロードを受けるサービスは転送料金の心配がほとんどなく、ダウンロードを配るサービスは転送料金が原価の大きな部分になります。

境界は 3 層です。内側から AZ、リージョン、インターネットの順で、外側の境界を越えるほど高くなります。同一 AZ 内でプライベート IP を使うトラフィックは無料です。AZ の境界を越えると同一リージョンでも各方向 $0.01/GB、往復なら合計 $0.02/GB がつきます。リージョンの境界を越えると送信側にリージョンの組み合わせごとの単価(おおむね $0.02/GB)がつき、インターネットに出ると最初の 10TB に約 $0.09/GB がつきます。

インターネット送信は月 100GB(全サービス合算)が無料で、10TB を超えると $0.085、その先の段階は $0.07、$0.05 と下がります。それでもインターネット区間が最も高いため、大量のコンテンツ配信は単価が低くオリジン区間が無料の CloudFront 経由が基本です。

請求書を驚かせる 3 つのパターン #

AZ 間の往復トラフィックです。 高可用性のためにサービスは複数の AZ にまたがりますが、その間の通信はすべて課金です。よくある例が、別 AZ の DB リードレプリカを読むアプリケーション、AZ をまたぐマイクロサービス呼び出し、クロスゾーンロードバランシングです。トラフィックの多い内部通信を同一 AZ 内に配置するだけで料金は消えますが、可用性と引き換えの決定なので、ステートレスな層にだけ適用するのが安全です。なお RDS マルチ AZ のレプリケーションのようにサービスに含まれる転送は課金されません。

NAT Gateway を通る S3 トラフィックです。 プライベートサブネットから S3 へのトラフィックが NAT を通ると、GB あたり $0.045 の処理料金がつきます。S3 と DynamoDB はゲートウェイ型 VPC エンドポイントが無料なので、エンドポイントを作るだけでこの料金はまるごと消えます。それ以外の AWS サービスはインターフェース型エンドポイント(時間あたり約 $0.01 + GB あたり $0.01)で NAT より安く回避できます。トラフィックが少ないとエンドポイントの固定費のほうが高くつくことがあるため、月間の量で判断します。

パブリック IP 経由の内部通信です。 同一リージョン内でもパブリック IP で通信するとプライベート経由より高い単価が適用され、パブリック IPv4 アドレス自体にも時間あたり $0.005(月約 $3.6)がつきます。内部通信はプライベート IP が基本で、増えた IPv4 料金は常時点検リストで扱ったとおり未使用 EIP の整理から始めます。

削減の手順 #

  1. Cost Explorer で転送項目から分解します: 使用タイプ(usage type)を DataTransfer-Out、DataTransfer-Regional、NatGateway-Bytes に分けて見ると、どの区間が本体かすぐわかります。
  2. インターネット送信が大きければ CloudFront を検討します: キャッシュ可能なコンテンツなら単価の引き下げ、オリジン転送無料、常時無料 1TB の三重で得になります。
  3. NAT 処理料金が大きければエンドポイントを作ります: S3、DynamoDB のゲートウェイ型エンドポイントは無料なので作らない理由がありません。残りはインターフェース型の固定費と比較します。
  4. AZ 間トラフィックは通信の道筋ごとに見ます: 大量の内部通信は同一 AZ 配置や圧縮転送を検討しつつ、可用性の要件と引き換えにしない範囲で調整します。
  5. リージョン間レプリケーションは必要なデータだけ送ります: S3 のクロスリージョンレプリケーションや DR 構成は、バケット全体ではなくプレフィックスやフィルターで範囲を絞ることが転送料金を直接減らします。

まとめ #

  • 入ってくるトラフィックは無料、出ていくトラフィックは課金です。境界は AZ、リージョン、インターネットの 3 層で、外に行くほど高くなります。
  • インターネット送信の約 $0.09/GB が最も高い区間です。大量配信は CloudFront 経由で単価を下げ、オリジン区間を無料にします。
  • AZ 間は各方向 $0.01/GB で、往復すると合計 $0.02/GB です。マルチ AZ アーキテクチャの内部通信が静かに積み上がる項目です。
  • NAT 処理料金とパブリック IPv4 料金は転送料金の上に乗る別項目です。S3、DynamoDB は無料のゲートウェイ型エンドポイントで NAT を回避します。
  • 削減は Cost Explorer の使用タイプ分解から始まります。どの区間が本体かわからなければ、どんな対策も検証できません。
X