0Pricing
Cloud & IT Cert Prep · Урок

Основы надёжности и эффективности производительности

Проектируйте автоматическое восстановление, горизонтальное масштабирование и управление ресурсами; выбирайте подходящие типы ресурсов и контролируйте их, чтобы поддерживать производительность со временем.

«Основы надёжности и эффективности производительности» — бесплатный урок Cloud & IT Cert Prep на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cloud & IT Cert Prep, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cloud & IT Cert Prep содержит 4 уроков всего.

Обзор пиллара Reliability

Пиллар Reliability фреймворка Well-Architected гарантирует, что рабочая нагрузка правильно и стабильно выполняет свои функции тогда, когда это требуется. Reliability охватывает три области: основы (ограничения сервисов, топология сети), архитектура рабочей нагрузки (распределённые системы, отказ от единых точек отказа) и управление изменениями и сбоями (мониторинг, масштабирование, восстановление после сбоев). Цель — создавать системы, которые автоматически восстанавливаются после нарушений работы инфраструктуры или сервисов.

# Reliability design principles:
# 1. Automatically recover from failure
# 2. Test recovery procedures
# 3. Scale horizontally to increase availability
# 4. Stop guessing capacity (use auto scaling)
# 5. Manage change in automation (IaC + CI/CD)

# Key AWS services for reliability:
# - Auto Scaling Groups
# - Elastic Load Balancing
# - Route 53 health checks
# - AWS Backup

Ограничения и квоты сервисов

AWS устанавливает квоты сервисов (ранее называвшиеся ограничениями) для ресурсов, чтобы защищать всех клиентов. Например, существуют квоты на количество экземпляров EC2 в регионе по умолчанию, квоты VPC и ограничения на количество одновременных выполнений Lambda. Если рабочая нагрузка неожиданно достигает квоты, запросы будут ограничиваться или отклоняться, что приведёт к сбоям Reliability. Используйте консоль Service Quotas или CLI, чтобы просматривать текущие ограничения и запрашивать их увеличение заранее. Отслеживайте показатели использования, чтобы обнаружить приближение к ограничениям до того, как это повлияет на доступность.

# List service quotas for EC2
aws service-quotas list-service-quotas \
  --service-code ec2 \
  --query 'Quotas[?QuotaName==`Running On-Demand Standard (A, C, D, H, I, M, R, T, Z) instances`]'

# Request quota increase
aws service-quotas request-service-quota-increase \
  --service-code ec2 \
  --quota-code L-1216C47A \
  --desired-value 500

Автоматическое восстановление после сбоя

Пиллар Reliability подчёркивает необходимость автоматического восстановления без вмешательства человека. AWS предоставляет несколько механизмов автоматического восстановления: EC2 Auto Recovery автоматически восстанавливает экземпляр на том же оборудовании или перемещает его на исправное оборудование при сбое базовых проверок. Проверки работоспособности ASG завершают работу неисправных экземпляров и запускают им замену. RDS Multi-AZ автоматически переключается на резервный экземпляр. Проектируйте архитектуру так, чтобы большинство сценариев сбоев запускали автоматические действия по восстановлению, заданные в оповещениях CloudWatch.

# CloudWatch alarm to auto-recover a specific EC2 instance
aws cloudwatch put-metric-alarm \
  --alarm-name EC2-auto-recover \
  --metrics '[{"Id":"m1","MetricStat":{"Metric":{"Namespace":"AWS/EC2","MetricName":"StatusCheckFailed_System","Dimensions":[{"Name":"InstanceId","Value":"i-12345"}]},"Period":60,"Stat":"Maximum"}}]' \
  --comparison-operator GreaterThanThreshold \
  --threshold 0 \
  --evaluation-periods 2 \
  --alarm-actions 'arn:aws:automate:us-east-1:ec2:recover'

Горизонтальное масштабирование для Reliability

Пиллар Reliability рекомендует горизонтальное масштабирование (добавление большего количества небольших экземпляров), а не вертикальное (переход к более крупным экземплярам) для повышения надёжности. Один большой экземпляр является единой точкой отказа. Если за балансировщиком нагрузки работает много небольших экземпляров, отказ любого отдельного экземпляра оказывает минимальное влияние. AWS Auto Scaling автоматически регулирует размер группы в соответствии со спросом, обеспечивая достаточную вычислительную ёмкость и предотвращая оплату простаивающих ресурсов в периоды низкой нагрузки.

# Horizontal scaling: 10 t3.medium vs 1 r5.4xlarge
# 10 t3.medium:
#   - Failure of 1 = loss of 10% capacity
#   - ASG launches replacement automatically
#   - 9 instances absorb load during replacement

# 1 r5.4xlarge:
#   - Failure = 100% downtime until instance recovered
#   - Much higher RTO (new instance launch: 1-3 min)

# Prefer horizontal scaling for stateless tiers

Тестирование Reliability

