「クラウドに移行したら、想定外のデータ転送料金が毎月かさんでいる」——こんな悩みを抱えているインフラエンジニアは少なくないはずです。
オンプレミス環境では、ラック間の通信にいくらかかっているかなど意識する場面はほとんどありませんでした。ところがAWSでは、リージョン間やインターネットへのアウトバウンド通信に従量課金が発生します。EC2やRDSの利用料は見積もっていたのに、データ転送料金は計算に入れていなかった、というケースは現場で本当によくあります。
この記事では、AWSデータ転送料金の課金ルールを体系的に整理し、すぐに実践できる削減テクニックを具体的に解説します。「どこからどこへの通信にいくらかかるのか」「どうすれば月額を下げられるのか」が、この記事を読み終える頃にはクリアになっているはずです。

なぜデータ転送料金がオンプレ経験者を悩ませるのか
オンプレミスのデータセンターでは、同一ラック内のサーバー間通信はスイッチを経由するだけで、通信量に応じた課金は発生しません。拠点間を専用線で結んでいる場合でも、月額固定の回線費用を払っていれば、どれだけデータを流しても追加コストはかかりませんでした。
AWSではこの感覚が通用しません。データ転送料金は「どこからどこへ、どれだけのデータが流れたか」で従量課金されます。特にやっかいなのは、以下の3点です。
・インバウンドは無料だが、アウトバウンドは有料: AWSにデータを入れるのは基本無料ですが、AWSから外に出すときに課金されます
・同一リージョン内でもAZ間通信は有料: マルチAZ構成にすると、可用性は上がる代わりにAZ間のデータ転送料金が発生します
・請求書に「Data Transfer」として一括表示される: どのサービスのどの通信が原因なのか、Cost Explorerで掘り下げないと特定できません
オンプレ時代の感覚で「通信は固定費」と考えていると、AWS移行後に毎月の請求書を見て驚くことになります。
AWSデータ転送料金の課金ルール(全体像)
まず、AWSのデータ転送料金がどのパターンで発生するのかを整理します。東京リージョン(ap-northeast-1)を基準にした料金です(2026年4月時点)。
| 通信パターン | 料金(1GBあたり) | 備考 |
|---|---|---|
| インターネット → AWS(イン) | 無料 | すべてのサービス共通 |
| AWS → インターネット(アウト) | $0.114 | 最初の10TBまで。以降は段階的に割引 |
| 同一AZ内(プライベートIP) | 無料 | 同じAZ内のEC2同士など |
| 異なるAZ間(同一リージョン) | $0.01(双方向で$0.02) | 送信側・受信側それぞれに課金 |
| 異なるリージョン間 | $0.09 | 送信元リージョンの料金が適用 |
| CloudFront → インターネット | $0.114 | ただし一定量は無料枠あり |
| CloudFront → オリジン(AWS内) | 無料 | S3やALBオリジンへの取得は無課金 |
1. インターネットアウトバウンドの段階料金
AWSからインターネットへのアウトバウンド転送は、月間の合計転送量によって段階的に単価が下がります。
| 月間転送量 | 1GBあたりの料金 |
|---|---|
| 最初の100GB/月 | 無料 |
| 次の10TB/月 | $0.114 |
| 次の40TB/月 | $0.089 |
| 次の100TB/月 | $0.086 |
| 150TB/月以上 | 個別見積もり |
最初の100GBは無料なので、小規模なシステムではデータ転送料金をほとんど気にする必要がありません。ただし、動画配信やファイルダウンロードを提供するシステムでは、TBクラスのアウトバウンドが発生し、月額数万円〜数十万円の転送料金になることもあります。
2. AZ間通信の見落とし
マルチAZ構成は可用性のベストプラクティスですが、AZ間通信には片方向$0.01/GBの課金が発生します。双方向で$0.02/GBです。
たとえば、EC2(AZ-a)からRDS(AZ-c)へ毎日100GBのクエリ結果を返すシステムなら、月間のAZ間転送量は約3TB。料金にすると月額$60程度です。大きな金額ではありませんが、マイクロサービスで大量のサービス間通信が発生する環境では、積み重なって無視できないコストになります。
3. NAT Gatewayの二重課金
プライベートサブネットのEC2がインターネットにアクセスする場合、NAT Gatewayを経由します。ここで見落としがちなのが、NAT Gatewayには「処理料金」と「データ転送料金」が二重にかかる点です。
・NAT Gateway処理料金: $0.062/GB(東京リージョン、2026年4月時点)
・通常のデータ転送料金: $0.114/GB(インターネットアウトバウンド)
合計すると$0.176/GBです。月間1TBをNAT Gateway経由でアウトバウンドすると、約$176——日本円で約2.7万円がNAT Gateway関連だけでかかる計算になります。

