「外」はどこから外なのか
- 時間課金されない
- GB課金される
- 個数課金されない
ひとことで言うと
転送課金はインターネットの話じゃない。どのリングを越えたかの話だ。
なぜそうなるのか
ほとんどの人は境界を1枚だと思っている。AWS の中か、インターネットか。想定外の請求が生まれるのはこのモデルのせいで、実際にはリングは4枚あり、そのうち3枚は越えると金が出る。
リングは入れ子になっていて、それぞれが外向きにだけ関所になっている。内向きに落ちてくる分 — 届くリクエストや、外側のリングから返ってくるレスポンス — はそれ単体では課金されない。
設計で狙う価値があるのは一番内側のリングだ。同一 AZ 内でプライベート IP 経由なら無料。1枚外に出た瞬間に 1GB あたり1セント、しかも往復で発生する。おしゃべりなマルチ AZ のサービスメッシュが、気づくと請求書の1行になっているのはこれが理由。
で、いくらなの
上の図でリージョン間を「変動」と書いたのは手抜きではない。リージョン間転送に単一のレートは存在しない。AWS は送信元と宛先のペアごとに値付けしているので、正しい答えは「自分の2つのリージョンを引く」しかない。
そもそもレート表より usage type のほうが実用的だ。Cost Explorer で実際に検索できるのはこっちだから。
<Region>-DataTransfer-Out-Bytes— インターネットへ出ていく分。USE2-DataTransfer-Out-Bytesならオハイオからインターネット。リージョン接頭辞がない usage type は us-east-1 を指す。<Region>-DataTransfer-Regional-Bytes— 同一リージョン内の AZ 跨ぎ。1回の転送につき2本立つと思っておく。
インターネットから入ってくる分の usage type は存在しない。課金されないので、数える必要がないからだ。
例外と罠
「VPC から出てないから大丈夫」は通用しない。 AZ の境界は VPC の内側にある。us-east-1a のプライベートサブネットが us-east-1b のプライベートサブネットと喋った時点で関所を1枚越えている。パブリック IP も Internet Gateway も一切通っていなくても、だ。
途中の装置は、距離とは別に金を取る。 転送課金が「距離代」なら、NAT Gateway・Transit Gateway・インターフェースエンドポイント・ロードバランサはそれぞれ「関所代」を GB 単位で上乗せしてくる。しかもこっちは方向を問わない。インターネットからの inbound は無料でも、NAT Gateway を通る inbound は無料ではない。
無料枠が最初の症状を隠す。 インターネット向け転送の月100GB無料は、全 AWS サービス・全リージョンを合算した枠だ。小さいワークロードなら転送課金を一度も見ずに済むくらい太い。だからこそ初めて超えた月に、請求書が「何か壊れた」ように見える。