Пиллар Reliability требует тестировать процедуры восстановления, а не предполагать, что они работают. Используйте AWS Fault Injection Simulator (FIS), чтобы контролируемым образом вносить сбои в систему: завершать работу случайных экземпляров EC2, ограничивать вызовы API и добавлять задержку в сети. Проводите такие эксперименты в рабочей среде (с предусмотренными мерами защиты), чтобы убедиться, что мониторинг обнаруживает сбои, автоматическое масштабирование реагирует, а восстановление завершается в пределах Вашего RTO. Непротестированные процедуры восстановления часто не выдерживают нагрузку реального инцидента.

# AWS FIS experiment: terminate random instance
aws fis create-experiment-template \
  --description 'Chaos: terminate 1 of 5 instances' \
  --targets '{"instanceTargets":{"resourceType":"aws:ec2:instance","selectionMode":"COUNT(1)","resourceTags":{"Env":"production"}}}' \
  --actions '{"terminateInstance":{"actionId":"aws:ec2:terminate-instances","targets":{"Instances":"instanceTargets"}}}' \
  --stop-conditions '[{"source":"aws:cloudwatch:alarm","value":"arn:aws:cloudwatch::123:alarm:high-error-rate"}]'

Обзор пиллара Performance Efficiency

Пиллар Performance Efficiency посвящён эффективному использованию вычислительных ресурсов для выполнения требований системы и поддержанию этой эффективности по мере изменения спроса и развития технологий. Основные принципы проектирования: сделайте передовые технологии доступными — используйте управляемые сервисы (RDS, SageMaker) вместо создания всего с нуля. Выходите на глобальный уровень за считаные минуты — развёртывайте ресурсы в нескольких регионах с помощью CloudFormation. Используйте бессерверные архитектуры — исключите управление инфраструктурой. Экспериментируйте чаще — тестируйте разные типы экземпляров и конфигурации.

# Performance Efficiency areas:
# Selection:   Right compute, storage, database, network
# Review:      Continuously evaluate new services
# Monitoring:  CloudWatch metrics guide decisions
# Trade-offs:  Consistency vs performance, latency vs cost

# Example: choosing between services
# RDS vs DynamoDB vs Aurora vs ElastiCache
# → depends on access patterns, consistency needs, scale

Выбор подходящих вычислительных ресурсов

Performance Efficiency начинается с выбора подходящего типа вычислительных ресурсов для рабочей нагрузки. EC2 предлагает десятки семейств экземпляров, оптимизированных для разных сценариев: c-series — для ресурсоёмких вычислений (кодирование видео, пакетная обработка), r-series — для ресурсоёмких операций с памятью (базы данных в памяти, кэширование), i-series — для ресурсоёмких операций с хранилищем (NoSQL, хранилища данных), p/g-series — для рабочих нагрузок на GPU (обучение моделей машинного обучения). Использование неподходящего типа экземпляра означает оплату неиспользуемой ёмкости или снижение производительности.

# AWS Compute Optimizer: get right-size recommendations
aws compute-optimizer get-ec2-instance-recommendations \
  --instance-arns arn:aws:ec2:us-east-1:123:instance/i-12345

# Output shows:
# - Current instance utilisation (CPU, memory, network)
# - Recommended instance type
# - Estimated monthly savings
# - Performance risk of changing

# Lambda: match memory to actual usage
# Use Lambda Power Tuning tool for memory optimisation

Кэширование для Performance Efficiency

Кэширование — фундаментальный приём повышения Performance Efficiency, снижающий задержку и нагрузку на базу данных. ElastiCache (Redis/Memcached) хранит результаты запросов к базе данных в памяти, обеспечивая доступ за миллисекунды. CloudFront кэширует HTTP-ответы в пограничных расположениях рядом с пользователями. Кэширование API Gateway снижает количество вызовов Lambda за счёт кэширования ответов API. DAX (DynamoDB Accelerator) добавляет перед DynamoDB внутриизменяемый кэш с доступом за микросекунды. Выбирайте подходящий уровень кэширования в зависимости от места возникновения узкого места — базы данных, API или доставки на периферии.

# DAX cluster for DynamoDB microsecond latency
aws dax create-cluster \
  --cluster-name my-dax \
  --node-type dax.r6g.large \
  --replication-factor 3 \
  --iam-role-arn arn:aws:iam::123:role/DAXRole \
  --subnet-group my-dax-subnet-group

# Application connects to DAX endpoint
# Cache hits: microseconds
# Cache misses: fetches from DynamoDB and caches result

Правильное хранилище для Performance

Выбор хранилища значительно влияет на производительность. io2 Block Express EBS обеспечивает до 256 000 IOPS для высокопроизводительных баз данных. gp3 используется по умолчанию для большинства рабочих нагрузок при меньшей стоимости. Хранилище экземпляра обеспечивает максимальное количество IOPS (NVMe) для временных данных. S3 масштабируется до тысяч запросов в секунду для объектного хранилища. EFS предоставляет общий доступ к файлам POSIX. Выбирайте хранилище с учётом характера операций ввода-вывода: последовательное чтение выигрывает от st1 (Throughput Optimised HDD), а для случайного ввода-вывода требуются тома SSD.

