ЁЯПл The SchoolтА║ЁЯкк AWSтА║ЁЯз╛ рдзрдбрд╛ 20 тАФ Bill: рдореАрдЯрд░ рд╡рд╛рдЪрдгреЗ
ЁЯЦ╝я╕П See the drawing + lab ЁЯПа Course home ЁЯМ┐ Branch on GitHub тЬПя╕П View source
ЁЯЦ╝я╕П рдЖрдХреГрддреА рдЖрдгрд┐ labThe drawing + lab рдкреВрд░реНрдг рдкрд╛рдирд╛рд╡рд░ рдЙрдШрдбрд╛ тЖЧOpen full page тЖЧ

ЁЯз╛ рдзрдбрд╛ 20 тАФ Bill: рдореАрдЯрд░ рд╡рд╛рдЪрдгреЗ

ЁЯУН рддреБрдореНрд╣реА рдЗрдереЗ рдЖрд╣рд╛рдд: 20 рдкреИрдХреА рдзрдбрд╛ 20 тАФ рд╢реЗрд╡рдЯрдЪрд╛ рдзрдбрд╛! ЁЯОУ ┬╖ рдорд╛рдЧреАрд▓: lesson-19-lambda


ЁЯУж рдпрд╛ рдмреНрд░рдБрдЪрдордзреНрдпреЗ рдХрд╛рдп рдЖрд╣реЗ

рд╕рдЧрд│реЗ 20 рдзрдбреЗ тАФ рд╕рдВрдкреВрд░реНрдг course. рдкрджрд╡реАрдЪреЗ рдХреМрд╢рд▓реНрдп: рдЬреНрдпрд╛рд▓рд╛ cloud рдЪреЗ рдореАрдЯрд░ рд╡рд╛рдЪрддрд╛ рдпреЗрддреЗ, рддреЛ cloud рд▓рд╛ рдШрд╛рдмрд░рдд рдирд╛рд╣реА.

ЁЯзТ 5 рд╡рд░реНрд╖рд╛рдВрдЪреНрдпрд╛ рдореБрд▓рд╛рд▓рд╛ рд╕рдордЬрд╛рд╡рд▓реНрдпрд╛рд╕рд╛рд░рдЦреЗ

рд╢рд╛рд│рд╛ рдПрдХрдЪ bill рдкрд╛рдард╡рдд рдирд╛рд╣реА тАФ рддреА рдЪрд╛рд░ рдореАрдЯрд░ рд╡рд╛рдЪрддреЗ ЁЯз╛:

  1. рд╡реЗрд│ тП▒я╕П тАФ рдмрд╛рдХ second рдиреБрд╕рд╛рд░, рдХрд╛рд░реНрдпрд╛рд▓рдпреЗ рддрд╛рд╕рд╛рдиреБрд╕рд╛рд░, рдорджрддрдиреАрд╕ 100 ms рдиреБрд╕рд╛рд░. рдЪрд╛рд▓реВ = рдкреИрд╕реЗ.
  2. рдЬрд╛рдЧрд╛ ЁЯУж тАФ GB-months: рдбреНрд░реЙрд╡рд░ (EBS), lockers (S3), photocopies (snapshots). рдЕрд╕реНрддрд┐рддреНрд╡рд╛рдд рдЕрд╕рдгреЗ = рдкреИрд╕реЗ тАФ рдмрд╛рдХ рдмрдВрдж рдЕрд╕рддрд╛рдирд╛рд╣реА.
  3. рдЫреЛрдЯреА рдХрд╛рдореЗ ЁЯФБ тАФ рдкреНрд░рддреНрдпреЗрдХ request рдиреБрд╕рд╛рд░: S3 GETs, Lambda invokes, phonebook lookups. рд▓рд╣рд╛рди рдЖрдХрдбреЗ ├Ч рдкреНрд░рдЪрдВрдб рд╕рдВрдЦреНрдпрд╛.
  4. рдЧреЗрдЯ ЁЯЪк тАФ egress: campus рдордзреВрди рдмрд╛рд╣реЗрд░ рдЬрд╛рдгрд╛рд▒реНрдпрд╛ data рдЪреЗ рдкреИрд╕реЗ рд▓рд╛рдЧрддрд╛рдд; рдЖрдд рдпреЗрдгреЗ рдореЛрдлрдд. рд╕рдЧрд│реНрдпрд╛рдд рдореЛрдареА рдУрд│ рд╣реЛрдИрдкрд░реНрдпрдВрдд рдХреЛрдгрд╛рдЪреНрдпрд╛рдЪ рд▓рдХреНрд╖рд╛рдд рди рдпреЗрдгрд╛рд░реЗ рдореАрдЯрд░.

рдЖрдгрд┐ рдЪрд╛рд░ рдкрд╛рд░рдВрдкрд░рд┐рдХ рдзрдХреНрдХреЗ, рдЬреНрдпрд╛ рдХреНрд░рдорд╛рдиреЗ рд╕рдЧрд│реНрдпрд╛рдВрдирд╛ рднреЗрдЯрддрд╛рдд рддреНрдпрд╛ рдХреНрд░рдорд╛рдиреЗ:

ЁЯЧ║я╕П рдЖрдХреГрддреА

flowchart LR
    m1["тП▒я╕П time<br/>desk-seconds"]
    m2["ЁЯУж space<br/>GB-months"]
    m3["ЁЯФБ errands<br/>per-request"]
    m4["ЁЯЪк the gate<br/>egress GB"]
    bill["ЁЯз╛ the bill<br/>Cost Explorer: itemized,<br/>by service ┬╖ by tag"]
    trip["тП░ Budget alarm at $5<br/>the tripwire тАФ set it TODAY"]
    m1 --> bill
    m2 --> bill
    m3 --> bill
    m4 --> bill
    bill -->|"watches"| trip

тЭУ рдХрд╛рдп

ЁЯдФ рдХрд╛

рдЦрд░реНрдЪ рд╣реЗ architecture рдЪреЗ рдЪреМрдереЗ рдкрд░рд┐рдорд╛рдг рдЖрд╣реЗ: multi-AZ photocopying (рдзрдбрд╛ 15, 17) egress рдЖрдгрд┐ рддрд╛рд╕рд╛рдВрдЪреНрдпрд╛ рдмрджрд▓реНрдпрд╛рдд рдЯрд┐рдХрд╛рд╡ рд╡рд┐рдХрдд рдШреЗрддреЗ; S3 classes retrieval рдЪрд╛ рд╡реЗрдЧ GB-рдХрд┐рдорддреАрд╕рд╛рдареА рд╕реЛрдбрддрд╛рдд; Lambda cold starts рдЪреНрдпрд╛ рдмрджрд▓реНрдпрд╛рдд рд╢реВрдиреНрдп idle рджреЗрддреЗ. рдореАрдЯрд░ рд╡рд╛рдЪрдгрд╛рд░реЗ engineers рдЕрдзрд┐рдХ рдЪрд╛рдВрдЧрд▓реНрдпрд╛ рд╢рд╛рд│рд╛ design рдХрд░рддрд╛рдд тАФ рдЖрдгрд┐ рддреНрдпрд╛рдВрдЪреА рдЫрдВрджрд╛рдЪреА accounts рдЯрд┐рдХрд╡рддрд╛рдд.

ЁЯФз рдХрд╕реЗ

# the tripwire (do this once, today):
aws budgets create-budget --account-id $ACCT --budget \
  '{"BudgetName":"tripwire","BudgetLimit":{"Amount":"5","Unit":"USD"},"TimeUnit":"MONTHLY","BudgetType":"COST"}' \
  --notifications-with-subscribers file://notify-me.json
# the audit walk (find the four surprises in YOUR account):
aws ec2 describe-volumes --filters Name=status,Values=available   # orphan drawers
aws ec2 describe-snapshots --owner-ids self --query 'length(Snapshots)'
aws ec2 describe-nat-gateways --filter Name=state,Values=available

ЁЯзк рдХрд░реВрди рдкрд╛рд╣рд╛ (~10 рдорд┐рдирд┐рдЯреЗ, рдкреИрд╕реЗ рдЦрд░реНрдЪ рд╣реЛрдгреНрдпрд╛рдРрд╡рдЬреА рд╡рд╛рдЪрддрд╛рдд)

$5 рдЪреА budget рд╕рд╛рдкрд│рд╛-рддрд╛рд░ рд▓рд╛рд╡рд╛. рд╡рд░рдЪреА audit рдлреЗрд░реА рдЪрд╛рд▓рд╡рд╛. рдЬреЗ рд╕рд╛рдкрдбреЗрд▓ рддреЗ delete рдХрд░рд╛. рдЙрджреНрдпрд╛ Cost Explorer рдЙрдШрдбрд╛ рдЖрдгрд┐ рдпрд╛ course рдЪреА рдПрдХреВрдг рд░рдХреНрдХрдо рд╡рд╛рдЪрд╛ тАФ рддреБрдореНрд╣рд╛рд▓рд╛ рджрд┐рд╕реЗрд▓ рдХреА рд╕рдВрдкреВрд░реНрдг 20 рдзрдбреНрдпрд╛рдВрдЪрд╛ рдЦрд░реНрдЪ рдПрдХрд╛ coffee рдкреЗрдХреНрд╖рд╛ рдХрдореА рдЖрд╣реЗ. тШХ

тЬЕ рддрдкрд╛рд╕рд╛ тАФ рддреБрдореНрд╣рд╛рд▓рд╛ рдХрд╛рдп рджрд┐рд╕рд╛рдпрд▓рд╛ рд╣рд╡реЗ

AWS Budgets $5 рдЪреЗ budget рджрд╛рдЦрд╡рддреЗ; Cost Explorer (рдЙрджреНрдпрд╛) рдпрд╛ course рдЪреА рдПрдХреВрдг рд░рдХреНрдХрдо рдПрдХрд╛ coffee рдкреЗрдХреНрд╖рд╛ рдХрдореА рджрд╛рдЦрд╡рддреЛ.

ЁЯз╣ рд╕рд╛рдлрд╕рдлрд╛рдИ тАФ рдЪрд╛рд▓реВ рдареЗрд╡реВ рдирдХрд╛

audit рдлреЗрд░реА рдЪрд╛рд▓рд╡рд╛: available volumes рдирд╛рд╣реАрдд, рднрдЯрдХреЗ snapshots рдирд╛рд╣реАрдд, NAT gateways рдирд╛рд╣реАрдд, ALBs рдирд╛рд╣реАрдд, DB instances рдирд╛рд╣реАрдд

тЪая╕П рдиреЗрд╣рдореАрдЪреНрдпрд╛ рдЪреБрдХрд╛

ЁЯОУ рддреБрдореНрд╣реА рдХрд░реВрди рджрд╛рдЦрд╡рд▓реЗ

рдУрд│рдЦ, рдмрд╛рдХ, campus, lockers, reception, phonebook, рджрдкреНрддрд░ рдХрд╛рд░реНрдпрд╛рд▓рдп, рдкреНрд░рдЧрддрд┐рдкреБрд╕реНрддрдХреЗ, рдорджрддрдиреАрд╕, рдЖрдгрд┐ рдореАрдЯрд░. рдЖрддрд╛ рдПрдХ course рд╡рд░ рдЪрдврд╛: Docker рдбрдмреЗ рднрд░рддреЛ, Kubernetes рддреНрдпрд╛рдВрдирд╛ рдпрд╛рдЪ campus рдордзрд▓реНрдпрд╛ рдпрд╛рдЪ рдмрд╛рдХрд╛рдВрд╡рд░ рдЪрд╛рд▓рд╡рддреЛ, рдЖрдгрд┐ ArgoCD рддреНрдпрд╛рдВрдирд╛ git рдордзреВрди deploy рдХрд░рддреЛ. рд╡рд░рдкрд░реНрдпрдВрдд рд╢рд╛рд│рд╛рдЪ рд╢рд╛рд│рд╛. ЁЯПл

ЁЯз╛ Lesson 20 тАФ The bill: reading the meter

ЁЯУН You are here: Lesson 20 of 20 тАФ the final lesson! ЁЯОУ ┬╖ Previous: lesson-19-lambda


ЁЯУж What's in this branch

All 20 lessons тАФ the complete course. The graduation skill: nobody fears the cloud who can read its meter.

ЁЯзТ Explain like I'm 5

The school doesn't send one bill тАФ it reads four meters ЁЯз╛:

  1. Time тП▒я╕П тАФ desks by the second, offices by the hour, helpers by the 100 ms. Running = paying.
  2. Space ЁЯУж тАФ GB-months: drawers (EBS), lockers (S3), photocopies (snapshots). Existing = paying тАФ even when the desk is off.
  3. Errands ЁЯФБ тАФ per-request: S3 GETs, Lambda invokes, phonebook lookups. Tiny numbers ├Ч huge counts.
  4. The gate ЁЯЪк тАФ egress: data LEAVING the campus costs money; entering is free. The meter nobody notices until it's the biggest line.

And the four classic surprises, in the order everyone meets them:

ЁЯЧ║я╕П Diagram

flowchart LR
    m1["тП▒я╕П time<br/>desk-seconds"]
    m2["ЁЯУж space<br/>GB-months"]
    m3["ЁЯФБ errands<br/>per-request"]
    m4["ЁЯЪк the gate<br/>egress GB"]
    bill["ЁЯз╛ the bill<br/>Cost Explorer: itemized,<br/>by service ┬╖ by tag"]
    trip["тП░ Budget alarm at $5<br/>the tripwire тАФ set it TODAY"]
    m1 --> bill
    m2 --> bill
    m3 --> bill
    m4 --> bill
    bill -->|"watches"| trip

тЭУ What

ЁЯдФ Why

Cost is architecture's fourth dimension: multi-AZ photocopying (lesson 15, 17) buys survival with egress and hours; S3 classes trade retrieval speed for GB-price; Lambda trades cold starts for zero idle. Engineers who read meters design better schools тАФ and keep their hobby accounts.

ЁЯФз How

# the tripwire (do this once, today):
aws budgets create-budget --account-id $ACCT --budget \
  '{"BudgetName":"tripwire","BudgetLimit":{"Amount":"5","Unit":"USD"},"TimeUnit":"MONTHLY","BudgetType":"COST"}' \
  --notifications-with-subscribers file://notify-me.json
# the audit walk (find the four surprises in YOUR account):
aws ec2 describe-volumes --filters Name=status,Values=available   # orphan drawers
aws ec2 describe-snapshots --owner-ids self --query 'length(Snapshots)'
aws ec2 describe-nat-gateways --filter Name=state,Values=available

ЁЯзк Try it (~10 min, saves money instead of costing it)

Set the $5 budget tripwire. Run the audit walk above. Delete what it finds. Tomorrow, open Cost Explorer and read this course's total тАФ you'll find the whole 20 lessons cost less than one coffee. тШХ

тЬЕ Verify тАФ what you should see

AWS Budgets shows the $5 budget; Cost Explorer (tomorrow) lists this course's total under a coffee.

ЁЯз╣ Clean up тАФ do not leave running

run the audit walk: no available volumes, no stray snapshots, no NAT gateways, no ALBs, no DB instances

тЪая╕П Common mistakes

ЁЯОУ You made it

Identity, desks, campus, lockers, reception, phonebook, record office, report cards, helpers, and the meter. Now walk one course up: Docker packs the lunchboxes, Kubernetes runs them on THESE desks inside THIS campus, and ArgoCD deploys them from git. It's schools all the way up. ЁЯПл

тЖР PreviouslambdaNext тЖТsubnet networking

This page is the lesson's README from the lesson-20-the-bill branch, shown here so the whole School stays on one site. Code files open on GitHub at the same branch.