SAP-C02-099 · セクション 11 / タスク 2.6
Data Transfer Costの構造
インターネットエグレス / Inter-AZ / Inter-Region / NAT Gateway / データ処理 / トラフィック パターン
AWSのデータ転送コストを考えるとき、
100 GB通信した
↓
100 GB分の料金
と単純には計算できません。
同じ100 GBでも、
インターネットへ送信したのか
別のアベイラビリティーゾーンへ送信したのか
別リージョンへ送信したのか
NAT Gatewayなどの
データ処理サービスを通ったのか
によって、課金される場所が変わります。
さらに1つの通信が、
Inter-AZ データ転送
+
NAT Gateway データ処理
+
インターネットエグレス
のように、複数の料金要素を同時に発生させる場合があります。
ゴール
最終的に、
通信元
↓
通信経路
↓
通信先
を見て、
インターネットエグレス
Inter-AZ
Inter-Region
データ処理
固定的なGateway料金
へ分解し、
どのトラフィックに
何の料金が
何GB分発生するか
を説明できることがゴールです。
1. データ転送コストは「経路のコスト」で考える
最初に見るのは、
EC2
S3
RDS
のようなサービス名だけではありません。
重要なのは、
送信元
↓
経路
↓
送信先
です。
例えば、
Amazon EC2
↓
インターネット
と、
Amazon EC2
↓
NAT Gateway
↓
インターネット
では、最終的な通信先が同じでも料金構造が異なります。
後者では、
データ転送
だけでなく、
NAT Gateway データ処理
も考える必要があります。
2. AWSのデータ転送を3つの境界に分ける
AWSでは、データ転送コストを考えるうえで代表的に次の3種類があります。
DTO
データ転送 Out to インターネット
DTAZ
データ転送 アベイラビリティーゾーン間
DTIR
データ転送 リージョン間
整理すると、
| 境界 | 通信 |
|---|---|
| インターネットエグレス | AWS → インターネット |
| Inter-AZ | 同一リージョン・異なるAZ |
| Inter-Region | 異なるAWS リージョン |
最初に、
どの境界を越えているか
を確認します。
3. インターネットではイングレスとエグレスを分ける
インターネットとAWS間の通信では、
インターネット
→
AWS
と、
AWS
→
インターネット
を分けます。
一般的に、
インターネット
→
AWS
データ転送 In
は無料です。
一方、
AWS
→
インターネット
データ転送 Out
ではインターネットエグレス料金を評価します。
つまり、
受信量
+
送信量
をまとめてインターネットエグレスとして計算するのではありません。
4. インターネットエグレスは送信元リージョンと利用量を見る
インターネットエグレスでは、
何GB送信するか
だけではなく、
どのリージョンから送信するか
も確認します。
データ転送 Outの料金は、基本的に、
送信元 リージョン
を基準にします。
したがって、
東京リージョン
→ インターネット
と、
別リージョン
→ インターネット
で同じ料金とは限りません。
料金モデルでは、
送信元 リージョン
+
月間 エグレス 量
+
適用される料金階層
を確認します。
5. 100 GBの無料インターネットエグレスはリージョンごとではない
現在、AWS リージョンからインターネットへのデータ転送 Outには、
月100 GB
の無料枠があります。
中国リージョンとAWS GovCloudを除き、
AWSサービス
+
AWS リージョン
を横断して集計されます。
例えば、
Amazon EC2
60 GB
Amazon S3
50 GB
をインターネットへ送信すると、
60 + 50
=
110 GB
です。
EC2に100 GB
+
S3にも100 GB
ではありません。
また、
リージョン A
100 GB
リージョン B
100 GB
のようにリージョンごとに別々の100 GB無料枠が付くわけでもありません。
6. 無料利用枠とアーキテクチャ コストを混同しない
無料枠があるからといって、
インターネットエグレス
=
コスト要因ではない
とは考えません。
例えば、
月50 GB
では無料範囲に収まっていても、事業成長によって、
月5 TB
月50 TB
へ増える可能性があります。
したがってコストモデルでは、
トラフィック量
↓
無料枠
↓
有料対象量
↓
料金階層
という順で考えます。
7. 同じリージョンでもAZをまたげばInter-AZになる
次に、
同一AWS リージョン
だから無料とは限りません。
例えば、
AZ-A
EC2
↓
AZ-B
EC2
という通信は、
Inter-AZ
です。
AWSでは、対象サービスについて、
データ転送 In
+
データ転送 Out
の両側でリージョン内データ転送料金が発生する場合があります。
そのため、
100 GBの通信
=
常に100 GB分だけ課金
とは考えません。
どのリソースが計測対象なのかをサービス料金表で確認します。
8. Inter-AZはInter-Regionではない
次を混同しないようにします。
Tokyo
AZ-A
↓
Tokyo
AZ-B
は、
Inter-AZ
です。
一方、
Tokyo リージョン
↓
Sydney リージョン
は、
Inter-Region
です。
つまり、
リージョン境界
を越えたか、
AZ境界
だけを越えたかを区別します。
9. 同じリージョンの通信がすべて有料でもない
反対に、
別サービスへ通信した
だけで必ずデータ転送料金が発生するわけでもありません。
例えば同一リージョンで、
Amazon EC2
↔
Amazon S3
を直接通信する場合など、データ転送料金が無料となる組み合わせがあります。
同様に、
Amazon DynamoDB
Amazon SQS
Amazon SNS
など、一部サービスとの同一リージョン通信には無料となる組み合わせがあります。
したがって、
同一リージョン
=
必ず無料
でも、
AWSサービス間
=
必ず有料
でもありません。
10. Inter-Regionでは送信元リージョンを基準にする
異なるAWS リージョン間の通信では、
Inter-Region データ転送
を考えます。
現在の一般的な料金モデルでは、
送信元 リージョン
を基準にデータ転送料金が決まります。
例えば、
Tokyo
↓
Sydney
なら、
Tokyoから送信されたデータ
として料金を評価します。
請求上は、
Out
In
の両方の使用量情報が現れる場合がありますが、料金は送信元側のOutへ関連付けられる構造があります。
ここでは、
送信元リージョン
+
送信量
を中心にモデル化します。
11. NAT Gatewayには2種類の基本料金がある
NAT Gatewayを使用すると、
データ転送コスト
とは別にNAT Gateway自体の料金があります。
基本構造は、
NAT Gateway-hour
+
データ処理 per GB
です。
さらに通信内容によって、
標準AWSデータ転送料金
も加わります。
したがって、
NAT Gateway コスト
=
データ処理だけ
でも、
NAT Gateway コスト
=
時間料金だけ
でもありません。
12. NAT Gateway データ処理は通信先を問わない
NAT Gatewayのデータ処理料金は、
NAT Gatewayを
何GB通過したか
を基準にします。
例えば、
AWS
→ インターネット
だけではなく、NAT Gatewayを経由して、
AWSサービス
へ通信する場合でも、通過したデータにはデータ処理料金が発生します。
重要なのは、
送信先
ではなく、
NAT Gatewayを通過したデータ量
です。
13. リクエストと対応の両方向を数える
例えば、
リクエスト
2 GB
対応
18 GB
がNAT Gatewayを通過したとします。
NAT Gatewayが処理するデータ量は、
2 GB
+
18 GB
=
20 GB
として考えます。
一方、インターネットエグレスでは、
AWS
→ インターネット
の送信方向が対象になります。
つまり、
NAT データ処理 量
と、
インターネットエグレス 量
は同じとは限りません。
14. Zonal NAT Gatewayでは配置AZも経路に入る
Zonal NAT Gatewayは、
1 アベイラビリティーゾーン
に属します。
例えば、
AZ-A
EC2
↓
AZ-B
NAT Gateway
↓
インターネット
という経路では、
EC2
↔
NAT Gateway
の通信がAZ境界を越えます。
そのため、
NAT Gateway データ処理
に加えて、
Inter-AZ データ転送
が料金要素になる可能性があります。
さらにインターネットへ送信するなら、
インターネットエグレス
も別の料金要素です。
つまり同じ通信で、
Inter-AZ
+
NAT 処理
+
インターネットエグレス
が重なる可能性があります。
15. Regional NAT Gatewayの時間料金はAZ単位で見る
現在は、
Regional NAT Gateway
も利用できます。
Regional NAT Gatewayは、ワークロードの存在するアベイラビリティーゾーンへ自動的に展開できます。
料金構造では、
NAT Gateway-hour
を、
Regional NAT Gateway全体で
常に1時間分
と考えません。
Regional NAT Gatewayでは、
構成されているAZ
×
NAT Gateway-hour
として時間料金を考えます。
例えば3 AZへ展開されているなら、
3 NAT Gateway-hours / hour
として考えます。
さらに、
データ処理 per GB
も別に存在します。
16. データ転送とデータ処理は別料金
AWSネットワークでは、
データ転送
と、
データ処理
を分けることが重要です。
データ転送
代表例:
インターネットエグレス
Inter-AZ
Inter-Region
データ処理
代表例:
NAT Gateway
AWS Transit Gateway
AWS PrivateLink
など、トラフィックを処理するネットワークサービスです。
したがって、
1 GBの通信
があったとき、
1 GB × 1料金
とは限りません。
同じ1 GBが、
ネットワーク境界
と、
処理サービス
の両方で計測されることがあります。
17. 1 GBが複数回「課金対象」になる理由
例えば、
EC2
↓
NAT Gateway
↓
インターネット
では、
1 GB
の通信データそのものがコピーされて何倍にもなったわけではありません。
しかし料金上は、
NAT Gatewayで
1 GB処理した
+
インターネットへ
1 GB送信した
という別々の課金イベントになります。
さらにAZ境界を越えれば、
Inter-AZ
も追加される可能性があります。
つまり、
物理 データ量
と、
課金対象 計測量
を分けます。
18. トラフィック パターンは「月間GB」だけではない
データ転送コストを計算するとき、
月10 TB
だけでは情報不足です。
少なくとも、
方向
送信元
送信先
AZ
リージョン
リクエストサイズ
対応 サイズ
頻度
経路
を確認します。
例えば、
100万リクエスト
リクエスト
5 KB
対応
500 KB
なら、通信回数は同じでも、
対応 量
が総データ量の大部分を占めます。
19. 応答量が多い ワークロードではエグレスが大きくなりやすい
ウェブサイトやAPIでは、
クライアント リクエスト
より、
サーバー 対応
が大きい場合があります。
例えば、
リクエスト
10 KB
対応
1 MB
なら、インターネットエグレスを大きく左右するのは主に、
対応
です。
したがって、
リクエスト数
だけからデータ転送コストを推定してはいけません。
リクエスト数
×
平均リクエストサイズ
+
対応 回数
×
平均対応 サイズ
まで考えます。
20. 双方向トラフィックでは方向ごとに分ける
例えば、
アップロード
1 TB
ダウンロード
8 TB
のサービスがあるとします。
合計トラフィックは、
9 TB
です。
しかし、
インターネット イングレス
1 TB
インターネットエグレス
8 TB
として分離します。
インターネットエグレス コストの基準になるのは、
8 TB
側です。
一方、途中のGatewayがすべての通信を処理している場合、
データ処理
9 TB
として考える場合があります。
このように、
方向
によって各料金項目へ入るデータ量が変わります。
21. コストモデルはホップごとに作る
複雑な通信では、
開始
↓
ホップ1
↓
ホップ2
↓
送信先
へ分解すると整理できます。
例えば、
| ホップ | 確認するもの |
|---|---|
| EC2 → Gateway | AZ境界、処理 |
| Gateway → AWSサービス | リージョン、サービス料金 |
| Gateway → インターネット | 処理、インターネットエグレス |
| リージョン A → リージョン B | Inter-Region |
各ホップについて、
量
×
適用単価
を計算します。
さらにGatewayなどに、
時間単位 料金
があれば別に加えます。
22. 月間コストを式にする
データ転送関連コストは概念的に、
データ転送コスト
=
Σ
(
各境界を越えるデータ量
×
その転送料金
)
さらに、
データ処理 コスト
=
Σ
(
各処理サービスを通過するデータ量
×
処理単価
)
固定料金がある場合は、
+
時間単位 / 固定 コスト
です。
つまり全体では、
ネットワークコスト
=
データ転送
+
データ処理
+
固定ネットワークサービスコスト
として考えます。
23. 同じトラフィックでも経路でコスト構造が変わる
例えば、
100 GB
という同じデータ量でも、
パターンA
同一AZ
↓
同一リージョン サービス
パターンB
別AZ
↓
同一リージョン サービス
パターンC
NAT Gateway
↓
インターネット
パターンD
別リージョン
では、課金される項目が異なります。
したがって、
月間 GB
だけでは比較できません。
24. サービス固有の例外を確認する
AWS データ転送には一般原則がありますが、
すべてのAWSサービス
が完全に同じ料金モデルではありません。
例えば、
同一リージョンで無料となる通信
独自のデータ処理料金を持つサービス
独自のデータ転送 料金を持つサービス
があります。
そのため最終的な料金見積りでは、
一般的なデータ転送分類
↓
実際に利用するAWSサービス
↓
サービス料金
の順で確認します。
25. 「パブリックIPを使った = インターネットエグレス」ではない
料金判断では、
IP アドレス タイプ
だけを見てはいけません。
重要なのは、
最終的な送信元 / 送信先
+
AWSが料金上どのトラフィックとして扱うか
です。
例えばAWS内の同一リージョン サービスへアクセスする通信が、
パブリック エンドポイント
を使用していても、必ず、
インターネットエグレス
として課金されるとは限りません。
料金は、
実際のAWSサービス
+
リージョン
+
トラフィック 経路
で判断します。
26. 代表的なアンチパターン
| アンチパターン | 問題 |
|---|---|
| AWS内通信ならすべて無料と考える | Inter-AZ / Inter-Regionを見落とす |
| 同一リージョンならすべて無料と考える | Inter-AZを見落とす |
| NAT Gateway料金を時間単位だけで計算する | データ処理を見落とす |
| NAT データ処理だけ計算する | 標準 データ転送を見落とす |
| インターネットの送受信量をまとめてエグレスにする | イングレスとエグレスを混同 |
| NAT Gatewayでは送信量だけを処理量とする | 対応など戻り通信を見落とす |
| 100 GB無料枠をサービスやリージョンごとに適用する | 無料枠を過大評価 |
| 1 GB通信なら最大1回だけ課金されると考える | 複数の課金レイヤーを見落とす |
| リクエスト数だけで見積もる | リクエスト / 対応 サイズを無視 |
| サービス名だけで料金を決める | 実際のトラフィック 経路を無視 |
27. SAP-C02での判断フロー
通信元はどこか
↓
AWS / インターネット
リージョン
AZ
↓
通信先はどこか
↓
インターネット
同一AZ
別AZ
別リージョン
AWSサービス
↓
方向を分ける
↓
In
Out
↓
トラフィック量を計算
↓
リクエスト
対応
頻度
↓
どの境界を越える?
↓
インターネット
Inter-AZ
Inter-Region
↓
途中に処理サービスはある?
↓
NAT Gateway
Transit Gateway
PrivateLinkなど
↓
各ホップの
データ転送 料金を計算
↓
各サービスの
データ処理 料金を計算
↓
時間単位 / 固定 料金を加える
↓
無料枠
料金階層
サービス固有ルールを適用
↓
ネットワークコスト
まとめ
データ転送コストは、
GB
×
1つの料金
ではありません。
最初に、
送信元
経路
送信先
を確認します。
次に、
インターネットエグレス
Inter-AZ
Inter-Region
のどの境界を越えているかを確認します。
さらに、
NAT Gateway
Transit Gateway
PrivateLink
などを通る場合は、
データ処理
を別に考えます。
NAT Gatewayでは、
時間単位 コスト
+
データ処理
+
必要なデータ転送
を分けます。
トラフィック パターンでは、
方向
リクエストサイズ
対応 サイズ
頻度
を確認します。
最終的に、
ネットワークコスト
=
データ転送
+
データ処理
+
固定 コスト
として各ホップを合算します。
重要なのは、
どのサービスを使っているか
だけではなく、
データが
どこから
どこへ
どの経路で
何GB流れているか
です。
主要AWS公式資料
- AWS Certified Solutions Architect - Professional SAP-C02 Exam Guide — Task 2.6
- AWS Global Network FAQs — Data transfer charges
- Amazon EC2 Pricing — Data Transfer
- Amazon VPC Pricing — NAT Gateway
- Amazon VPC User Guide — Pricing for NAT gateways
- Amazon VPC User Guide — Regional NAT gateways
- AWS Data Exports — Understanding data transfer charges
- AWS Well-Architected Framework — Cost Optimization Pillar