К основному содержанию
скилл CX Codex

aws-cost-optimization — скилл для Claude Code: снижение счетов AWS

Скилл для FinOps-разборов: помогает найти перерасход в AWS, подобрать размеры инстансов и настроить бюджеты.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add BagelHole/DevOps-Security-Agent-Skills --skill aws-cost-optimization -a claude-code
Открыть на GitHub

Что делает aws-cost-optimization

Скилл ведёт по шагам cost review: разметка ресурсов по команде, сервису, окружению и кост-центру, включение Cost Explorer и Cost and Usage Reports в S3, поиск главных статей расходов, rightsizing вычислений и хранилища по метрикам CloudWatch, затем скидки за обязательства и алерты. Внутри — готовые вызовы AWS CLI: aws ce get-cost-and-usage, aws ce get-cost-forecast, aws ce get-rightsizing-recommendation, aws ce get-savings-plans-purchase-recommendation.

Отдельные блоки посвящены бюджетам и аномалиям: aws budgets create-budget с порогами 80% и 100%, aws ce create-anomaly-monitor и подписка на уведомления при превышении порога. Есть команды для поиска мусора — непривязанные EBS-тома, старые снапшоты, неиспользуемые Elastic IP, простаивающие балансировщики — и политика жизненного цикла S3 с переходом в STANDARD_IA через 30 дней.

Прежде чем звать скилл, проверьте доступы: нужен AWS CLI v2 с aws configure, права ce:*, budgets:*, ec2:Describe*, cloudwatch:PutMetricAlarm, s3:PutLifecycleConfiguration, включённый Cost Explorer (данные наполняются 24 часа) и активированные теги распределения затрат. Без включённого Cost Explorer запросы вернут пустые отчёты, и весь разбор встанет.

Какие задачи решает

  • разобрать, почему счёт за AWS вырос за месяц
  • подобрать размер EC2 и RDS по метрикам CloudWatch
  • выбрать между Savings Plans, Reserved Instances и on-demand
  • настроить бюджет с алертами на 80% и 100%
  • вычистить непривязанные EBS-тома и старые снапшоты

Примеры запросов агенту

  • Проведи cost review по нашему AWS-аккаунту: покажи топ статей расходов за последние 30 дней
  • Настрой месячный бюджет с письмом при превышении 80% и 100%
  • Найди непривязанные EBS-тома и неиспользуемые Elastic IP

Как установить aws-cost-optimization

1Через Skills CLI (Vercel)

npx skills add BagelHole/DevOps-Security-Agent-Skills --skill aws-cost-optimization -a claude-code

2Вручную: положить файлы

~/.claude/skills/aws-cost-optimization/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/aws-cost-optimization/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Из того же набора127

llm-fine-tuning Скилл помогает настроить инфраструктуру для дообучения открытых языковых моделей через QLoRA, LoRA или DeepSpeed. Пригодится при адаптации весов под свои данные. CX Codex +1 318установок gcp-cloud-functions Помогает агенту разворачивать serverless-функции в Google Cloud Functions: HTTP, Pub/Sub, Cloud Storage и по расписанию. CX Codex +1 319установок llm-caching Настраивает многоуровневое кэширование запросов к нейросетям через Redis, GPTCache и провайдерские API. Снижает затраты на 30–70% при частых повторных вопросах. CX Codex +1 317установок rag-observability-evals Скилл для мониторинга и оценки RAG-систем: метрики качества поиска, проверка обоснованности ответов, детекция галлюцинаций и регрессионное тестирование. CX Codex +1 318установок identity-access-management Скилл для настройки единого входа, SCIM-провижининга и MFA через Google Workspace, Okta или Azure AD. Пригодится, когда команда растёт и ручной онбординг начинает ломаться. CX Codex +1 317установок vercel-deployments Скилл для деплоя фронтенда и фулстек-приложений на Vercel: превью, edge-функции, переменные окружения и защита продакшена. CX Codex +1 316установок llmops-platform-engineering Скилл для проектирования внутренней LLM-платформы: CI/CD с гейтами оценки, продвижение моделей, канареечный деплой и откат. CX Codex +1 315установок vllm-server Развёртывает серверы инференса vLLM с непрерывным батчингом и поддержкой тензорного параллелизма. Пригодится для запуска открытых моделей с API, совместимым с OpenAI. CX Codex +1 314установок

Похожие

