Zarządzanie kosztami chmury i FinOps
Zarządzanie kosztami w chmurze z AI łączy Cursor, Claude Code i Codex z serwerami MCP do billingu — AWS Labs Billing and Cost Management oraz Vantage — dzięki czemu agent czyta wydatki na żywo, szereguje usługi napędzające wzrost, proponuje fazowy right-sizing oznaczony poziomem ryzyka i szkicuje alokację kosztów oraz prognozy. Agent generuje komendy; człowiek decyduje, czy je uruchomić.
Twój rachunek za chmurę skoczył w tym miesiącu o 40%. Dział finansowy chce wyjaśnienia do piątku, inżynieria przysięga, że nic się nie zmieniło, a nowy klaster staging, którego nikt nie otagował, jest zagrzebany gdzieś w EC2-Other. Konsola Cost Explorer wymaga dwudziestu kliknięć, żeby odpowiedzieć na pytanie, na które i tak odpowiesz ponownie za tydzień, a dashboard pokazuje 200 pozycji bez żadnej historii.
Nie potrzebujesz do tego platformy FinOps. Potrzebujesz, żeby twój agent kodujący odczytał dane rozliczeniowe, uszeregował marnotrawstwo i podał ci dokładne komendy do naprawy — które pięć usług się ruszyło, o ile i dlaczego.
Co wyniesiesz z zarządzania kosztami w chmurze
Dział zatytułowany „Co wyniesiesz z zarządzania kosztami w chmurze”- Działającą konfigurację MCP dla serwera AWS Labs Billing and Cost Management i Vantage (wielochmurowość), skonfigurowaną identycznie w Cursor, Claude Code i Codex
- Gotowy do wklejenia prompt, który zwraca najważniejsze generatory kosztów pogrupowane po usługach, uszeregowane działania right-sizingowe i notatkę o ryzyku dla każdego z nich
- Prompt do polowania na nieotagowane wydatki — najczęstszy pojedynczy powód, dla którego rachunek jest „niewyjaśniony”
- Fazowy plan right-sizingu oznaczony poziomami ryzyka, a nie płaską listę instancji, plus mechanikę trzech narzędzi do zamiany jednej rekomendacji w zrecenzowany diff Terraform
- Prompt do wykrywania anomalii, który odróżnia spodziewany wzrost od prawdziwego szoku rachunkowego
- Dwudziestolinijkowy skrypt, który przepuszcza JSON z Cost Explorera przez Claude Opus 5 po uszeregowane rekomendacje, gdy wolisz skrypt od rozmowy
- Jasne wyczucie tego, kiedy ten przepływ pracy się psuje — opłaty API, limity zapytań, nieaktualne tagi, 48-godzinne opóźnienie danych — i jak się z tego pozbierać
Podłącz serwery MCP do kosztów
Dział zatytułowany „Podłącz serwery MCP do kosztów”Te serwery udostępniają API billingu i użycia jako narzędzia, które asystent może wywoływać bezpośrednio. Definicja serwera — command, args, env — jest identyczna w Cursor, Claude Code i Codex; różni się tylko plik, który czyta każde narzędzie (.cursor/mcp.json lub Ustawienia Cursora, .mcp.json dla Claude Code, ~/.codex/config.toml dla Codex).
AWS: Billing and Cost Management
Dział zatytułowany „AWS: Billing and Cost Management”AWS Labs publikuje oficjalny serwer MCP Billing and Cost Management, następcę starszego serwera cost-analysis. Udostępnia Cost Explorer, budżety, right-sizing z Compute Optimizera, Cost Optimization Hub, rekomendacje Savings Plans i porównania miesiąc do miesiąca — wszystko przez twoje istniejące poświadczenia AWS. To dlatego jest serwerem, od którego warto zacząć: węższy awslabs.cost-explorer-mcp-server odpowiada na pytania o wydatki, ale nie niesie żadnej z rekomendacji optymalizatora, na których opierają się poniższe prompty do right-sizingu.
Działa przez uvx, więc najpierw zainstaluj uv i upewnij się, że aws configure (lub AWS_PROFILE) wskazuje na rolę z uprawnieniami do odczytu ce:Get*, compute-optimizer:Get* i cost-optimization-hub:*.
Dodaj serwer do .cursor/mcp.json (projekt) lub globalnych ustawień MCP Cursora, a następnie włącz go w Settings → MCP. Cursor sam udostępnia narzędzia trybowi agenta:
{ "mcpServers": { "awslabs.billing-cost-management-mcp-server": { "command": "uvx", "args": ["awslabs.billing-cost-management-mcp-server@latest"], "env": { "FASTMCP_LOG_LEVEL": "ERROR", "AWS_PROFILE": "your-aws-profile", "AWS_REGION": "us-east-1" } } }}Otwórz panel agenta (Cmd/Ctrl+I), przełącz na tryb Agent i potwierdź, że narzędzia billingowe pojawiły się na liście narzędzi MCP, zanim zaczniesz promptować.
Zarejestruj serwer stdio jedną komendą. Opcje idą przed nazwą; -- oddziela nazwę od komendy:
claude mcp add --transport stdio \ --env FASTMCP_LOG_LEVEL=ERROR \ --env AWS_PROFILE=your-aws-profile \ --env AWS_REGION=us-east-1 \ aws-cost \ -- uvx awslabs.billing-cost-management-mcp-server@latestUżyj --scope project, aby współdzielić go z repozytorium przez .mcp.json, albo zostaw domyślny zakres lokalny dla osobistej konfiguracji z poświadczeniami. Zweryfikuj przez claude mcp list.
Dodaj serwer do ~/.codex/config.toml w tabeli [mcp_servers.<id>]:
[mcp_servers.aws-cost]command = "uvx"args = ["awslabs.billing-cost-management-mcp-server@latest"]
[mcp_servers.aws-cost.env]FASTMCP_LOG_LEVEL = "ERROR"AWS_PROFILE = "your-aws-profile"AWS_REGION = "us-east-1"Codex czyta config.toml przy starcie w App, CLI i IDE. Potwierdź załadowanie narzędzi, wpisując / w TUI i sprawdzając listę narzędzi MCP.
Vantage, dla wielu chmur
Dział zatytułowany „Vantage, dla wielu chmur”Vantage agreguje wydatki AWS, Azure, GCP, Kubernetes i SaaS za jednym API. Oficjalny serwer MCP działa przez npx i uwierzytelnia się tokenem bearer tylko do odczytu, wygenerowanym na koncie Vantage w sekcji dostępu API — asystent nigdy nie potrzebuje prawa zapisu, żeby analizować wydatki.
{ "mcpServers": { "vantage": { "command": "npx", "args": ["-y", "vantage-mcp-server"], "env": { "VANTAGE_TOKEN": "your-read-only-vantage-token" } } }}W TOML-u Codeksa ten sam serwer wygląda tak:
[mcp_servers.vantage]command = "npx"args = ["-y", "vantage-mcp-server"]env = { VANTAGE_TOKEN = "your-read-only-vantage-token" }Dla Azure i GCP odpowiednikami są @azure/mcp (npx -y @azure/mcp@latest server start) i @google-cloud/gcloud-mcp (npx -y @google-cloud/gcloud-mcp), każdy czytający swój natywny łańcuch poświadczeń. Dodawaj je tylko wtedy, gdy faktycznie działasz w tych chmurach.
Od szoku rachunkowego do planu, którego da się bronić
Dział zatytułowany „Od szoku rachunkowego do planu, którego da się bronić”Wzorzec jest ten sam niezależnie od narzędzia: podłącz serwer MCP do kosztów, zadaj skupione pytanie, a potem zweryfikuj rekomendację na faktycznym zasobie, zanim cokolwiek zrobisz. AI szybko znajduje kandydatów; decyzja o zmianie produkcji należy do ciebie.
Nieprecyzyjny prompt („przeanalizuj moje koszty”) marnuje turę. Poniższy jest celowo opiniotwórczy — nazywa grupowanie, metrykę, okno i kształt wyniku.
Linijka do not run any modifications ma znaczenie. Bez niej agent w trybie automatycznego zatwierdzania może spróbować zastosować right-sizing przez narzędzie zapisu. Chcesz analizy i komend — decyzja o zastosowaniu zostaje po stronie człowieka.
Gdy masz już uszeregowaną listę, działaniem następczym, które się opłaca, jest polowanie na nieotagowane wydatki, najczęstszy pojedynczy powód, dla którego rachunek jest „niewyjaśniony”:
Jeśli twoje wydatki wykraczają poza AWS, zadaj to samo pytanie w poprzek dostawców, dorzucając Vantage. Mechanika różni się nieco w zależności od narzędzia:
Otwórz panel agenta i odwołaj się do serwerów po nazwie. Cursor trzyma analizę w edytorze, więc możesz przenieść ustalenia prosto do runbooka albo zmiany w Terraformie.
@vantage @aws-cost Pull last month's spend grouped by service and linkedaccount. For the five services that grew the most versus the prior month, tellme the dollar delta, the likely driver (usage vs. price vs. new resources), andwhether the growth looks expected for a product scaling its user base. Output atable, then a short prioritized list of what to investigate first.Cursor zwraca tabelę, nad którą możesz iterować w miejscu — dopytuj „wejdź głębiej w RDS” bez powtarzania kontekstu.
Uruchom to z terminala, żeby analiza mieszkała obok repozytorium infrastruktury i mogła zasilić skrypt albo PR.
claude "Using the vantage and aws-cost MCP servers, find my top 5 cost-growthdrivers for last month vs. the prior month. For each, give the dollar delta, thelikely cause, and an expected-vs-anomalous verdict. End with a prioritizedinvestigation list."Claude Code koordynuje oba serwery, agreguje dane i pisze podsumowanie w Markdownie, które możesz zacommitować do dokumentacji operacyjnej.
Codex czyta te same serwery z ~/.codex/config.toml i działa w CLI, IDE i Cloud.
codex "Analyze our multi-cloud spend via the vantage and aws-cost MCP serversand produce a phased cost-reduction plan: top 5 growth drivers, dollar deltas,likely causes, and an expected-vs-anomalous call for each."Uruchom to w zadaniu Codex Cloud, żeby analiza nie obciążała laptopa, albo w rozszerzeniu IDE, by wpleść wyniki w zmianę, którą właśnie piszesz.
Typowa odpowiedź grupuje wydatki, szereguje to, co się ruszyło, i oznacza, który wzrost jest niegroźny — RDS urósł, bo dodano trzy repliki odczytu (spodziewane przy rampie ruchu), podczas gdy 45-procentowy skok transferu międzyregionowego nie ma odpowiadającego wdrożenia i wymaga zbadania. Traktuj kwoty jako punkt wyjścia i potwierdź je w konsoli dostawcy, zanim zameldujesz się w dziale finansów, bo pokrycie tagami i granice kont kształtują to, co zwraca API.
Prompty, które zwracają decyzje, a nie dashboardy
Dział zatytułowany „Prompty, które zwracają decyzje, a nie dashboardy”To są przepisy wielokrotnego użytku. Nazywają prawdziwe usługi i proszą o opiniotwórczy wynik, więc działają przy minimalnej edycji — podmień dostawcę albo próg i uruchom.
Zamiana rekomendacji w zrecenzowaną zmianę
Dział zatytułowany „Zamiana rekomendacji w zrecenzowaną zmianę”Widoczność mówi, co naprawić. Kolejny krok to sprawienie, by agent zamienił jedną rekomendację w zrecenzowaną zmianę w twoim IaC. Rekomendacja jest identyczna we wszystkich narzędziach — „zmniejsz ten przewymiarowany m5.2xlarge do m5.large” — ale sposób, w jaki każde z nich edytuje Terraform, się różni.
Otwórz moduł Terraform w edytorze. W trybie agenta odwołaj się do pliku i do ustalenia z MCP, żeby Cursor edytował w miejscu i pokazał diff do akceptacji lub odrzucenia:
@main.tf The AWS cost MCP flagged `aws_instance.api` (m5.2xlarge) at 9% averageCPU over 30 days. Change it to the Compute Optimizer recommended size, add acomment with the date and the % savings, and show me a `terraform plan` summaryof what changes. Do not apply.Ustaw checkpoint Cursora przed akceptacją, żeby móc cofnąć edycję jednym kliknięciem, jeśli plan wygląda źle.
Z katalogu głównego repozytorium pozwól CLI przeczytać moduł i żywą rekomendację w jednym przebiegu:
claude "Read infra/main.tf. Using the aws-cost MCP, get the Compute Optimizer \recommendation for the instance behind aws_instance.api, apply the recommended \instance_type in the file, and run 'terraform plan' to show the diff. \Stop before apply and summarize the plan."Do cyklicznego przeglądu wepnij to w skrypt albo hook przed wdrożeniem, tak by każde wydanie sprawdzało przewymiarowane zasoby oznaczone od ostatniego przebiegu.
Uruchom Codeksa w repozytorium z zatwierdzaniem na żądanie, żeby zatrzymał się przed dotknięciem plików lub uruchomieniem terraform:
codex --ask-for-approval on-request \ "Use the aws-cost MCP to get the rightsizing recommendation for the instance \ defined as aws_instance.api in infra/main.tf, update the instance_type, then \ run terraform plan and show me the diff. Do not apply."Ponieważ Codex obejmuje App, CLI, IDE i Cloud, to samo zadanie możesz przekazać do zadania Cloud przy długim przeglądzie wielu modułów i zrecenzować wynikowy PR.
Prognozowanie i alokacja kosztów
Dział zatytułowany „Prognozowanie i alokacja kosztów”Dwa zadania następcze domykają praktykę FinOps: zamiana historii w budżet na przyszłość i uczynienie wydatków przypisywalnymi do zespołów.
Liniowa projekcja „wydaliśmy X w zeszłym miesiącu, więc wydamy X znowu” jest błędna w chwili, gdy użycie ma jakąkolwiek sezonowość. Agent ma dwie uczciwe opcje — poprosić MCP o własną prognozę Cost Explorera albo pobrać surową historię i ją dopasować. Dla większości zespołów wbudowana prognoza wystarcza:
Ten prompt odpowiada na pytanie „czy zaraz przekroczymy budżet w tym kwartale?”. Planowanie roczne to inne pytanie i wymaga historii względnej plus jawnych buforów zamiast jednej liczby:
Oparcie się na historii względnej („ostatnie cztery kwartały → przyszły rok”) utrzymuje analizę wiecznie świeżą, zamiast przypinać ją do roku kalendarzowego, który się zestarzeje. Potem uczyń wydatki przypisywalnymi:
Sprawdź wyrywkowo alokację na prawdziwej fakturze jednego zespołu i potwierdź, że mnożnik wzrostu w prognozie zgadza się z planem produktowym, zanim którakolwiek z tych liczb trafi na przegląd budżetu.
Gdy wolisz skrypt od rozmowy
Dział zatytułowany „Gdy wolisz skrypt od rozmowy”Aby zasilić dashboard albo cykliczny raport, pomiń czat i przepuść dane przez Claude bezpośrednio. Ten skrypt pobiera prawdziwą historię z Cost Explorera i prosi Claude Opus 5 o uszeregowany, ustrukturyzowany zestaw rekomendacji:
// rank-cost-drivers.ts — run: npx tsx rank-cost-drivers.tsimport { CostExplorer } from '@aws-sdk/client-cost-explorer';import Anthropic from '@anthropic-ai/sdk';
const ce = new CostExplorer({ region: 'us-east-1' });const anthropic = new Anthropic(); // reads ANTHROPIC_API_KEY
const end = new Date().toISOString().slice(0, 10);const start = new Date(Date.now() - 30 * 864e5).toISOString().slice(0, 10);
const { ResultsByTime } = await ce.getCostAndUsage({ TimePeriod: { Start: start, End: end }, Granularity: 'DAILY', Metrics: ['UnblendedCost'], GroupBy: [{ Type: 'DIMENSION', Key: 'SERVICE' }],});
const msg = await anthropic.messages.create({ model: 'claude-opus-5', max_tokens: 1500, messages: [{ role: 'user', content: `Here is 30 days of AWS daily cost grouped by service as JSON. Return the top5 cost drivers, any service trending up more than 20% week-over-week, and one concreterightsizing or scheduling action per driver with an estimated monthly saving.\n\n${JSON.stringify(ResultsByTime)}`, }],});
console.log(msg.content);Przy masowych, prostych przebiegach klasyfikacyjnych — na przykład etykietowaniu tysięcy zasobów po nazwie według środowiska — zejdź na najtańszy model zamiast flagowego:
const msg = await anthropic.messages.create({ model: 'claude-haiku-4-5', // cheapest tier, ~$1/$5 per Mtok — fine for bulk tagging max_tokens: 256, messages: [{ role: 'user', content: tagInferencePrompt }],});Kubernetes i wiele chmur
Dział zatytułowany „Kubernetes i wiele chmur”Jeśli twoje wydatki żyją w Kubernetes, a nie w gołym EC2, zamień MCP AWS na MCP klastra, żeby agent mógł czytać zadeklarowane requests względem faktycznego użycia — to dane stojące za niemal każdym znaleziskiem marnotrawstwa na poziomie podów. Robią to dwa prawdziwe, osobne pakiety: społecznościowy mcp-server-kubernetes oraz nieprzestrzeniony kubernetes-mcp-server (npx -y kubernetes-mcp-server@latest). Wybierz jeden i używaj jego dokładnej nazwy; przestrzeniony @kubernetes/mcp-server nie istnieje, a prompt odwołujący się do niego po cichu nic nie zrobi.
Dodaj go tak samo (claude mcp add --transport stdio k8s -- npx -y mcp-server-kubernetes albo odpowiadający blok w .cursor/mcp.json / config.toml), a potem:
Przy prawdziwym porównaniu kosztów między chmurami bądź szczery co do narzędzi: nie istnieje jeden godny zaufania MCP do „arbitrażu”. Używaj serwera każdego dostawcy — MCP billingowego AWS powyżej, Vantage dla widoku zbiorczego, @azure/mcp i @google-cloud/gcloud-mcp dla danych natywnych — i każ agentowi znormalizować liczby. Traktuj oszczędności z migracji między chmurami jako model, a nie gwarancję, bo koszty egressu i przebudowy architektury rutynowo zjadają różnicę z nagłówka.
Kiedy analiza kosztów z AI się psuje
Dział zatytułowany „Kiedy analiza kosztów z AI się psuje”-
Narzędzia MCP w ogóle się nie pojawiają albo każde wywołanie zwraca błąd uwierzytelnienia. Serwer startuje, ale Cost Explorer zwraca 403 albo każde zapytanie wraca puste. Niemal zawsze
AWS_PROFILEwskazuje na złe konto lub rolę bezce:Get*. Uruchomaws sts get-caller-identityz tym profilem, potwierdź konto i sprawdź, czy polityka IAM zawiera akcje odczytu Cost Explorera, Compute Optimizera i Cost Optimization Hub. Cost Explorer musi też być włączony w konsoli rozliczeniowej, zanim jakiekolwiek API zwróci dane. Po stronie Vantage odpowiednikiem jest brakujący lub źle zakresowanyVANTAGE_TOKEN. -
uvxnie jest znaleziony albo serwer nie startuje. Konfiguracja jest poprawna, aleuvnie jest zainstalowany albo nie ma go w PATH, który widzi narzędzie. Zainstalujuv, zrestartuj narzędzie, żeby podchwyciło nowy PATH, i przetestuj surową komendę w terminalu:uvx awslabs.billing-cost-management-mcp-server@latestpowinno wystartować i czekać na stdio. -
Opłaty i limity API Cost Explorera dają się we znaki. Każde zapytanie to 0,01 USD, a API dławi przy gwałtownym obciążeniu. Agent rozsyłający setki zapytań z dzienną granularnością potrafi nabić koszt i zacząć dostawać błędy throttlingu. Zawężaj zapytania najpierw do granularności miesięcznej i schodź do dziennej tylko tam, gdzie to ma znaczenie.
-
Liczby wyglądają na sprzed dnia lub dwóch. Dane Cost Explorera mają opóźnienie 24-48 godzin i aktualizują się do trzech razy dziennie — to nie jest czas rzeczywisty. Jeśli agent zgłasza brak wczorajszego skoku, tak ma być. Po coś bliższego czasowi rzeczywistemu potrzebujesz eksportów CUR albo metryk billingowych CloudWatch, a nie Cost Explorera.
-
Nieaktualne lub brakujące tagi alokacji kosztów psują wszystko niżej. Alokacja i chargeback są tak dokładne, jak twoje tagi, a duży kubełek „untagged” po cichu wykrzywia każdą liczbę per zespół. Traktuj pokrycie tagami jako warunek wstępny, a nie miły dodatek.
-
Right-sizing powoduje throttling. Zmniejszenie instancji, która wygląda na bezczynną średnio, potrafi ją zagłodzić w szczytach ruchu, a rekomendacja zbudowana na cichym oknie wstecznym całkowicie pomija miesięczny szczyt. Sprawdzaj wykorzystanie szczytowe, a nie średnie, każ agentowi podać okno wsteczne, zmieniaj po jednym poziomie naraz i obserwuj opóźnienia oraz błędy po każdej zmianie.
-
Agent chce zastosować destrukcyjną zmianę. Proponuje terminację instancji albo zmniejszenie produkcji i — w trybie automatycznego zatwierdzania — próbuje to uruchomić. Właśnie dlatego każdy prompt powyżej kończy się „do not apply”, a profil MCP jest tylko do odczytu. Trzymaj włączone zatwierdzenia (
--ask-for-approval on-requestw Codeksie, akceptacja/odrzucenie diffów w Cursorze, przegląd przed uruchomieniem w Claude Code) dla wszystkiego, co modyfikuje infrastrukturę. -
Zmyślone nazwy serwerów. Jeśli prompt odwołuje się do serwera, którego nigdy nie skonfigurowałeś, wywołanie narzędzia po cichu nic nie robi, a asystent może wymyślić prawdopodobnie wyglądające liczby, żeby wypełnić lukę. Używaj dokładnych kluczy serwerów z własnej konfiguracji i weryfikuj każdą nazwę pakietu, zanim ją podłączysz.
Dokąd dalej z FinOps
Dział zatytułowany „Dokąd dalej z FinOps”- Infrastructure as Code z AI — zamień plan right-sizingu w zrecenzowane zmiany w Terraformie
- Monitoring i obserwowalność — koreluj skoki kosztów z wdrożeniami i ruchem, które je wywołały
- Pipeline’y CI/CD — dodaj do pull requestów bramki z estymacją kosztu, by wydatek był recenzowany przed wdrożeniem
- Operacje bezpieczeństwa z AI — wepnij skanujące MCP w tę samą pętlę trzech narzędzi
- Automatyzacja zgodności — utrzymuj przypisanie kosztów i ścieżki audytowe w zgodzie dzięki tagowaniu i danym politykowym