# EBS volume performance characteristics:
# gp3: 3,000-16,000 IOPS, 125-1,000 MB/s
# io2: 100-64,000 IOPS (up to 256k with Block Express)
# st1: 40-500 MB/s sequential throughput (HDD)
# sc1: 12-250 MB/s (cheapest, cold workloads)

# Create high-performance io2 volume
aws ec2 create-volume \
  --availability-zone us-east-1a \
  --volume-type io2 \
  --size 500 \
  --iops 50000

Мониторинг производительности и непрерывное улучшение

Performance Efficiency — это не разовое решение: необходимо Continuously отслеживать показатели производительности и пересматривать свой выбор по мере выпуска AWS новых сервисов. Используйте панели CloudWatch, чтобы отслеживать процентили задержки p50, p90 и p99 (а не только средние значения, которые скрывают задержки в хвосте распределения). Используйте трассировки X-Ray, чтобы находить самые медленные участки цепочки запросов. Настройте обнаружение аномалий CloudWatch для автоматического построения базовой линии и оповещения об аномальных отклонениях производительности. Регулярно просматривайте объявления AWS: новые типы экземпляров часто обеспечивают более высокую производительность при меньшей стоимости.

# CloudWatch: track API response latency percentiles
aws cloudwatch put-metric-alarm \
  --alarm-name 'API-P99-Latency' \
  --metric-name TargetResponseTime \
  --namespace AWS/ApplicationELB \
  --extended-statistic p99 \
  --dimensions Name=LoadBalancer,Value=app/my-alb/xxx \
  --period 60 \
  --evaluation-periods 5 \
  --threshold 2.0 \
  --comparison-operator GreaterThanThreshold

Компромиссы в Performance Efficiency

Для достижения Performance Efficiency иногда приходится идти на компромиссы с другими пилларами. Добавление кэша (ElastiCache) повышает производительность, но увеличивает сложность эксплуатации (компромисс с Operational Excellence) и стоимость (компромисс с Cost Optimisation). Использование DynamoDB вместо RDS повышает производительность при масштабировании, но требует переработки модели данных (затраты усилий в рамках Operational Excellence). Фреймворк Well-Architected признаёт наличие таких компромиссов и предлагает принимать их осознанно, документируя обоснование. В вопросах экзамена ищите вариант, который достигает целей по производительности с наименьшими эксплуатационными затратами.

# Common performance vs cost trade-offs:
# Cache:         +Performance, +Cost, +Complexity
# Read Replicas: +Read performance, +Cost
# SSD vs HDD:    +IOPS, +Cost
# Multi-region:  -Latency for users, +Cost, +Complexity

# Common performance vs consistency trade-offs:
# DynamoDB eventually consistent reads: +Throughput, -Consistency
# Aurora Reader endpoint: +Read scale, potential replication lag

Быстрая проверка

Проверьте, насколько хорошо Вы поняли концепции AWS Solutions Architect (SAA-C03) из этого урока.

Итоги урока

В этом уроке Вы узнали, что Reliability требует автоматического восстановления, горизонтального масштабирования и регулярного тестирования сбоев, Performance Efficiency требует выбора подходящих вычислительных ресурсов, хранилища и типа базы данных для каждой рабочей нагрузки, а кэширование на нескольких уровнях снижает задержку и нагрузку на базу данных. Оба пиллара требуют непрерывного мониторинга и готовности пересматривать архитектурные решения. Далее мы рассмотрим пиллары Cost Optimisation и Sustainability.

Часто задаваемые вопросы

Урок «Основы надёжности и эффективности производительности» бесплатный?

Да — полный текст урока «Основы надёжности и эффективности производительности» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cloud & IT Cert Prep, подпишись на CoddyKit PRO. Курс Cloud & IT Cert Prep содержит 4 уроков всего.

Чему я научусь в уроке «Основы надёжности и эффективности производительности»?

Проектируйте автоматическое восстановление, горизонтальное масштабирование и управление ресурсами; выбирайте подходящие типы ресурсов и контролируйте их, чтобы поддерживать производительность со врем… Ты практикуешь Cloud & IT Cert Prep с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Cloud & IT Cert Prep?

Предыдущий опыт не требуется. Cloud & IT Cert Prep на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.

Сколько времени занимает урок «Основы надёжности и эффективности производительности»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Cloud & IT Cert Prep?

Да. Каждый урок Cloud & IT Cert Prep включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Основы операционного совершенства и безопасности
  2. Основы надёжности и эффективности производительности
  3. Основы оптимизации затрат и устойчивого развития
  4. Well-Architected Tool и процесс проверки
← Назад к Cloud & IT Cert Prep