aws-billing-and-cost-management aws Анализирует расходы в AWS, ищет резервы экономии и настраивает бюджеты. Помогает проверить аномалии цен, оценить Savings Plans и снизить затраты на инфраструктуру. CX Codex +1 9 000установок aws-cost-operations zxkane Скилл помогает оценивать бюджет перед деплоем, анализировать аномалии в расходах AWS и настраивать алерты CloudWatch. Пригодится при аудите облака и контроле счетов. CX Codex +1 863установок aws-cost-optimize официальный github Разбирает IaC-файлы и живые ресурсы AWS, считает траты и заводит GitHub-issue на каждую находку. Пригодится, когда счёт за облако растёт, а непонятно почему. 68установок setting-up-ec2-instance-profiles aws Настраивает профили инстансов EC2 и роли IAM для безопасного вызова сервисов AWS без сохранения ключей в коде. Пригодится при настройке доступа к S3, DynamoDB или CloudWatch. CX Codex +1 6 200установок dt-obs-aws Dynatrace Помогает анализировать инфраструктуру AWS через Dynatrace Smartscape и запросы DQL: инвентарь ресурсов, топологию VPC и расходы на облако. CX Codex +1 2 500установок aws-sdk-java-v2-s3 giuseppe-trisciuoglio Даёт агенту готовые примеры работы с Amazon S3 через AWS SDK for Java 2.x: бакеты, загрузка объектов, multipart, presigned URL. CX Codex +1 3 700установок

Рядом в теме «DevOps и инфраструктура»

Всё по теме «DevOps и инфраструктура» →

Вопросы о aws-cost-optimization

Как установить aws-cost-optimization в Claude?

Выполните npx skills add BagelHole/DevOps-Security-Agent-Skills --skill aws-cost-optimization -a claude-code. Файл скилла окажется в ~/.claude/skills/aws-cost-optimization/SKILL.md.

Что делает aws-cost-optimization?

Проводит по шагам разбора расходов AWS: разметка ресурсов, анализ Cost Explorer, rightsizing, скидки за обязательства, бюджеты и алерты. Внутри — готовые команды AWS CLI для каждого шага.

Что нужно подготовить для работы скилла?

AWS CLI v2 с настроенным aws configure, права ce:*, budgets:*, ec2:Describe*, cloudwatch:PutMetricAlarm, s3:PutLifecycleConfiguration. Cost Explorer должен быть включён заранее, потому что данные наполняются 24 часа.

Исходный текст

SKILL.md · MIT
---
name: aws-cost-optimization
description: Reduce AWS spend with rightsizing, autoscaling, commitment planning, and storage lifecycle policies. Use when running FinOps reviews, lowering cloud bills, or improving cost-per-request metrics.
license: MIT
metadata:
  author: devops-skills
  version: "1.0"
---

# AWS Cost Optimization

Apply practical FinOps controls to reduce AWS spend without sacrificing reliability or performance.

## When to Use This Skill

- Monthly AWS bill spikes unexpectedly or exceeds budget thresholds
- Preparing cost reviews with engineering and finance teams
- Rightsizing EC2, RDS, EKS, or Lambda workloads after load testing
- Choosing between Savings Plans, Reserved Instances, or on-demand pricing
- Setting up automated budget alerts and anomaly detection
- Cleaning up unused resources (unattached EBS, idle load balancers, old snapshots)
- Optimizing data transfer costs across regions and AZs

## Prerequisites

- AWS CLI v2 installed and configured (`aws configure`)
- IAM permissions: `ce:*`, `budgets:*`, `ec2:Describe*`, `cloudwatch:PutMetricAlarm`, `s3:PutLifecycleConfiguration`
- Cost Explorer enabled in the AWS billing console (takes 24 hours to populate)
- Cost allocation tags activated in the Billing console

## Cost Review Workflow

1. Tag every resource by team, service, environment, and cost center.
2. Enable Cost Explorer and activate Cost and Usage Reports (CUR) to S3.
3. Identify top spend drivers by service, account, and tag.
4. Rightsize underutilized compute and storage based on CloudWatch metrics.
5. Apply commitment discounts (Savings Plans or RIs) for stable baseline usage.
6. Set budgets, anomaly alerts, and build KPI dashboards.
7. Review monthly and iterate.

## Cost Explorer CLI Commands

