EC2 は結局なにに課金しているのか
- 時間課金される
- GB課金される
- 個数課金されない
ひとことで言うと
時間と、出ていったバイト。API を呼ぶのは無料。
なぜそうなるのか
EC2 は3つのうち2つのメーターしか持っていない。そして混乱の原因は、持っていない側のメーターにある。
EC2 の API には回数課金がない。RunInstances も DescribeInstances も、コントロールプレーンの API は何回叩いても1円も増えない。つまり「EC2 に何かをさせた回数」は請求書に一切現れない。
現れるのは、インスタンスが存在していた時間と、外に出ていったバイトだけだ。
この2本目のメーターが方向で非対称なのには、商売以前に物理的な理由がある。トランジットやピアリングの回線は全二重で、課金は「混んでいる方向」に対して行われる (慣行としては in と out の大きい方の95パーセンタイル)。クラウドは圧倒的に egress 過多で、届くリクエストは小さく、出ていくレスポンスは大きい。だから inbound 方向は、AWS が既に買っていて使い切れていない帯域ということになる。そこを流しても限界費用はほぼゼロだから、無料にできる。商売の動機はその上に乗っている。入れるのがタダなら移行の障壁が消え、入ったデータは何年も storage と compute の売上を生む。
クライアント, EC2 インスタンス のやりとり。1ステップずつ:
- クライアント から EC2 インスタンス: GET /video.mp4。課金されない。
- EC2 インスタンス から クライアント: 200 OK。本文 1GB。GBメーターで課金、1 GB × $0.09。 (応答)
で、いくらなの
素のインスタンス1台でも請求は複数行に割れる。しかもインスタンス本体はそのうち1行でしかない。
- インスタンス時間: 秒単位、最低60秒。ただしこれは Amazon Linux / Windows / RHEL / Ubuntu / Ubuntu Pro の話で、SUSE など他の OS は端数を1時間に切り上げて課金される。粒度は選んだ AMI で変わる。
- EBS: プロビジョンした GB-month。ボリュームタイプによっては IOPS とスループットも別建て。使った量ではなく確保した量で課金される。
- パブリック IPv4: 2024年2月1日から $0.005 / IP / 時。アタッチしているかどうかに関係なく課金される。請求上は
PublicIPv4:InUseAddressとPublicIPv4:IdleAddress。 - データ転送 OUT: 全 AWS サービス合算で月100GB まで無料。それ以降はインターネット向け第1階層でおよそ $0.09/GB。
つまりインスタンスから月 1TB 配信すると、転送だけで約 $83 (1024GB から無料枠 100GB を引いた 924GB × $0.09)。これがインスタンス代とは別に乗る。転送がコンピュートを追い越すことは普通に起きる。
例外と罠
NAT Gateway を通すと、同じ 1GB が2回課金される。 NAT 経由で外に出すと、NAT の時間課金、NAT の処理 GB 課金 (多くのリージョンで約 $0.045/GB)、そして通常のデータ転送 OUT の3つが乗る。AWS 自身の VPC 料金ページが、この転送部分を「the standard EC2 Data Transfer charge」だと明記している。同じ 1GB が、別々のサービスに別々の名前で2回出てくるということだ。
EC2, NAT Gateway, インターネット を通る経路。1ホップずつ:
- EC2 (private subnet)
- NAT Gateway (時間 + 処理GB) は存在している間ずっと時間メーターで課金される。
- インターネット (宛先)
- EC2 から NAT Gateway: NAT の処理。GBメーターで課金、約 $0.045/GB。
- NAT Gateway から インターネット: データ転送 OUT。GBメーターで課金、$0.09/GB。
AZ 跨ぎは往復で課金される。 同一リージョン内で AZ を跨ぐ転送には <Region>-DataTransfer-Regional-Bytes という usage type が付き、AWS の課金ドキュメントは inbound 側と outbound 側の両方に課金されると明記している。1回の転送に対して line item が 2本立つということ。マルチ AZ 構成は可用性を買っているわけで、これはその月額だ。
「停止」は「削除」ではない。 インスタンスを停止すればインスタンスのメーターは止まる。残された EBS ボリュームは、プロビジョンしたサイズのまま自分のメーターを回し続ける。止まらない。
出典
- aws.amazon.com/ec2/pricing/on-demand/
- aws.amazon.com/ebs/pricing/
- aws.amazon.com/vpc/pricing/
- docs.aws.amazon.com/AWSEC2/latest/UserGuide/instance-purchasing-options.html
- docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html
- docs.aws.amazon.com/ebs/latest/userguide/ebs-billing-usage-reports.html
- docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-pricing.html
- docs.aws.amazon.com/cur/latest/userguide/cur-data-transfers-charges.html
- aws.amazon.com/blogs/aws/new-aws-public-ipv4-address-charge-public-ip-insights/
- repost.aws/knowledge-center/vpc-identify-public-ipv4-charges