Основы оптимизации затрат и устойчивого развития
Учитывайте расходы, подбирайте размер ресурсов и модель ценообразования; уменьшайте инфраструктурный след и повышайте энергоэффективность для устойчивого развития.
«Основы оптимизации затрат и устойчивого развития» — бесплатный урок AWS Solutions Architect на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения AWS Solutions Architect, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс AWS Solutions Architect содержит 4 уроков всего.
Обзор пиллара Cost Optimisation
Пиллар Cost Optimisation посвящён предотвращению ненужных расходов и получению максимальной ценности от затрат на AWS. Часто именно этот пиллар даёт наиболее ощутимый немедленный эффект, поскольку в облаке легко выделить избыточные ресурсы. Основные принципы проектирования: внедрите финансовое управление облаком — рассматривайте стоимость как ключевой показатель. Перейдите к модели потребления — платите только за используемые ресурсы. Измеряйте общую эффективность — отслеживайте стоимость единицы деловой ценности. Сокращайте расходы на недифференцируемую тяжёлую работу — используйте управляемые сервисы вместо самостоятельного управления инфраструктурой.
# Cost Optimisation pillars:
# 1. Expenditure awareness - visibility into what you spend
# 2. Cost-effective resources - right instance types, storage classes
# 3. Matching supply to demand - auto scaling, spot instances
# 4. Optimising over time - regularly review and adjust
# Example: undifferentiated heavy lifting
# Instead of managing your own Redis: use ElastiCache
# Instead of managing Kubernetes: use EKS or Fargate
# Managed services reduce operational overhead AND costОптимизация размеров ресурсов
Оптимизация размеров — наиболее эффективное действие для снижения затрат: выявление и устранение избыточно выделенных ресурсов. Распространённый сценарий — запуск крупных инстансов при первоначальном развертывании без последующего пересмотра их параметров. AWS Compute Optimizer анализирует показатели использования и рекомендует оптимальный тип инстанса. Типичный результат анализа: инстанс m5.4xlarge, загруженный на 5% CPU, следует заменить на t3.medium, что позволяет сэкономить 80% затрат на вычисления. Оптимизация размеров применяется к EC2, Lambda (память), RDS и томам EBS.
# Get Compute Optimizer recommendations for all EC2
aws compute-optimizer get-ec2-instance-recommendations \
--filters Name=finding,Values=Overprovisioned
# Response includes:
# currentInstanceType: m5.4xlarge
# recommendedInstanceType: t3.large
# estimatedMonthlySavings: $280
# performanceRisk: VeryLow
# Also check EBS volumes:
aws compute-optimizer get-ebs-volume-recommendations \
--filters Name=finding,Values=OverprovisionedОптимизация модели закупок
Для рабочих нагрузок со стабильной интенсивностью использования тариф On-Demand является самым дорогим вариантом. Значительную экономию дают следующие варианты: Reserved Instances (1 или 3 года) — до 72% экономии для предсказуемых рабочих нагрузок. Savings Plans — гибкое обязательство (до 66% экономии), применяемое к разным семействам инстансов и регионам. Spot Instances — до 90% экономии для прерываемых рабочих нагрузок (пакетная обработка, CI/CD, без сохранения состояния). Типичный парк, оптимизированный по затратам, сочетает все три варианта: Savings Plans для базовой нагрузки, Spot для пиков и On-Demand для особых случаев.
# Purchasing model comparison:
# On-Demand: $0.192/hr (m5.large) No commitment
# 1yr Reserved: $0.114/hr $0.78/hr effective
# 3yr Reserved: $0.074/hr Highest savings
# Compute SP: ~$0.128/hr Flexible family/region
# Spot: $0.05-0.08/hr Interruptible
# Savings Plans cover:
# - Compute Savings Plans: EC2 + Lambda + Fargate
# - EC2 Instance Savings Plans: specific family in one regionSpot Instances для оптимизации затрат
Spot Instances используют свободные мощности AWS со скидкой до 90%, но могут быть прерваны с уведомлением за 2 минуты, когда AWS потребуется вернуть мощности. Spot хорошо подходит для: пакетной обработки (с сохранением контрольной точки и возобновлением), агентов сборки CI/CD, веб-серверов без состояния (за ALB; ELB направляет запросы в обход прерванных инстансов) и рабочих узлов EMR и EKS. Используйте Spot Fleet или ASG с несколькими типами инстансов и AZ, чтобы распределить нагрузку между пулами и снизить риск прерывания.
# ASG with mixed instances (On-Demand + Spot)
aws autoscaling create-auto-scaling-group \
--auto-scaling-group-name my-mixed-asg \
--mixed-instances-policy '{
"LaunchTemplate": {"LaunchTemplateSpecification":{"LaunchTemplateId":"lt-12345","Version":"$Latest"},"Overrides":[{"InstanceType":"m5.large"},{"InstanceType":"m5a.large"},{"InstanceType":"m4.large"}]},
"InstancesDistribution": {
"OnDemandPercentageAboveBaseCapacity": 20,
"SpotAllocationStrategy": "capacity-optimized"
}
}' \
--min-size 2 --max-size 20 --desired-capacity 5Оптимизация затрат на хранилище S3
Затраты на хранилище S3 можно значительно сократить, выбрав подходящий класс хранения и автоматизировав переходы. S3 Intelligent-Tiering автоматически перемещает объекты между уровнями доступа в зависимости от характера обращений — это особенно удобно, когда характер обращений неизвестен. Правила жизненного цикла переводят объекты по расписанию: из Standard → Standard-IA через 30 дней → Glacier через 90 дней → Deep Archive через 180 дней. Также рассмотрите S3 Select, чтобы получать только необходимое подмножество данных объекта и сократить затраты на передачу и обработку данных.
# S3 lifecycle policy for cost optimisation
aws s3api put-bucket-lifecycle-configuration \
--bucket my-data-bucket \
--lifecycle-configuration '{
"Rules": [{
"ID": "auto-archive",
"Status": "Enabled",
"Transitions": [
{"Days": 30, "StorageClass": "STANDARD_IA"},
{"Days": 90, "StorageClass": "GLACIER_IR"},
{"Days": 365, "StorageClass": "DEEP_ARCHIVE"}
]
}]
}'Тегирование и распределение затрат
Без правильного тегирования невозможно понять, сколько тратит каждая команда или проект. Теги распределения затрат позволяют разбивать затраты по команде, проекту, среде или любому определённому Вами измерению. Активируйте теги в консоли Billing, а затем используйте AWS Cost Explorer, чтобы фильтровать и группировать затраты по тегу. Обязательное тегирование можно настроить с помощью политик тегов в AWS Organizations, а правила AWS Config использовать для обнаружения ресурсов без тегов. Это обеспечивает showback (видимость затрат) и chargeback (отнесение затрат) на отдельные команды.
# Enforce required tags with Config rule
aws configservice put-config-rule \
--config-rule '{
"ConfigRuleName": "required-tags",
"Source": {"Owner":"AWS","SourceIdentifier":"REQUIRED_TAGS"},
"InputParameters": "{\"tag1Key\":\"Project\",\"tag2Key\":\"Environment\",\"tag3Key\":\"Owner\"}"
}'
# Query cost by tag in Cost Explorer
aws ce get-cost-and-usage \
--time-period Start=2026-06-01,End=2026-06-30 \
--granularity MONTHLY \
--group-by Type=TAG,Key=ProjectОбзор Pillar Sustainability
Pillar Sustainability (добавленный в 2021 году) направлен на минимизацию воздействия облачных рабочих нагрузок на окружающую среду за счёт снижения энергопотребления и повышения эффективности. Принципы проектирования: понимайте своё воздействие — измеряйте углеродный след рабочих нагрузок. Сформулируйте цели в области Sustainability. Максимально используйте ресурсы — оптимизируйте размеры, чтобы не допускать простоя ресурсов. Заранее учитывайте и внедряйте более эффективное оборудование — используйте новейшие поколения инстансов. Используйте управляемые сервисы — AWS эксплуатирует центры обработки данных эффективнее большинства организаций.
# Sustainability improvement areas:
# 1. Right-size instances (reduce idle energy use)
# 2. Use Graviton (ARM) instances: 60% less energy than x86
# 3. Use Spot instances: uses otherwise idle capacity
# 4. Use managed services: AWS optimises their utilisation
# 5. Use serverless: no idle servers
# 6. Move to S3/EFS instead of EC2 instance storage
# 7. Implement data lifecycle (don't store forever)AWS Graviton для Sustainability и затрат
Процессоры AWS Graviton (на базе ARM) обеспечивают до 60% более высокую энергоэффективность и на 20–40% лучшее соотношение цены и производительности по сравнению с инстансами x86. Инстансы Graviton3/4 (семейства c7g, m7g, r7g, t4g) доступны для большинства рабочих нагрузок EC2, Lambda и Fargate. Переход с x86 на Graviton одновременно улучшает Pillar Sustainability и Pillar Cost Optimisation: на одно вычисление требуется меньше ватт, а цены на инстансы ниже. Большинство рабочих нагрузок (Linux, приложения в контейнерах, JVM) можно перенести с минимальными изменениями.
# Compare: m5.large (x86) vs m7g.large (Graviton3)
# m5.large: $0.096/hr, 2 vCPU, 8 GB
# m7g.large: $0.0808/hr, 2 vCPU, 8 GB
# Savings: ~16% cheaper + 40% better performance
# Switch Lambda function to Graviton (arm64)
aws lambda update-function-configuration \
--function-name my-function \
--architectures arm64
# Lambda arm64 is 20% cheaper than x86
# Most Python, Node.js, Java functions work unchangedУстранение простаивающих ресурсов
Крупным источником неоправданных затрат и потерь энергии являются простаивающие ресурсы: инстансы EC2 с загрузкой CPU на уровне 1%, не подключённые тома EBS, неиспользуемые эластичные IP-адреса и забытые среды разработки и тестирования, работающие круглосуточно. Настройте расписание остановки и запуска для сред, не относящихся к PRODUCTION, с помощью правил EventBridge и автоматизации Systems Manager: останавливайте инстансы разработки в 18:00 и запускайте в 8:00. Используйте AWS Trusted Advisor и Cost Explorer для выявления простаивающих инстансов, неиспользуемых томов EBS и недоиспользуемых Reserved Instances.
# EventBridge + SSM to stop dev instances nights/weekends
aws events put-rule \
--name stop-dev-instances \
--schedule-expression 'cron(0 22 ? * MON-FRI *)'
aws events put-targets \
--rule stop-dev-instances \
--targets '[{
"Id": "StopDevInstances",
"Arn": "arn:aws:ssm:us-east-1::automation-definition/AWS-StopEC2Instance",
"RoleArn": "arn:aws:iam::123:role/EventBridgeRole",
"Input": "{\"InstanceId\":[\"i-dev1\",\"i-dev2\"]}"
}]'Жизненный цикл данных для Sustainability
Бессрочное хранение данных приводит к напрасному расходу энергии. Pillar Sustainability рекомендует внедрять политики жизненного цикла данных, чтобы автоматически удалять или архивировать данные, которые больше не нужны. Используйте правила S3 Lifecycle с датами истечения срока действия, чтобы удалять объекты после периода хранения. Используйте DynamoDB TTL для автоматического удаления старых записей. Используйте политики хранения CloudWatch Logs, чтобы удалять группы журналов через заданный период. Удаление ненужных данных снижает как затраты на хранение, так и энергию, необходимую для их хранения и охлаждения.
# DynamoDB TTL for session data
# Add ttl attribute to items (Unix epoch timestamp)
aws dynamodb update-time-to-live \
--table-name UserSessions \
--time-to-live-specification Enabled=true,AttributeName=expiresAt
# Item will be deleted automatically after expiresAt timestamp
# Example: {'userId': 'u1', 'expiresAt': 1750000000}
# CloudWatch Logs: set 30-day retention
aws logs put-retention-policy \
--log-group-name /aws/lambda/my-function \
--retention-in-days 30Cost Optimisation и другие Pillar
Cost Optimisation иногда вступает в противоречие с другими Pillar. Multi-AZ RDS удваивает затраты на базу данных, но требуется для Pillar Reliability. Репликация между регионами повышает надёжность, но увеличивает затраты на хранение и передачу данных. Активно-активная конфигурация в нескольких регионах снижает задержку (Pillar Performance Efficiency), но обходится в 2–3 раза дороже. Well-Architected Framework не утверждает, что всегда нужно выбирать самый дешёвый вариант, — он требует осознанно находить компромиссы между Pillar и документировать обоснование. На экзамене проверяется способность выбрать наиболее экономичное решение, которое при этом соответствует указанным требованиям.
# Cost vs reliability trade-off example:
# Single-AZ RDS: $100/month, no HA
# Multi-AZ RDS: $200/month, automated failover
# Decision: if database failure = $10,000/hour of revenue loss
# Even 1 event/year justifies Multi-AZ
# ($10,000 expected loss > $1,200/year extra cost)
# SAA-C03 exam approach:
# Meet the stated requirements FIRST
# Then choose the cheapest option that meets themБыстрая проверка
Проверьте понимание концепций AWS Solutions Architect (SAA-C03) из этого урока.
Итоги урока
В этом уроке Вы узнали, что Cost Optimisation объединяет оптимизацию размеров, модели закупок (Reserved/Savings Plans/Spot) и управление жизненным циклом S3, Sustainability сосредоточена на максимальном использовании ресурсов, применении инстансов Graviton и внедрении политик жизненного цикла данных, а компромиссы по затратам с другими Pillar следует выбирать осознанно, исходя из бизнес-требований. Теги затрат обеспечивают showback и chargeback между командами. Далее мы рассмотрим Well-Architected Tool и процесс проверки.
Часто задаваемые вопросы
Урок «Основы оптимизации затрат и устойчивого развития» бесплатный?
Да — полный текст урока «Основы оптимизации затрат и устойчивого развития» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс AWS Solutions Architect, подпишись на CoddyKit PRO. Курс AWS Solutions Architect содержит 4 уроков всего.
Чему я научусь в уроке «Основы оптимизации затрат и устойчивого развития»?
Учитывайте расходы, подбирайте размер ресурсов и модель ценообразования; уменьшайте инфраструктурный след и повышайте энергоэффективность для устойчивого развития. Ты практикуешь AWS Solutions Architect с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать AWS Solutions Architect?
Предыдущий опыт не требуется. AWS Solutions Architect на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.
Сколько времени занимает урок «Основы оптимизации затрат и устойчивого развития»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке AWS Solutions Architect?
Да. Каждый урок AWS Solutions Architect включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Основы операционного совершенства и безопасности
- Основы надёжности и эффективности производительности
- Основы оптимизации затрат и устойчивого развития
- Well-Architected Tool и процесс проверки