```bash
# Get cost and usage for the last 30 days grouped by service
aws ce get-cost-and-usage \
  --time-period Start=2026-02-01,End=2026-03-01 \
  --granularity MONTHLY \
  --metrics "BlendedCost" "UnblendedCost" "UsageQuantity" \
  --group-by Type=DIMENSION,Key=SERVICE

# Get cost forecast for the next 30 days
aws ce get-cost-forecast \
  --time-period Start=2026-03-24,End=2026-04-24 \
  --metric UNBLENDED_COST \
  --granularity MONTHLY

# Get cost grouped by a specific tag (e.g., team)
aws ce get-cost-and-usage \
  --time-period Start=2026-02-01,End=2026-03-01 \
  --granularity MONTHLY \
  --metrics "UnblendedCost" \
  --group-by Type=TAG,Key=team

# Get rightsizing recommendations for EC2
aws ce get-rightsizing-recommendation \
  --service "AmazonEC2" \
  --configuration '{"RecommendationTarget":"SAME_INSTANCE_FAMILY","BenefitsConsidered":true}'

# Get Savings Plans purchase recommendation
aws ce get-savings-plans-purchase-recommendation \
  --savings-plans-type COMPUTE_SP \
  --term-in-years ONE_YEAR \
  --payment-option NO_UPFRONT \
  --lookback-period-in-days SIXTY_DAYS

# Get Savings Plans utilization
aws ce get-savings-plans-utilization \
  --time-period Start=2026-02-01,End=2026-03-01 \
  --granularity MONTHLY

# Get Reserved Instance utilization
aws ce get-reservation-utilization \
  --time-period Start=2026-02-01,End=2026-03-01 \
  --granularity MONTHLY
```

## Budget Alerts

```bash
# Create a monthly cost budget with email alert at 80% and 100%
aws budgets create-budget \
  --account-id 123456789012 \
  --budget '{
    "BudgetName": "monthly-total",
    "BudgetLimit": {"Amount": "5000", "Unit": "USD"},
    "TimeUnit": "MONTHLY",
    "BudgetType": "COST",
    "CostFilters": {},
    "CostTypes": {
      "IncludeTax": true,
      "IncludeSubscription": true,
      "UseBlended": false
    }
  }' \
  --notifications-with-subscribers '[
    {
      "Notification": {
        "NotificationType": "ACTUAL",
        "ComparisonOperator": "GREATER_THAN",
        "Threshold": 80,
        "ThresholdType": "PERCENTAGE"
      },
      "Subscribers": [{"SubscriptionType": "EMAIL", "Address": "[email protected]"}]
    },
    {
      "Notification": {
        "NotificationType": "ACTUAL",
        "ComparisonOperator": "GREATER_THAN",
        "Threshold": 100,
        "ThresholdType": "PERCENTAGE"
      },
      "Subscribers": [{"SubscriptionType": "EMAIL", "Address": "[email protected]"}]
    }
  ]'

# List all budgets
aws budgets describe-budgets --account-id 123456789012

# Enable Cost Anomaly Detection monitor for all services
aws ce create-anomaly-monitor \
  --anomaly-monitor '{
    "MonitorName": "all-services",
    "MonitorType": "DIMENSIONAL",
    "MonitorDimension": "SERVICE"
  }'

# Create anomaly subscription (alert when impact > $50)
aws ce create-anomaly-subscription \
  --anomaly-subscription '{
    "SubscriptionName": "cost-alerts",
    "MonitorArnList": ["arn:aws:ce::123456789012:anomalymonitor/monitor-id"],
    "Subscribers": [{"Type": "EMAIL", "Address": "[email protected]"}],
    "Threshold": 50,
    "Frequency": "DAILY"
  }'
```

## CloudWatch Cost Alarm

```bash
# Create alarm for estimated charges exceeding $4000
aws cloudwatch put-metric-alarm \
  --alarm-name "billing-alarm-4000" \
  --alarm-description "Alert when estimated charges exceed $4000" \
  --metric-name EstimatedCharges \
  --namespace AWS/Billing \
  --statistic Maximum \
  --period 21600 \
  --threshold 4000 \
  --comparison-operator GreaterThanThreshold \
  --evaluation-periods 1 \
  --dimensions Name=Currency,Value=USD \
  --alarm-actions "arn:aws:sns:us-east-1:123456789012:billing-alerts" \
  --treat-missing-data notBreaching
```

## Find and Clean Unused Resources

```bash
# List unattached EBS volumes (wasted storage spend)
aws ec2 describe-volumes \
  --filters Name=status,Values=available \
  --query "Volumes[].{ID:VolumeId,Size:Size,Created:CreateTime}" \
  --output table

# Find old EBS snapshots (older than 90 days)
aws ec2 describe-snapshots \
  --owner-ids self \
  --query "Snapshots[?StartTime<='2025-12-24'].{ID:SnapshotId,Size:VolumeSize,Date:StartTime}" \
  --output table

# List unused Elastic IPs (charged when not associated)
aws ec2 describe-addresses \
  --query "Addresses[?AssociationId==null].{IP:PublicIp,AllocId:AllocationId}" \
  --output table

# Find idle load balancers (zero healthy targets)
aws elbv2 describe-target-health \
  --target-group-arn arn:aws:elasticloadbalancing:us-east-1:123456789012:targetgroup/my-tg/abc123

# List RDS instances and their utilization
aws cloudwatch get-metric-statistics \
  --namespace AWS/RDS \
  --metric-name CPUUtilization \
  --dimensions Name=DBInstanceIdentifier,Value=mydb \
  --start-time 2026-03-17T00:00:00Z \
  --end-time 2026-03-24T00:00:00Z \
  --period 86400 \
  --statistics Average
```