データ転送料金を可視化する方法
削減の第一歩は、現状を正しく把握することです。AWSにはデータ転送コストを可視化するための機能がいくつか用意されています。
1. Cost Explorerでサービス別に分解する
AWS Cost Explorerを開いて、フィルターで「Usage Type」を選択し、「DataTransfer」で絞り込みます。これで、どのサービスからどのくらいのデータ転送が発生しているかがグラフで確認できます。
# AWS CLIでデータ転送コストを取得する例 aws ce get-cost-and-usage \ --time-period Start=2026-04-01,End=2026-04-30 \ --granularity MONTHLY \ --metrics "UnblendedCost" \ --filter '{ "Dimensions": { "Key": "USAGE_TYPE_GROUP", "Values": ["EC2: Data Transfer - Internet (Out)", "EC2: Data Transfer - Inter AZ"] } }' \ --group-by Type=DIMENSION,Key=USAGE_TYPE
2. VPC Flow Logsで通信先を特定する
Cost Explorerでデータ転送コストが高いとわかっても、「どのEC2インスタンスが、どこに対して、どれだけ通信しているか」までは見えません。ここで役立つのがVPC Flow Logsです。
VPC Flow Logsを有効にすると、VPC内の全通信ログがCloudWatch LogsまたはS3に保存されます。Athenaを使ってクエリを投げれば、転送量の多い通信先を特定できます。
# Athenaでフローログから転送量の多い通信を抽出 SELECT srcaddr, dstaddr, SUM(bytes) as total_bytes FROM vpc_flow_logs WHERE start >= timestamp '2026-04-01' GROUP BY srcaddr, dstaddr ORDER BY total_bytes DESC LIMIT 20;
ただし、VPC Flow Logs自体にも保存コストがかかるため、調査期間を限定して一時的に有効化するのが実用的です。
3. AWS Cost Anomaly Detectionで異常検知する
AWS Cost Anomaly Detectionは、機械学習を使って過去の利用傾向から異常なコスト増加を自動検知するサービスです。データ転送料金が急増した場合にSNSやメールで通知を受け取れるので、想定外の請求を早期に発見できます。設定は無料で、追加料金もかかりません。
すぐに実践できるデータ転送料金の削減テクニック
ここからは、現場で実際に効果が出る削減テクニックを紹介します。
1. CloudFrontをオリジンの前段に配置する
S3やALBの前段にAmazon CloudFrontを配置すると、以下の2つのコスト削減効果があります。
・オリジンへのリクエスト削減: CDNキャッシュでヒットした分は、オリジンからのデータ転送が発生しません
・CloudFront→オリジン間は無料: CloudFrontからS3やALBへのオリジンフェッチは、データ転送料金が無料です
つまり、EC2やALBから直接インターネットにデータを返すよりも、CloudFrontを経由したほうが安くなるケースが多いのです。静的ファイルだけでなく、動的コンテンツでもTTLを短く設定して部分的にキャッシュすることで、転送コストを下げられます。
2. VPCエンドポイントでNAT Gatewayを回避する
プライベートサブネットのEC2からS3やDynamoDBにアクセスする場合、NAT Gatewayを経由するとデータ処理料金が上乗せされます。VPCエンドポイントを使えば、NAT Gatewayを経由せずにAWSサービスに直接接続できます。
| エンドポイントタイプ | 対象サービス | 料金 |
|---|---|---|
| ゲートウェイエンドポイント | S3、DynamoDB | 無料 |
| インターフェースエンドポイント | その他のAWSサービス | $0.014/時間 + $0.01/GB |
S3とDynamoDBへのアクセスは、ゲートウェイエンドポイントを作成するだけで完全に無料になります。NAT Gatewayの$0.062/GB処理料金がそのまま削減できるので、大量のデータをS3から取得しているシステムでは効果が大きいです。
# S3用ゲートウェイエンドポイントを作成(AWS CLI) aws ec2 create-vpc-endpoint \ --vpc-id vpc-xxxxxxxx \ --service-name com.amazonaws.ap-northeast-1.s3 \ --route-table-ids rtb-xxxxxxxx
3. 同一AZにリソースを寄せる
マルチAZ構成は可用性のために重要ですが、すべてのリソースをマルチAZにする必要はありません。たとえば、バッチ処理用のEC2とそのバッチが読み書きするRDSリードレプリカは、同じAZに配置しても問題ないケースが多いです。
・可用性が必要なフロントエンド: マルチAZ(AZ間通信コストは許容)
・バッチ処理やデータ分析: 同一AZに寄せてコスト削減
EC2インスタンスを起動するときにサブネット(= AZ)を明示的に指定するだけで実現できます。
4. S3 Transfer Accelerationの利用を見直す
S3 Transfer Accelerationは、CloudFrontのエッジロケーションを利用してS3へのアップロード速度を高速化するオプションです。ただし、通常のデータ転送料金に加えて追加料金($0.04/GB〜)が発生します。
実際に速度が改善されているか確認せずに有効にしているケースがあります。AWSが提供する速度比較ツールで効果を測定し、効果が薄ければ無効にしましょう。
5. リージョン間レプリケーションを必要最小限にする
S3のクロスリージョンレプリケーション(CRR)やRDSのクロスリージョンリードレプリカは、DR(災害復旧)のために有用ですが、リージョン間のデータ転送料金が発生します。
・S3 CRR: レプリケーション先リージョンへの転送に$0.09/GB
・RDSクロスリージョンリードレプリカ: 継続的なデータ転送が発生
DR要件を満たす最小限のデータだけをレプリケーション対象にする、または同一リージョン内のマルチAZ構成で十分かどうかを再検討してください。
削減効果の試算例
実際にどの程度のコスト削減が見込めるのか、典型的なWebアプリケーションの例で試算してみます。
構成: EC2 + RDS + S3の一般的なWebアプリ
| 項目 | 対策前(月額) | 対策後(月額) | 削減額 |
|---|---|---|---|
| インターネットアウトバウンド(500GB/月) | $57.00 | $22.80(CloudFrontで60%キャッシュ) | $34.20 |
| NAT Gateway処理料金(200GB/月) | $12.40 | $3.10(S3をエンドポイント化で75%削減) | $9.30 |
| AZ間通信(100GB/月) | $2.00 | $0.80(バッチ処理を同一AZ化) | $1.20 |
| 合計 | $71.40 | $26.70 | $44.70(63%削減) |
この規模では月額$44.70(約6,700円)の削減ですが、月間10TB以上のアウトバウンドがあるシステムでは、年間で数十万円のコスト削減につながります。
よくあるトラブルと対処法
【トラブル1】月末にデータ転送料金が急増する
原因として多いのは、月次バッチでのログエクスポートやバックアップ転送です。CloudWatch Logsのエクスポートやデータベースのフルバックアップを外部に転送している場合、月末や月初に集中してアウトバウンドが増加します。
対処: バッチの転送先をS3にして、必要な場合だけS3から外部にダウンロードする運用に変えます。S3に保存したデータは、必要になるまでアウトバウンド料金が発生しません。
【トラブル2】開発環境のデータ転送コストが想定以上に高い
本番環境のデータを丸ごとコピーして開発環境を構築し、別リージョンや別アカウントに配置している場合、初回コピーだけでなく定期的なリフレッシュでもリージョン間転送料金がかかります。
対処: 開発環境は本番と同じリージョンに配置し、データはサンプルデータや匿名化した縮小版を使います。
【トラブル3】VPCエンドポイント設定後もNAT Gateway経由になっている
ゲートウェイエンドポイントを作成しても、ルートテーブルに正しくアタッチされていなければトラフィックはNAT Gatewayを経由し続けます。
対処: 以下のコマンドでルートテーブルにエンドポイントのルートが追加されているか確認します。
# ルートテーブルの確認(AWS CLI) aws ec2 describe-route-tables \ --route-table-ids rtb-xxxxxxxx \ --query 'RouteTables[].Routes[?GatewayId!=`null`]'
S3エンドポイントのルートが「pl-xxxxxxxx → vpce-xxxxxxxx」の形式で存在していれば正常です。

