AWS 刚开始用的时候,账单其实很简单。
3 }7 e/ N! J9 o
g9 z7 P" r8 w) L技术注册账号、绑张卡,EC2、RDS 开起来,每个月 AWS 自动扣款。$ b! I6 K8 E2 @+ v1 D
5 ]; T' W4 `! r& F一个月几百美元的时候,基本没人会专门管这件事。
3 \! k; b8 y' s
5 L5 \ M/ q) _5 s$ j但项目做久以后,AWS 月消费慢慢从:& y# ?. b Q0 H. V. u. c
5 S0 J4 p4 T/ `8 G; P
几百美元
$ ^) c" ]9 K- ~/ [3 w几千美元
! y1 X: }& q/ O$ V到上万美元, _& F' X& ^7 C% \2 h# [9 i
* E8 c9 a/ K: ^# |2 |( M7 k; m
这时候经常会出现一个挺有意思的问题:+ G- b3 ^' ^8 y8 N
6 l; F( i) A; r: g- _6 M2 ]$ u
**AWS 账单到底应该技术负责,还是财务负责?**
6 j" ?3 K: C$ |* a- S5 Z" K3 [' ?/ G* g
我觉得答案其实是两边都得管。$ y4 O' G: d: v$ {
# ]# m- L3 R9 ^, u9 h
只是看的东西完全不一样。9 u3 D# }7 O4 k
0 l+ K$ B) C! i: K
---5 T8 d) v. V2 A4 E, u. W- R
; m, @* C* C7 q E8 H3 ~( b技术最清楚“为什么花这些钱”。
' p3 E+ J7 i0 S! S, b2 m" I1 u0 U
比如这个月 AWS 从 8000 美元涨到了 11000 美元。, i" f; J6 {( I8 K
8 c' H O5 C/ r# C" V) n
财务看到的是:
$ G/ S5 A; U* U+ L a* C" y7 d+ j5 w- H
> 多了 3000 美元。
" T4 y& Z8 G& J& ^% {! t3 V
+ C8 r3 i0 A8 v3 K6 D6 k# U" b但技术看到的可能是:$ X7 d9 @( Y8 Y
# l/ q0 j% K, F) z```text
* e& ]0 {. v. m2 ?0 T3 B0 h新上线了一组 RDS$ ]* v0 h; u6 t$ ], m F7 b( u& p
EC2 扩了 6 台4 K! e! r" r" g- l6 L
CloudFront 用量增加1 S: \( b$ w2 p' x7 ?
测试环境忘了缩容7 l9 F1 D2 |2 v Q
快照又多留了一个月
i- Y- M% K# ^ j9 Y8 ?```
' p+ {1 Y' S7 L# i% |: y& Q2 u+ H- O4 M; Z* [/ L
所以资源有没有浪费、规格合不合理、哪些费用是业务增长造成的,这些事情基本还是技术团队最清楚。
0 ~/ Z" S& @3 b6 N2 b7 B- N! w% n& U& n/ v5 ^! T- B
单纯让财务去看 Cost Explorer,很多时候也只能看到:
, O- A+ F, F% J, b" e
/ c: V0 i/ l' \$ m: G& i- e> EC2 贵了
/ s" `' \& X+ L( }( Z> RDS 贵了 6 w# \; L+ {2 D* P% t3 e* l
> Data Transfer 贵了% ^6 F9 J7 c/ @& v5 }" `* X. i
. x9 X$ p1 I6 V. y0 u5 K但为什么贵,很难判断。, c8 _8 z3 \! K# K1 c4 I) B% t
1 C: B8 V0 z0 M- H---6 i+ n6 `& J4 |) t% q' D; m) K
! T9 J" h x( v" C, s8 E
反过来,技术也经常只管“资源有没有问题”,不太管“钱怎么付”。
% v B$ t; q* c) l* I0 v! t' d$ C& `5 }2 b3 H# y0 K! R/ g" @+ x
例如一个项目已经稳定跑了两年:. Z! w4 Y! m+ L5 r0 f9 R
; \ I% x) `$ \3 p, D! b6 ]$ |
```text0 r6 m( P7 P* s. b. m1 `
AWS 每月消费:$15,000* z7 R+ K' }6 \9 u& O
```
7 n1 ~8 ]* y5 z$ K3 u3 N/ y) o- T' k, d2 ?; E$ c0 s
技术可能觉得:2 g9 ~2 ^ J, x( w
8 s _) j# `' N/ i8 a5 l9 h
> 系统运行正常就行。
6 u+ D7 N2 {1 y- p9 {4 p" A- H6 }, b9 V7 F# h& d" y5 W
但财务关心的会是:
6 u+ \- r5 |" H6 c7 G- L) }7 Q5 v
* U& H, N! R# S, y: ` l1 a5 ````text
?0 C6 ]. w2 _/ s7 D/ C1 q为什么还在信用卡自动扣款?& E( v' n: O# M4 n2 @8 p
不同账号为什么分别结算?
1 q( @0 V) `/ l; c5 u/ Y6 i汇率成本怎么算?
" h d; I1 p. L$ P p发票怎么处理?. B4 R' b. e; V- U9 a
有没有固定账期?) c4 `7 m, ]$ A2 v* j
有没有商务优惠?
" |9 J! V( Q+ N' ^ Q```. v+ E& z, b0 n6 e
' b7 _1 [1 C. G( s9 N+ f+ `+ ^
这些显然又不是技术团队最擅长的事情。
( N9 J4 Q2 S/ m7 c) M5 H) m7 X% w
9 A/ F2 v3 `. j$ W+ y, v+ S所以 AWS 用量一旦上来以后,我感觉比较健康的状态应该是:7 i8 o a6 M( { _, x; j! U
1 o) f) A% k4 X! k7 |**技术负责把资源用明白,财务负责把账结明白。**
; Y& o% B, U+ L' R2 w' }1 E T1 q2 Y
---
1 h' S, ^3 q9 a8 [: |, m3 s1 ^3 u6 y" h
### 最容易出问题的是中间没人负责6 ?$ b% s9 V# s% A
; c1 W5 h6 U. I) Y; r
例如技术认为:# x/ V: W+ @& j) ?
: K2 P3 h( P/ ?( R> AWS 账单是财务的事情。
7 y B8 _$ D8 r* G- N
+ I5 e3 K" U" |' m% s/ X/ {财务又认为:& a8 @5 ^2 b% F$ K6 q* t
& X/ c. u/ x$ t5 e- Q: x8 |" b) d> 云资源我哪里看得懂,技术说多少就是多少。! p% p9 B3 m/ m+ }
' y4 A2 \8 B: D! r4 H% J最后就会出现:+ D% Q: M9 f) v* [
! |& S' b+ q: I1 e
```text$ v; k5 D5 c) T% m, k# A- y+ O
一个闲置实例跑半年没人发现" ]% G! k# z/ [) Z
```( A& r, t2 t! C- ^
; Q+ W6 e' x- p, D( S! E/ q或者:
/ D4 R& ]/ M& s: T J5 j9 M
( A& G# S$ h1 G' Z9 q```text
% R( y* E8 @! C# m! lAWS每个月已经上万美元
! Q; \$ \8 `: S仍然沿用项目刚成立时的结算方式
. ?6 P# [ k5 a, J```" Q! c" A' {$ q0 W E7 ~7 x1 {
! ^8 K$ u) d2 m8 |! w& W0 s
这两种其实都是成本问题。! S3 Q7 K, s2 h% B, c: u
! |! |* p1 s5 @2 k/ }2 L6 i只是一个属于技术成本,一个属于商务成本。2 w8 E0 o3 t* s- Q/ G
& I& P% F: S" V3 c& y, \---/ {& t* h* V( @( \ m) @ j$ V
! X$ ]/ }2 `8 ~+ S我一般比较建议公司至少每个月把 AWS 账单拆成两层看。1 V$ V3 D& _% G% |% S
6 B% b9 W1 J1 E! J, A
第一层是技术:
% P# `# h3 s. [) D, o( R0 F# z5 ^0 |
```text. L P% Y) }: ?. g' z% L
EC2 / RDS / EBS 有没有明显异常6 F6 P k- \' l3 e% P6 p5 A
有没有闲置资源: {- n& K' V) u& V8 f; J6 O4 P+ V( P
Data Transfer 是否突然增加7 J. K' E7 B' t& m5 a
SP / RI 使用是否合理
& e* i+ U+ h( s7 J/ S! K* [* z测试资源是否需要继续保留
/ H$ ?, v, |( K2 w! p```
8 L: ^( H: a/ q, |" d0 M
* g: K! I' [5 L8 g+ A第二层是商务:
0 W$ V5 K% T7 B/ f' {0 w8 }- j# K7 J9 c1 @, o, Y" s
```text, e/ W: E: f9 u& q7 A5 l
总月度消费是多少
" ~3 V8 ` U" Z1 G$ M' o有多少 AWS Account
( l/ W* j- D, f5 g使用是否已经稳定
% {$ _# L+ ^" }& B0 a目前怎么付款! B5 u' m; [) h$ l% f: A) \; `
有没有 Credits / Marketplace
0 H- @+ g/ h9 [) K+ Z有没有更合适的账单结算方式
9 _4 d, c. u" g; T$ j```( T7 S, |1 W9 o1 X0 l/ P
$ U3 U% P' z' K- r这两张表放在一起,AWS 成本才算真正看完整了。
% J( y* F9 T N+ d, A+ O3 x& u/ y( a+ `$ N, ~+ [/ H7 j
---
: W9 [0 \9 Q7 E/ @3 C
- T) {6 E; J; l2 f" M8 B+ u8 g还有一个挺常见的误区:
9 |. y9 k2 l. t+ ?
0 K( u, i+ _5 X3 C很多人觉得只要技术已经把资源优化好了,就没有什么成本空间了。& a) f! R6 [! f6 ]0 [ g
5 I7 _+ N% p0 _其实不完全是。
+ ?! y1 I/ c" C) X. v! f- T/ q2 O2 l# ?
假设原来:( b% g! c2 \) {9 d: M ]9 u6 T4 q
1 F* j# }( c) O& E' C. a```text2 M6 E1 q b9 X- T& S; ~
AWS 月消费 $20,000
' E7 B7 f8 Q; y% J" ~( R```
8 ]. u$ g6 H' s1 W7 ]+ u
2 _3 I7 O- a: |) t2 ]技术团队把闲置资源、过配实例、无效日志这些清理完以后,变成: ^1 _! e6 l6 j# ^* M; R
' _1 H$ H3 ? D7 f```text
7 B5 p* O1 c! n. O5 R9 X0 u9 Z# \- t: WAWS 月消费 $16,000
% V- t* W+ {# ]; c9 j```
# }( s7 ]' T2 n+ F% v* W I; Y6 a9 I/ I0 q1 U. S0 h6 h0 `
剩下这 $16,000 如果都是生产环境真正需要长期使用的资源,那继续抠技术配置,空间可能已经不大了。
$ o; q3 D% I! L; o E
- K. p! H9 S' _4 v这时候问题就变成:
+ @% W: i" T- n9 V/ L7 F# t9 I! `/ T+ }1 F3 _. e. q
> 这 $16,000 是不是一定还要按照现在的方式结算?
( d/ _4 w! P2 U0 u# h: u* C2 I2 N$ W# f) A5 z3 D, i$ w
这就进入商务层面了。
0 s( Y4 l6 X* ~& s6 n3 U' t( @: C. P" D2 a
---% z$ n0 o/ M8 u/ K. y
% L) C) v. ]( z4 Z" j4 O
我们这边目前做的其实就是后面这一块。
, k3 H* N; @2 g* z# }3 Q
7 x( y7 S; h# d& F主要是 AWS 账单结算和商务支持,不参与客户自己的开发、部署和日常运维。
3 q3 e# x8 n$ e. B( B" d. H# q- s
& z2 o6 W. r+ |* z3 Z ~* W+ p/ h客户技术团队原来怎么管理 AWS,还是继续怎么管理。6 y* [1 ]% y2 Q. N
2 g7 s6 B; o* {& {4 y# S* q! {我们主要根据:2 C* h4 S) C. h) e( w' i: _
" O) z, s. v; W: U# h```text3 f( I' a) ` _, o8 O
月度实际 AWS 使用规模
6 j' r" h }" d |! N7 ~3 h账号数量
- l/ a: d `, n( Q0 Z! g2 N* c" k$ {主要 Region; a" F. r+ \' B
服务结构" \: s W X* Q s
使用稳定性
7 t- @( v" d8 x+ }) G' d( t' Z8 q```
+ N# g8 `" Z# ^3 }3 e" |9 Y
: g% |5 ]6 Q# [8 f2 N) P评估相应的结算方式和商务优惠。
" ^3 W7 O2 c) [ C8 K
$ F( [" ~% v9 y1 B% U' H: E所以有些客户过来以后,我们第一件事反而不是直接谈“能优惠多少”。- A( j: w1 ]5 e8 k- K% C
! h* P. b8 D* x
而是先确认:
) n5 e& Q# {% r* {& q, j3 ^" Q5 X8 l( C8 X& t% S; R1 T& g: {
> 你现在一个月真正稳定的 AWS 消费到底是多少?
, q! l8 M1 Q" J! ^
6 E* J% b9 ~6 a/ N8 ~ o如果一个月才几百美元,其实保持原来的方式最省事。! V& j. r( q. W" c. e$ U+ i
+ T9 P; k$ O" N$ i- v
但如果已经长期稳定到几千、几万美元,又有多个 AWS 账号,这时候把 Billing 单独拿出来重新评估一下,就比较有意义了。% Y% C* X" g6 M
- V% A+ C( k. s& y6 J
---
( J% ~% r! W4 M; \0 r5 y0 P8 @3 K
我自己的感觉是:$ W, w$ |# }) ~1 q, m' ^' H; T: y
6 }2 @! L$ j. {' N
AWS 账单做到一定规模以后,已经不是单纯的技术问题。! w' g8 u# {' @: z
7 d. k: ]- j+ q }% w& ?* b) _2 x技术团队解决的是:( \: d- h/ m/ e& E5 L& P
" m9 }& Z2 X6 X" f" d) y/ V$ Q
**钱有没有浪费。**
0 `! Z$ s+ L: D+ z0 U; F% w. g# E5 Q0 x# Z$ u9 _" g8 l5 K1 G" _" ~3 Y
财务和商务侧解决的是:
- z4 n6 q- ~$ s6 p7 c Q1 ^2 E
' Y2 E( [/ r& ]2 G& s% g% M4 i**这些确定要花的钱,怎么结算更合适。**5 b, x% L2 }' m; u) s8 d4 Z
8 c* x, G J5 O两边都做好,才是真正完整的 AWS 成本管理。" t9 b7 y7 h `3 U2 q
- l' ^( _) j; I8 Z; ]5 k标签:AWS、AWS账单、云计算、成本优化、AWS结算
4 ~$ z9 s" [1 }7 }5 U0 A/ O, `
1 f ?& ]" V/ U' _) U |