## S3 Lifecycle Cost Optimization

```bash
# Apply tiered lifecycle policy to reduce storage costs
aws s3api put-bucket-lifecycle-configuration \
  --bucket my-data-bucket \
  --lifecycle-configuration '{
    "Rules": [
      {
        "ID": "TierDownOldData",
        "Status": "Enabled",
        "Filter": {"Prefix": ""},
        "Transitions": [
          {"Days": 30, "StorageClass": "STANDARD_IA"},
          {"Days": 90, "StorageClass": "GLACIER"},
          {"Days": 365, "StorageClass": "DEEP_ARCHIVE"}
        ],
        "NoncurrentVersionTransitions": [
          {"NoncurrentDays": 30, "StorageClass": "GLACIER"}
        ],
        "NoncurrentVersionExpiration": {"NoncurrentDays": 90}
      },
      {
        "ID": "CleanupIncompleteUploads",
        "Status": "Enabled",
        "Filter": {"Prefix": ""},
        "AbortIncompleteMultipartUpload": {"DaysAfterInitiation": 7}
      }
    ]
  }'
```

## Terraform Budget and Alarm Example

```hcl
resource "aws_budgets_budget" "monthly" {
  name         = "monthly-total"
  budget_type  = "COST"
  limit_amount = "5000"
  limit_unit   = "USD"
  time_unit    = "MONTHLY"

  notification {
    comparison_operator        = "GREATER_THAN"
    threshold                  = 80
    threshold_type             = "PERCENTAGE"
    notification_type          = "ACTUAL"
    subscriber_email_addresses = ["[email protected]"]
  }

  notification {
    comparison_operator        = "GREATER_THAN"
    threshold                  = 100
    threshold_type             = "PERCENTAGE"
    notification_type          = "ACTUAL"
    subscriber_email_addresses = ["[email protected]"]
  }
}

resource "aws_cloudwatch_metric_alarm" "billing" {
  alarm_name          = "billing-alarm-4000"
  comparison_operator = "GreaterThanThreshold"
  evaluation_periods  = 1
  metric_name         = "EstimatedCharges"
  namespace           = "AWS/Billing"
  period              = 21600
  statistic           = "Maximum"
  threshold           = 4000
  alarm_description   = "Billing exceeds $4000"
  alarm_actions       = [aws_sns_topic.billing_alerts.arn]

  dimensions = {
    Currency = "USD"
  }
}
```

## Scheduling Non-Production Shutdowns

```bash
# Stop all dev instances tagged Environment=dev (run via EventBridge + Lambda)
aws ec2 describe-instances \
  --filters "Name=tag:Environment,Values=dev" "Name=instance-state-name,Values=running" \
  --query "Reservations[].Instances[].InstanceId" \
  --output text | xargs -n1 aws ec2 stop-instances --instance-ids

# Scale down dev ECS services to zero at night
aws ecs update-service \
  --cluster dev-cluster \
  --service dev-api \
  --desired-count 0
```

## Troubleshooting

| Problem | Cause | Fix |
|---|---|---|
| Cost Explorer returns empty data | CE not enabled or < 24h old | Enable in Billing console, wait 24h |
| Budget alert not firing | SNS subscription not confirmed | Check email and confirm subscription |
| Rightsizing shows no recommendations | Not enough usage data | Wait 14 days for sufficient metrics |
| Savings Plans utilization low | Over-purchased or workload changed | Review and adjust SP coverage |
| Unattached EBS not showing | Wrong region queried | Loop through all active regions |
| Billing alarm never triggers | Billing metrics only in us-east-1 | Create alarm in us-east-1 region |
| CUR data missing in S3 | Report not configured or bucket policy wrong | Verify CUR setup in Billing console |
| Tag-based cost allocation empty | Tags not activated | Activate cost allocation tags in Billing |

## Related Skills

- [aws-ec2](../aws-ec2/) - EC2 operations, sizing, and Spot instances
- [aws-s3](../aws-s3/) - S3 storage classes and lifecycle controls
- [aws-rds](../aws-rds/) - RDS instance sizing and reserved instances
- [aws-lambda](../aws-lambda/) - Lambda pricing and concurrency tuning
- [terraform-aws](../terraform-aws/) - Codifying cost guardrails in IaC

© devops-skills · MIT · BagelHole/DevOps-Security-Agent-Skills

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой