AWS請求書を見たら、NAT Gatewayの料金が想定以上に膨らんでいて驚いた経験はないでしょうか。EC2やRDSの利用料より、NAT Gatewayの方が高いというケースも珍しくありません。オンプレでは「NATは無料のルータ機能」という感覚だったため、クラウドで突然数万円単位の請求が発生する理由に戸惑うインフラエンジニアも多いはずです。
この記事では、AWS NAT Gatewayの料金体系と、現場で実施できるコスト削減の4つのアプローチについて、オンプレ経験者にもわかりやすく解説します。VPC Endpointの活用、NAT Instanceとの比較、Single NAT構成のトレードオフ、そしてCloudWatchを使ったトラフィック分析まで、実務で使える具体的な手順を網羅します。

なぜNAT Gatewayのコストは高くなるのか?(オンプレとの違い)
オンプレ環境では、プライベートネットワークからインターネットへ出るためのNAT機能は、ファイアウォールやルータに標準搭載されていました。ハードウェアの初期費用を払えば、データ転送量に応じて追加料金が発生することはありません。
AWS NAT Gatewayは、このNAT機能をマネージドサービスとして提供するものです。高可用性と自動スケーリングが担保される代わりに、従量課金の料金構造を持っています。ここが、オンプレ経験者が最初につまずくポイントです。
特に見落とされやすいのが「データ処理料金」です。NAT Gatewayを通過するすべてのトラフィック(アウトバウンドだけでなく、レスポンスとして返ってくるインバウンドも)に対して、1GB単位で課金されます。コンテナがS3からイメージをpullしたり、EC2がyumアップデートでパッケージをダウンロードするたびに、NAT Gatewayの料金メーターが回り続けます。
NAT Gatewayの料金体系を分解する
東京リージョン(ap-northeast-1)における料金は、以下の2つの要素で構成されています(2026年4月時点)。
| 課金項目 | 料金 | 特徴 |
|---|---|---|
| 時間課金 | USD 0.062/時間 | 1つのNAT Gatewayごとに発生。1か月稼働で約USD 45 |
| データ処理料金 | USD 0.062/GB | NAT Gatewayを通過した全データ量に対して課金 |
これに加えて、インターネットへの外部出力には別途データ転送料金(USD 0.114/GB、東京リージョン)も発生します。つまり、1GBのデータがプライベートサブネットのEC2から外部に出ていくと、合計でUSD 0.176/GBのコストがかかる計算になります。
マルチAZ構成での落とし穴
冗長性を確保するためにAZごとにNAT Gatewayを配置すると、時間課金だけで3AZ構成なら月額USD 135(約20,000円)の固定費が発生します。さらに、別AZのNAT Gatewayを経由するトラフィックには、AZ間データ転送料金(USD 0.01/GB、双方向)が追加されるため、ルーティング設計を誤ると想定外の請求につながります。
コスト削減の4つのアプローチ
NAT Gatewayのコストを下げる手段は、大きく4つに分類できます。それぞれトレードオフがあるため、ワークロード特性に合わせて選択する必要があります。
1. VPC Endpoint(Gateway型・Interface型)の活用
もっとも効果が大きく、かつ副作用が少ないのがVPC Endpointの活用です。VPC EndpointはAWSサービスへのプライベート接続を提供する仕組みで、NAT Gatewayを経由せずに直接AWSサービスと通信できます。
VPC Endpointには2種類あります。
・Gateway型: Amazon S3とAmazon DynamoDB専用。追加料金なしで利用可能。ルートテーブルに経路を追加するだけ。
・Interface型: SSM、ECR、CloudWatch Logs等のサービス向け。AZごとにENI(Elastic Network Interface)を配置し、時間課金USD 0.014/時間+データ処理USD 0.01/GBが発生。
2. NAT Instanceへの置き換え
NAT Instanceは、EC2インスタンス上で自前でNAT機能を動かす方式です。t4g.nanoのような小さいインスタンスを使えば、月額USD 3~5程度で運用可能です。
ただし、以下のような制約があります。
・単一障害点: インスタンス停止時にインターネット接続が切れる(AutoRecovery設定は可能)
・帯域幅の上限: インスタンスタイプに依存。大容量通信では性能不足
・運用コスト: OSパッチ適用、セキュリティ対応が必要
開発環境や検証環境、小規模プロジェクトでは有力な選択肢ですが、本番環境での採用は慎重に検討すべきです。
3. Single NAT構成(可用性とのトレードオフ)
3AZ構成を1つのNAT Gatewayに集約するアプローチです。全AZのプライベートサブネットが同じNAT Gatewayを使うため、時間課金は1/3になります。
デメリットは、そのAZが障害を起こすと他AZのワークロードも外部通信できなくなる点です。また、AZ間データ転送料金が発生します。SLAが厳しくない環境や、NAT Gatewayダウン時にもワークロードが継続できる設計(例: SQS経由の非同期処理)では有効です。
4. CloudWatchでのトラフィック分析
削減施策を実施する前に、どこでどれだけのトラフィックが発生しているかを可視化することが重要です。NAT GatewayはCloudWatchメトリクスで「BytesOutToDestination」「BytesInFromDestination」等を提供しており、VPC Flow Logsと組み合わせれば、通信先別の内訳まで把握できます。
多くの現場で、NAT Gateway通信の上位を占めるのは以下のような通信です。
・コンテナイメージのpull(ECR)
・ログ転送(CloudWatch Logs)
・OSアップデート(yum/apt)
・S3へのバックアップ・データ連携
・Systems Manager Session Manager経由の接続
これらはすべて、VPC Endpointへの置き換えで削減可能です。
VPC Endpoint設定手順(Gateway型S3の例)
もっとも効果が出やすいS3向けGateway型エンドポイントの設定手順を、AWSマネジメントコンソールと AWS CLIの両方で紹介します。
1. マネジメントコンソールでの作成手順
VPCダッシュボードから「エンドポイント」→「エンドポイントを作成」を開きます。サービスカテゴリで「AWSのサービス」を選択し、「com.amazonaws.ap-northeast-1.s3」のGateway型を選びます。対象VPCと、S3通信を行うサブネットのルートテーブルを選択して作成すれば完了です。
ポリシーはデフォルトで「フルアクセス」になっていますが、必要に応じて特定バケットのみに絞る設定も可能です。
2. AWS CLIでの作成例
# AWS CLI: S3向けGateway型VPC Endpointを作成 aws ec2 create-vpc-endpoint \ --vpc-id vpc-0abc123def456789 \ --service-name com.amazonaws.ap-northeast-1.s3 \ --route-table-ids rtb-0123abc rtb-0456def \ --vpc-endpoint-type Gateway
3. 動作確認と削減効果の測定
設定後は、EC2インスタンスからS3へのトラフィックがNAT Gateway経由でなくなっていることを、VPC Flow LogsまたはCloudWatchメトリクスで確認します。作成から数時間以内に、NAT GatewayのBytesOutToDestinationメトリクスが明確に低下していれば成功です。
料金の仕組み(コスト感覚)
具体例で削減効果を計算してみます。月間1TBの通信があり、そのうち600GBがS3、200GBがECR、100GBがCloudWatch Logs、残り100GBが外部API通信というケースを想定します(2026年4月時点の東京リージョン料金)。
| 構成 | 時間課金 | データ処理料 | 月額合計(概算) |
|---|---|---|---|
| NAT Gateway 3AZ 全トラフィック | USD 135 | USD 62 | 約USD 197 |
| + S3 Gateway型VPC Endpoint | USD 135 | USD 25 | 約USD 160 |
| + ECR/CWL Interface型VPC Endpoint | USD 150 | USD 9 | 約USD 159 |
| Single NAT構成 + VPC Endpoint | USD 60 | USD 9 | 約USD 69 |
Single NAT構成+主要VPC Endpointの組み合わせで、月額USD 128(約19,000円)の削減が見込めます。年間で23万円規模のインパクトになります。
応用・実務Tips
Interface型VPC Endpointは本当にお得か
Interface型は時間課金が発生するため、トラフィック量が少ないサービスでは、逆にコスト増になる可能性があります。月間10GB程度のCloudWatch Logs送信なら、NAT Gatewayのデータ処理料USD 0.62より、Interface型の時間課金USD 10の方が高くつきます。事前にCloudWatchメトリクスで通信量を把握し、損益分岐点を判断することが重要です。
NAT Gateway自体の削減も検討する
プライベートサブネットから外部通信が不要なワークロードなら、NAT Gatewayそのものを配置しない選択肢もあります。Lambdaや独立したAPI呼び出しが発生しないバッチ処理専用VPCでは、NAT Gatewayをゼロにできるケースがあります。
AZ間データ転送料金を見落とさない
Single NAT構成を採用すると、他AZからのトラフィックにAZ間データ転送料(USD 0.01/GB、双方向)が加算されます。通信量が多い場合はこの料金も無視できないため、事前にシミュレーションが必要です。
よくあるトラブルと対処法
VPC Endpoint作成後もNAT Gateway経由になる
Gateway型のVPC Endpointは、ルートテーブルへの経路追加が必要です。作成画面で対象ルートテーブルを選択し忘れると、エンドポイントは存在するのに経路がないため通信が流れません。VPC Endpointの詳細画面で「関連付けられているルートテーブル」を確認してください。
Interface型VPC EndpointでDNS解決ができない
Interface型でプライベートDNS名を有効化していないと、アプリケーションは従来通りパブリックエンドポイントに接続しようとし、NAT Gatewayを経由してしまいます。エンドポイント作成時に「プライベートDNS名を有効化」のチェックを忘れないようにします。
Gateway型VPC Endpointの対象リージョン
Gateway型はS3とDynamoDB限定かつ同一リージョン内通信のみ対象です。クロスリージョンのS3アクセスには適用されず、その場合はNAT Gatewayまたは別リージョン側のVPC Endpointが必要になります。
本記事のまとめ
AWS NAT Gatewayのコストは、適切な対策を取らないと月額数万円規模に膨らむ「静かなキラー」です。オンプレの感覚で放置すると、気づいたときには年間数十万円の請求になっていることも珍しくありません。
削減の基本戦略は、①CloudWatchで通信内訳を可視化する、②S3・DynamoDBはGateway型VPC Endpointで無料化する、③大口通信のサービスはInterface型VPC Endpointで転送量を削減する、④可用性要件に応じてSingle NAT構成も検討する、という順序です。
クラウドのコスト最適化は、サービス単体の料金を眺めるのではなく、ワークロード全体の通信パターンを理解することが出発点になります。AWSセキュリティの基礎については、姉妹サイトSecurityMaster.JPで詳しく解説しています。
NAT Gatewayの請求書を見て「何とかしたい」と感じていませんか?
クラウド実務に役立つ「Cost Optimization」カテゴリの記事を他にもまとめています。あわせて読みたい関連記事はこちらからどうぞ。
NATコスト の実費内訳 — 時間課金 + データ処理料金 + データ転送料の3層構造
NAT Gatewayの料金は単純な「時間課金」だけではなく、3層構造で積み上がります。ap-northeast-1(東京リージョン)の場合、(1) 時間課金 0.062 USD/時間、(2) データ処理料金 0.062 USD/GB、(3) AZ間/インターネット向けデータ転送料 0.01〜0.114 USD/GB、の3つが同時に発生します。月720時間稼働で時間課金だけでも約44.6 USD/月、複数AZ冗長構成(3AZ)なら時間課金だけで約134 USD/月になります。
| 料金項目 | 単価(ap-northeast-1) | 月額目安(1AZ) |
|---|---|---|
| 時間課金 | 0.062 USD/時間 | 約44.6 USD |
| データ処理料金 | 0.062 USD/GB | 100GB処理で6.2 USD |
| データ転送料(OUT) | 0.114 USD/GB | 100GB送信で11.4 USD |
盲点は「データ処理料金」です。これは通過したトラフィック全量に課金されるため、S3やDynamoDBへの大量アクセス、ECRからのコンテナイメージpull、yum/apt updateなども全てNAT Gateway経由だと0.062 USD/GBずつ加算されます。月1TB通過で約63 USD、10TBなら約634 USDが「データ処理料金だけで」発生する計算です。請求書のNAT Gateway項目が想定以上に膨らんでいる場合、9割はこのデータ処理料金が原因です。
NAT Gateway の代替パターン — VPC Endpoint(Gateway型/Interface型)でNAT回避
NAT Gatewayのデータ処理料金を削減する最も効果的な手段がVPC Endpointです。Gateway型エンドポイント(S3・DynamoDB)は完全無料で、ルートテーブルに追加するだけでNAT経由を回避できます。S3へのバックアップやログ転送が月数TB発生している環境では、Gateway型エンドポイント追加だけで月数百USD削減できるケースが珍しくありません。
一方Interface型エンドポイント(ECR・SSM・CloudWatch Logs・KMSなど)は、エンドポイントあたり0.014 USD/時間(月約10 USD)+データ処理料金 0.01 USD/GBが発生します。NAT Gatewayのデータ処理料金0.062 USD/GBと比べて約6分の1のため、対象サービスへのトラフィックが月160GBを超えればInterface型エンドポイントの方が安くなります。
| エンドポイント種別 | 対象サービス例 | 料金 |
|---|---|---|
| Gateway型 | S3、DynamoDB | 無料 |
| Interface型 | ECR、SSM、CW Logs、KMS、Secrets Manager | 0.014 USD/時間 + 0.01 USD/GB |
判断基準は単純で、AWSサービス向け通信が月160GB以上ならInterface型、S3/DynamoDBは無条件でGateway型を導入します。ECSコンテナを多用する環境ではECR・CW Logs・SSMの3点セット導入が定番です。
NAT Instance vs NAT Gateway 料金比較 — どこから NAT Instance が逆転するか
NAT Instanceは「自前EC2でNAT機能を提供する」古典的方式で、t4g.nano(月約3.5 USD)〜t4g.small(月約14 USD)で構築可能です。NAT Gatewayの時間課金44.6 USD/月と比べて圧倒的に安く、データ処理料金0.062 USD/GBも発生しないため、低トラフィック環境では1/10以下のコストに収まります。
| 項目 | NAT Gateway | NAT Instance(t4g.nano) |
|---|---|---|
| 月額固定費 | 約44.6 USD | 約3.5 USD |
| データ処理料金 | 0.062 USD/GB | なし |
| 帯域上限 | 最大100Gbps | インスタンスタイプ依存 |
| 可用性 | マネージド(AZ内冗長) | 自前で冗長化必須 |
逆転の判断基準は「トラフィック量」と「運用工数」の2軸です。トラフィックが月100GB未満かつ検証/開発環境であればNAT Instance優位、月500GB以上または本番ワークロードならNAT Gateway優位です。NAT Instanceは送信元/送信先チェック無効化、iptablesのMASQUERADE設定、AMIのセキュリティパッチ運用、障害時の切替スクリプトなど運用負荷が高く、SREの工数を月2時間以上消費するなら金額差は逆転します。検証環境はNAT Instance、本番はNAT Gateway+VPC Endpoint併用、が現実解です。