Тема: Аналіз та оптимізація хмарних витрат.
Аналіз поточних витрат за допомогою AWS Cost Explorer або Azure Cost Management; виявлення невикористаних ресурсів; налаштування бюджетів та сповіщень; розрахунок TCO та порівняння варіантів резервування ресурсів.
Мета: Набути практичні навички аналізу хмарних витрат, виявлення неефективного використання ресурсів та застосування FinOps-практик для оптимізації хмарних видатків.
Технологічний стек:
Free Tier Usage:
Через AWS CLI:
# Створення бюджету $10/місяць
aws budgets create-budget \
--account-id $(aws sts get-caller-identity --query Account --output text) \
--budget '{
"BudgetName": "lab18-monthly-budget",
"BudgetLimit": {"Amount": "10.00", "Unit": "USD"},
"TimeUnit": "MONTHLY",
"BudgetType": "COST"
}' \
--notifications-with-subscribers '[{
"Notification": {
"NotificationType": "ACTUAL",
"ComparisonOperator": "GREATER_THAN",
"Threshold": 80,
"ThresholdType": "PERCENTAGE"
},
"Subscribers": [{"SubscriptionType": "EMAIL", "Address": "your@email.com"}]
}]'
За сервісами (останні 30 днів):
За часом:
Сучасний фільтр:
# Витрати за поточний місяць через CLI
aws ce get-cost-and-usage \
--time-period Start=$(date -d "$(date +%Y-%m-01)" +%Y-%m-%d),End=$(date +%Y-%m-%d) \
--granularity MONTHLY \
--metrics "BlendedCost" "UsageQuantity" \
--group-by Type=DIMENSION,Key=SERVICE \
--query 'ResultsByTime[0].Groups[*].[Keys[0],Metrics.BlendedCost.Amount]' \
--output table
Задача: Компанія потребує EC2 t3.medium (2 vCPU, 4 GB RAM) у регіоні eu-central-1 протягом 1 року.
Заповніть таблицю на основі AWS Pricing Calculator (https://calculator.aws):
| Модель | Опис | Місячна вартість | Річна вартість | Економія |
|---|---|---|---|---|
| On-Demand | Оплата погодинно, без зобов’язань | ~$35 | ~$420 | — |
| Reserved (1yr, No Upfront) | 1 рік, без передоплати | ~$22 | ~$264 | ~37% |
| Reserved (1yr, All Upfront) | 1 рік, повна передоплата | ~$20 | ~$240 | ~43% |
| Reserved (3yr, All Upfront) | 3 роки, повна передоплата | ~$14 | ~$168 | ~60% |
| Spot Instance | Надлишкові потужності, переривається | ~$10 | ~$120 | ~71% |
Висновок: Reserved Instances вигідні при стабільному навантаженні на 1–3 роки. Spot — лише для переривуваних задач (batch, ML-тренування).
Дослідіть Savings Plans:
# Рекомендації щодо Savings Plans на основі вашого вжитку
aws ce get-savings-plans-purchase-recommendation \
--savings-plans-type COMPUTE_SP \
--term-in-years ONE_YEAR \
--payment-option NO_UPFRONT \
--query 'SavingsPlansPurchaseRecommendation.{
EstimatedMonthlySavings:SavingsPlansPurchaseRecommendationSummary.EstimatedMonthlySavingsAmount,
RecommendedHourlyCommitment:SavingsPlansPurchaseRecommendationSummary.HourlyCommitmentToPurchase
}' \
--output table
Infracost — інструмент для оцінки вартості Terraform-конфігурацій до їхнього застосування.
# Встановлення
brew install infracost # macOS
# або:
curl -fsSL https://raw.githubusercontent.com/infracost/infracost/master/scripts/install.sh | sh
# Авторизація (безкоштовно)
infracost auth login
# Оцінка вартості Terraform-конфігурації з Лаб. №8
cd ~/lab08-terraform
infracost breakdown --path .
Приклад виводу:
Name Monthly Qty Unit Monthly Cost
aws_instance.lab_vm
Instance usage (Linux/UNIX) 730 hours $8.47
aws_s3_bucket.lab_bucket
Standard storage 0 GB months $0.00
OVERALL TOTAL $8.47
# Порівняти різні конфігурації (якщо змінили instance type)
infracost diff --path . --compare-to main
AWS Trusted Advisor:
Через CLI — пошук неприєднаних Elastic IP:
# Elastic IP, що не прикріплені до жодного ресурсу (і за них стягується плата!)
aws ec2 describe-addresses \
--query 'Addresses[?AssociationId==null].[PublicIp, AllocationId]' \
--output table
Зупинені, але існуючі EC2 (зберігаються стоп-тагів):
aws ec2 describe-instances \
--filters Name=instance-state-name,Values=stopped \
--query 'Reservations[*].Instances[*].[InstanceId, InstanceType, Tags[?Key==`Name`].Value|[0]]' \
--output table
Заповніть таблицю на основі AWS Billing та Free Tier звіту:
| Лабораторна | Основні ресурси | Потрапило під Free Tier? | Орієнтовна вартість |
|---|---|---|---|
| Лаб. 1 | IAM | ✅ Так | $0 |
| Лаб. 2 | CLI (немає ресурсів) | ✅ Так | $0 |
| Лаб. 3 | VPC, Security Groups | ✅ Так | $0 |
| Лаб. 4 | EC2 t2.micro | ✅ 750 год/міс | $0 |
| Лаб. 5 | S3 (5 GB), EBS (30 GB) | ✅ Так | $0 |
| Лаб. 6 | Docker Hub (公開) | ✅ Так | $0 |
| Лаб. 7 | Minikube (локально) | ✅ Так | $0 |
| Лаб. 8 | Terraform + EC2 (destroy) | ✅ Якщо destroy | $0 |
| Лаб. 9 | CloudWatch (10 метрик) | ✅ 10 безкоштовно | $0 |
| РАЗОМ | ~$0 |
infracost breakdown або скриншот результатуlab18.md