Modul 11 — Cloud platformy

56. Cost management a optimalizace nákladů v cloudu

Proč se cloudové účty snadno prodraží, jak náklady sledovat a jaké konkrétní techniky (right-sizing, rezervace, autoscaling) je udrží pod kontrolou.

Odhadovaná délka studia: 50 minut · Stav: nehotovo

Technologie: Cloud computing

Úvod a kontext

Cloud slibuje "plaťte jen za to, co použijete" — ve skutečnosti je to
zároveň nejčastější zdroj nepříjemných překvapení na faktuře. Na
rozdíl od fyzického datacentra, kde je nový server vidět a schvaluje ho
někdo s rozpočtem, si v cloudu může kdokoliv s dostatečnými právy za
pár kliknutí nebo jedním terraform apply spustit desítky drahých
instancí. Tato lekce shrnuje, kde náklady nejčastěji unikají a jak je
řídit.

Teorie

Kde peníze nejčastěji unikají

  • Zapomenuté běžící zdroje — testovací instance, které nikdo
    nevypnul, staré EBS disky odpojené od smazaných instancí, nevyužité
    Elastic IP adresy (za nepřipojenou veřejnou IP se v AWS platí).
  • Předdimenzování (over-provisioning) — instance typu m5.2xlarge
    tam, kde by stačil t3.medium, protože nikdo zpětně neověřil
    skutečné využití CPU/RAM.
  • Přenos dat (data transfer) — provoz mezi dostupnostními zónami
    nebo ven z cloudu (egress) bývá zpoplatněný a v součtu nezanedbatelný,
    zatímco příchozí provoz je typicky zdarma.
  • Neefektivní třída úložiště — data přístupovaná jednou za rok
    ležící v drahé STANDARD třídě S3 místo v GLACIER.

Nástroje pro přehled

Všechny hlavní cloudy nabízí nativní nástroje: AWS Cost Explorer a
Budgets (upozornění při překročení limitu), Azure Cost
Management
, GCP Billing reports. Klíčová praktika je
tagování zdrojů (např. team=platform, env=staging,
project=x) — bez tagů nejde náklady rozklíčovat podle týmu nebo
projektu, jen podle typu služby.

Techniky optimalizace

  • Right-sizing — pravidelná revize skutečného využití instancí a
    přechod na menší/levnější typ, pokud kapacita není využita.
  • Autoscaling — automatické škálování počtu instancí podle
    aktuální zátěže, takže se neplatí za kapacitu "pro jistotu" po celý
    den.
  • Rezervované a spotové kapacity — cloudy nabízí slevu (často 30 až
    70 %) výměnou za závazek na 1–3 roky (Reserved Instances/Savings
    Plans) nebo za akceptování možného přerušení běhu (Spot Instances) —
    vhodné pro dávkové zpracování nebo neproduktivní zátěže.
  • Automatické vypínání mimo pracovní dobu — vývojová a testovací
    prostředí typicky nikdo nepoužívá přes noc a o víkendech; naplánovaný
    skript je vypne a ráno zase zapne.
  • Life-cycle politiky pro úložiště — automatický přesun starých
    objektů do levnější třídy nebo jejich smazání po definované době.

Praktický příklad

Nastavení upozornění na rozpočet a life-cycle politiky pro S3 přes AWS
CLI:

# rozpočet 500 USD měsíčně s upozorněním při 80 %
aws budgets create-budget \
  --account-id 123456789012 \
  --budget file://budget.json \
  --notifications-with-subscribers file://notifikace.json
// budget.json
{
  "BudgetName": "mesicni-limit-produkce",
  "BudgetLimit": { "Amount": "500", "Unit": "USD" },
  "TimeUnit": "MONTHLY",
  "BudgetType": "COST"
}

Life-cycle politika, která po 30 dnech přesune logy do levnější třídy a
po roce je smaže:

{
  "Rules": [
    {
      "ID": "presun-a-uklid-logu",
      "Filter": { "Prefix": "logs/" },
      "Status": "Enabled",
      "Transitions": [
        { "Days": 30, "StorageClass": "STANDARD_IA" },
        { "Days": 90, "StorageClass": "GLACIER" }
      ],
      "Expiration": { "Days": 365 }
    }
  ]
}

Jednoduchý skript pro vypnutí testovacích instancí mimo pracovní dobu
(spouštěný přes cron nebo naplánovanou Lambda funkci):

#!/usr/bin/env bash
# vypni vsechny instance oznacene tagem env=staging
aws ec2 describe-instances \
  --filters "Name=tag:env,Values=staging" "Name=instance-state-name,Values=running" \
  --query "Reservations[].Instances[].InstanceId" --output text \
| xargs -r aws ec2 stop-instances --instance-ids

Shrnutí

Cloudové náklady rostou nenápadně kvůli zapomenutým zdrojům,
předdimenzování, egress provozu a nesprávné třídě úložiště. Základem
kontroly je tagování zdrojů a pravidelné sledování nástrojů jako Cost
Explorer. Konkrétní úspory přináší right-sizing, autoscaling,
rezervované nebo spotové kapacity, automatické vypínání
nevyužívaných prostředí a life-cycle politiky pro úložiště.

Kontrolní otázky

  1. Proč je tagování zdrojů předpokladem smysluplné analýzy nákladů?
  2. Jaký je rozdíl mezi Reserved Instances a Spot Instances z hlediska
    rizika a úspory?
  3. Kde v typické architektuře nejčastěji vznikají neočekávané náklady
    za přenos dat?
  4. Mini cvičení: navrhněte tři konkrétní kroky, kterými byste snížili
    měsíční účet za vývojové prostředí využívané jen v pracovní době.

Lekce na sebe nejsou zamčené — libovolnou lekci můžete otevřít i označit jako hotovou v jakémkoliv pořadí.