Optymalizacja kosztów z AI
Twój rachunek z AWS wzrósł w zeszłym miesiącu o 38%. Dział finansów pyta dlaczego, nowy klaster staging, którego nikt nie otagował, jest zagrzebany gdzieś w EC2-Other, a konsola Cost Explorer wymaga dwudziestu kliknięć, żeby odpowiedzieć na pytanie, na które i tak będziesz musiał odpowiedzieć ponownie za tydzień. Nie potrzebujesz platformy FinOps. Potrzebujesz, żeby Twój agent kodujący odczytał dane rozliczeniowe, uszeregował marnotrawstwo i podał Ci dokładne komendy do naprawy.
I właśnie to robi ten przewodnik: podłącza AWS Billing & Cost Management MCP do Cursora, Claude Code i Codeksa, a następnie przechodzi przez realną pętlę — znajdź generatory kosztów, dopasuj rozmiar najgorszych przypadków, prognozuj trend i utrzymaj człowieka w pętli, zanim cokolwiek destrukcyjnego zostanie uruchomione.
Co z tego wyniesiesz
Dział zatytułowany „Co z tego wyniesiesz”- Działającą konfigurację AWS Billing & Cost Management MCP, skonfigurowaną identycznie w Cursorze, Claude Code i Codeksie
- Gotowy do wklejenia prompt, który zwraca Twoje największe generatory kosztów pogrupowane według usługi, uszeregowane działania dopasowujące rozmiar oraz notatkę o ryzyku dla każdego działania
- 20-liniowy skrypt, który przepuszcza JSON z Cost Explorera przez Claude Opus 4.8 w celu uzyskania uszeregowanych rekomendacji — gdy wolisz to oskryptować, niż rozmawiać
- Prompt prognozujący, który wykorzystuje Twoją rzeczywistą 90-dniową historię zamiast życzeniowej projekcji liniowej
- Listę kontrolną
Gdy to się zepsujedla awarii, które faktycznie napotkasz: uwierzytelnianie MCP, nieaktualne dane i agent, który chce zterminować produkcję
Krok 1: Podłącz AWS Billing & Cost Management MCP
Dział zatytułowany „Krok 1: Podłącz AWS Billing & Cost Management MCP”Praca zaczyna się i kończy na jednym serwerze MCP. AWS Labs publikuje oficjalny serwer Billing and Cost Management MCP (następcę starszego serwera cost-analysis). Udostępnia on Cost Explorer, budżety, dopasowanie rozmiaru przez Compute Optimizer, Cost Optimization Hub, rekomendacje Savings Plans oraz porównania miesiąc do miesiąca — wszystko poprzez Twoje istniejące poświadczenia AWS.
Działa przez uvx, więc najpierw zainstaluj uv i upewnij się, że aws configure (lub AWS_PROFILE) rozwiązuje się do roli z uprawnieniami odczytu ce:Get*, compute-optimizer:Get* oraz cost-optimization-hub:*.
Sama konfiguracja serwera jest identyczna we wszystkich trzech narzędziach — ta sama komenda, te same argumenty, te same zmienne środowiskowe. Różni się jedynie sposób jego rejestracji.
Dodaj serwer do .cursor/mcp.json (projekt) lub do globalnych ustawień MCP Cursora, a następnie włącz go w Settings → MCP. Cursor automatycznie 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 rozliczeniowe pojawiają 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 udostępnić go repozytorium przez .mcp.json, lub pozostaw domyślny zakres lokalny dla osobistej konfiguracji niosącej poświadczenia. 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 aplikacji, CLI i IDE. Potwierdź, że narzędzia się załadowały, wpisując / w TUI i sprawdzając listę narzędzi MCP.
Krok 2: Znajdź generatory kosztów
Dział zatytułowany „Krok 2: Znajdź generatory kosztów”Z podłączonym MCP pierwszym zadaniem jest widoczność: które usługi się zmieniły, o ile i co stoi za zmianą. To tutaj nieprecyzyjny prompt (“przeanalizuj moje koszty”) marnuje turę, a ostry daje Ci uszeregowaną listę działań.
Poniższy prompt jest celowo opiniotwórczy — nazywa grupowanie, metrykę, okno i kształt wyniku. Wklej go bez zmian do dowolnego z trzech narzędzi.
Linijka do not run any modifications ma znaczenie. Bez niej agent w trybie automatycznego zatwierdzania może spróbować zastosować dopasowanie rozmiaru przez narzędzie zapisu. My chcemy analizy i komend — decyzja o zastosowaniu pozostaje po stronie człowieka.
Gdy masz już uszeregowaną listę, działaniem następczym, które się opłaca, jest polowanie na nieotagowane wydatki — to najczęstszy pojedynczy powód, dla którego rachunek jest “niewyjaśniony”:
Krok 3: Dopasuj rozmiar modułu (trzy narzędzia, jeden przepływ)
Dział zatytułowany „Krok 3: Dopasuj rozmiar modułu (trzy narzędzia, jeden przepływ)”Widoczność mówi Ci, co naprawić. Następnym krokiem jest skłonienie agenta, by przekształcił rekomendację w zweryfikowaną zmianę w Twoim IaC. Rekomendacja jest identyczna we wszystkich narzędziach — “zmniejsz tę przewymiarowaną instancję m5.2xlarge do m5.large” — ale to, jak sterujesz każdym narzędziem, by edytowało Terraform, różni się.
Otwórz moduł Terraform w edytorze. W trybie Agent odwołaj się do pliku i ustalenia MCP, aby Cursor edytował w miejscu i pokazał Ci diff do zaakceptowania lub odrzucenia:
@main.tf The AWS cost MCP flagged
aws_instance.api(m5.2xlarge) at 9% average CPU over 30 days. Change it to the Compute Optimizer recommended size, add a comment with the date and the % savings, and show me aterraform plansummary of what changes. Do not apply.
Użyj checkpointu Cursora przed zaakceptowaniem, aby móc cofnąć edycję jednym kliknięciem, jeśli plan wygląda źle.
Z katalogu głównego repozytorium pozwól CLI odczytać moduł i bieżącą 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."Dla cyklicznego przeglądu wepnij to w skrypt lub hak przeddeploymentowy, aby każde wydanie sprawdzało zasoby przewymiarowane oznaczone od ostatniego uruchomienia.
Uruchom Codeksa w repozytorium z zatwierdzaniem on-request, aby zatrzymywał 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 aplikację, CLI, IDE i Cloud, możesz przekazać to samo zadanie zadaniu w Cloud na potrzeby długo trwającego przeglądu wielu modułów i zweryfikować wynikowy PR.
Krok 4: Prognozuj, zamiast zgadywać
Dział zatytułowany „Krok 4: Prognozuj, zamiast zgadywać”Liniowa projekcja “w zeszłym miesiącu wydaliśmy X, więc wydamy X znowu” jest błędna w momencie, gdy użycie ma jakąkolwiek sezonowość. Gdy chcesz realnej prognozy, agent ma dwie uczciwe opcje: poprosić MCP o własną prognozę Cost Explorera albo pobrać surową 90-dniową historię i ją dopasować.
Dla większości zespołów wbudowana prognoza MCP wystarczy — poproś o nią wprost:
Gdy wolisz mieć model na własność — na przykład, by zasilić nim dashboard — pomiń czat i przepuść dane bezpośrednio przez Claude. Ten 20-liniowy skrypt pobiera prawdziwą historię z Cost Explorera i prosi Claude Opus 4.8 o uszeregowany, ustrukturyzowany zestaw rekomendacji. Działa tak:
// 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-4-8', 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);Dla masowych, prostych przebiegów klasyfikacyjnych — na przykład oznaczania tysięcy zasobów według środowiska na podstawie ich nazw — zejdź do najtańszego modelu 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 }],});Krok 5: Kubernetes i multi-cloud
Dział zatytułowany „Krok 5: Kubernetes i multi-cloud”Jeśli Twoje wydatki żyją w Kubernetes, a nie w surowym EC2, zamień AWS MCP na MCP klastra. Społecznościowy serwer Kubernetes MCP (mcp-server-kubernetes na npm) pozwala agentowi odczytać żądania zasobów względem rzeczywistego użycia — to dane stojące za niemal każdym ustaleniem o marnotrawstwie na poziomie poda.
Dodaj go w ten sam sposób (claude mcp add --transport stdio k8s -- npx -y mcp-server-kubernetes albo odpowiadający blok .cursor/mcp.json / config.toml), a następnie:
Dla prawdziwego porównania kosztów multi-cloud bądź szczery co do narzędzi: nie istnieje pojedynczy godny zaufania MCP do “arbitrażu”. Używaj własnego MCP każdego dostawcy (AWS billing MCP powyżej; GCP i Azure mają własne eksporty rozliczeniowe) i każ agentowi znormalizować liczby — a oszczędności z migracji między chmurami traktuj jako model, a nie gwarancję, bo koszty transferu wychodzącego i przebudowy architektury rutynowo wymazują nagłówkową różnicę.
Gdy to się zepsuje
Dział zatytułowany „Gdy to się zepsuje”-
Narzędzia MCP w ogóle się nie pojawiają / każde wywołanie zwraca błąd uwierzytelniania. Serwer startuje, ale Cost Explorer zwraca 403. Niemal zawsze
AWS_PROFILErozwiązuje się do złego konta lub do roli bezce:Get*. Uruchomaws sts get-caller-identityz tym profilem, potwierdź konto i sprawdź, czy polityka IAM zawiera akcje odczytu Cost Explorer, Compute Optimizer i Cost Optimization Hub. Cost Explorer musi też być włączony w konsoli rozliczeniowej, zanim jakiekolwiek API zwróci dane. -
uvxnie zostaje znaleziony lub serwer nie uruchamia się. Konfiguracja jest poprawna, aleuvnie jest zainstalowany albo nie ma go w PATH, który widzi narzędzie. Zainstalujuv, zrestartuj narzędzie, aby podchwyciło nowy PATH, i przetestuj surową komendę w terminalu:uvx awslabs.billing-cost-management-mcp-server@latestpowinno wystartować i czekać na stdio. -
Liczby wyglądają na nieaktualne o dzień czy dwa. Dane Cost Explorera mają opóźnienie 24–48 godzin i aktualizują się do trzech razy dziennie — nie są w czasie rzeczywistym. Jeśli agent zgłasza wczorajszy skok jako brakujący, to jest oczekiwane. Dla czegoś bliższego czasu rzeczywistego potrzebujesz eksportów CUR lub metryk rozliczeniowych CloudWatch, a nie Cost Explorera.
-
Agent chce zastosować destrukcyjną zmianę. Proponuje zterminowanie instancji lub zmniejszenie produkcji i — w trybie automatycznego zatwierdzania — próbuje to uruchomić. Właśnie dlatego każdy prompt powyżej kończy się słowami “do not apply” i dlatego profil MCP jest tylko do odczytu. Trzymaj zatwierdzenia włączone (
--ask-for-approval on-requestw Codeksie, akceptacja/odrzucanie diffów w Cursorze, weryfikacja przed uruchomieniem w Claude Code) dla wszystkiego, co modyfikuje infrastrukturę. -
Rekomendacja dopasowania rozmiaru opiera się na cichym oknie. Compute Optimizer mówi “zmniejsz”, bo okres obserwacji ominął Twój miesięczny szczyt. Zawsze każ agentowi podać okno obserwacji i pogodzić je ze znaną sezonowością przed zastosowaniem.
Co dalej
Dział zatytułowany „Co dalej”- Operacje bezpieczeństwa z AI — wepnij MCP do skanowania bezpieczeństwa w tę samą pętlę trzech narzędzi
- Automatyzacja zgodności — wykorzystaj dane o tagowaniu i politykach, aby utrzymać atrybucję kosztów i ślady audytowe w synchronizacji
- Przegląd wdrożeń i operacji — pozostałe przepływy operacji produkcyjnych