AWS の請求書の成り立ち
回っているメーターは
3つだけ
AWS の料金はサービスごとに書かれている。だから新しいサービスを触るたびに、まっさらな課金モデルを覚え直すように見える。実際は違う。メーターは Time・GB・個数 の3種類しかなくて、サービスごとに違うのは「そのうちどれが付いているか」だけだ。どれが回るか言えるようになれば、料金ページは勉強ではなく参照になる。
このページを開いてから今この瞬間まで、誰かが消し忘れた t3.micro が 1 台、メーターを回し続けている。
経過
経過
発生額 (USD)
発生額 (USD)
リクエストは送っていない。データも動かしていない。それでもメーターは回った。これが Time メーターの全部で、たいていの請求書を静かに支配しているのもこれだ。t3.micro オンデマンド $0.0104/時 (us-east-1) 換算。EBS と パブリック IPv4 はそれぞれ別に計上される。
3つのメーター
01
時間
それは「存在している」か?
- 数えているもの
- 何かが存在している × その長さ。インスタンスは秒単位、ストレージは GB-month、席は月単位。
- 見落とすところ
- 使っていなくても回る。止め忘れより「消し忘れ」のほうが高くつく。
- 請求書での名前
BoxUsage, Hours, GB-Mo
02
GB
バイトが境界を越えたか、途中の何かを通ったか、その場で読まれたか?
- 数えているもの
- GB で数えられるもの全部。境界を出ていく分、経路の途中に挟まるサービスが処理した分、そして動かないまま読まれた分。
- 見落とすところ
- 「入るのは無料」は転送のルールで、このメーターの性質ではない。NAT Gateway やエンドポイントは往復とも取るし、Athena は一歩も動いていないバイトに課金する。
- 請求書での名前
DataTransfer-Out-Bytes, NatGateway-Bytes
03
個数
個別のものを何個頼んだか?
- 数えているもの
- 数えられる仕事の単位。リクエストが一番多いだけで、トークンも、ページも、文字も、宛先も、payload を 64KB で切った1片も同じ。
- 見落とすところ
- 1回の呼び出しが1個とは限らない。1MiB のキューメッセージは16個、200KB のイベントは4個。そしてこのメーターを持たないサービスが約半分ある。EC2・IAM・STS は呼び放題で無料。
- 請求書での名前
Requests
図の読み方
このサイトの図は全部ひとつのルールで描いてある。色が付いていれば課金、グレーなら無料。文章を読む前に、どこで金が出ているか分かる。まずは一番単純な形。リクエストが来て、レスポンスが出ていく。
クライアント, API Gateway, EC2 を通る経路。1ホップずつ:
- クライアント (internet)
- API Gateway (リクエスト単位) は存在している間ずっと個数メーターで課金される。
- EC2 (t3.micro) は存在している間ずっと時間メーターで課金される。
- クライアント から API Gateway: リクエスト (inbound)。個数メーターで課金、1 unit。
- EC2 から クライアント: レスポンス 1GB (outbound)。GBメーターで課金、$0.09/GB。
ここに3本とも出ている。EC2 の箱のランプが Time で、リクエストが来る前から回っていて、返した後も回り続ける。行きのリクエストは GB としては無料だが、API では1個として数えられる。GB メーターが回るのは帰りだけ。
トピック
各ページはまず結論のモデルを渡してから、その根拠に降りていく。
- 請求書1行は usage type と operation と charge type でできている。文法を知れば読める。
- 無料枠無料とは、回ったメーターに後から当てた値引きのこと。メーターは止まっていない。
- 無料サービスメーターを1つも回さないサービスは答えの終点じゃない。それが作ったものが3つ回す。
- EC2時間と、出ていったバイト。API を呼ぶのは無料。
- 遊休時間メーターが測るのは活動ではなく存在。止める手段は削除だけで、「停止」はたいてい削除ではない。
- ストレージクラスストレージクラスは5つの値段を同時に決める。GB 単価は、冷たくすれば必ず下がる唯一の値段だ。
- 境界転送課金はインターネットの話じゃない。どのリングを越えたかの話だ。
- 切り上げどのメーターも最低単位を持ち、必ず切り上げる。請求されるのは使った量ではなく、その量が入った箱のほうだ。
- 個数1回の呼び出しが1個とは限らない。個数を決めるのはペイロードのサイズだ。
- 階段料金料金ページの単価は限界単価だ。境界をまたいだ瞬間、その数字は誰の実効単価でもなくなる。
- リージョン「AWS の価格」は存在しない。あるのはリージョンごとの価格で、請求書の usage type がどれかを名指ししている。
- コミット買っているのは容量ではなく単価。メーターは同じように回り、動くのは値段だけだ。
- アカウント課金リソースにぶら下がらない課金がある。タグも付かず、インフラを消しても直接は減らない。
- 見積もり見積もりとは「どのメーターが何回回るか」のモデルだ。外すのはレートではなく、メーターの存在ごと。
- 按分請求書は「何を計測したか」で並んでいる。「誰のせいか」に変換する仕組みは、先に自分で作るしかない。
- Marketplace請求書の一部は他社のソフトで、AWS は決済経路にすぎない。メーターを決めたのは売り手で、いつものレバーは届かない。