本記事のまとめ
AWSのデータ転送料金は、オンプレミス環境にはなかった「通信量に応じた従量課金」という概念で、移行直後に見落としがちなコストです。
| 削減テクニック | 効果が大きいケース | 導入難易度 |
|---|---|---|
| CloudFrontの前段配置 | 静的/動的コンテンツの配信量が多い | 低〜中 |
| S3/DynamoDBゲートウェイエンドポイント | プライベートサブネットからS3へ大量アクセス | 低 |
| 同一AZへのリソース配置 | バッチ処理・データ分析の通信量が多い | 低 |
| Transfer Acceleration無効化 | 速度改善効果が薄いまま有効になっている | 低 |
| リージョン間レプリケーション見直し | DR要件に対してレプリケーション過多 | 中 |
まずはCost Explorerでデータ転送コストの現状を把握し、金額の大きい項目から順に対策を打っていくのが現実的なアプローチです。特にS3ゲートウェイエンドポイントの作成は無料かつ数分で完了するので、まだ設定していない環境があれば今すぐ試してみてください。
Linuxサーバーの基礎やオンプレミス環境の運用ノウハウについては、姉妹サイトLinuxMaster.JPで詳しく解説しています。
クラウドの料金、把握できていますか?
データ転送料金のようなコスト最適化の実践ノウハウを、毎週お届けしています。
オンプレの経験を活かしながら、現場で使えるクラウドスキルを体系的に身につけたい方へ、メルマガで実践的なクラウド活用ノウハウをお届けしています。


コメント