HA и отказоустойчивость: определения и компромиссы
Разберитесь в различии между высокой доступностью (минимизация простоев) и отказоустойчивостью (нулевой простой благодаря избыточности) и узнайте, как стоимость увеличивается с каждым уровнем.
«HA и отказоустойчивость: определения и компромиссы» — бесплатный урок Cloud & IT Cert Prep на CoddyKit. Это урок 1 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cloud & IT Cert Prep, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cloud & IT Cert Prep содержит 4 уроков всего.
Обзор HA и отказоустойчивости
Высокая доступность (HA) и отказоустойчивость (FT) — две разные цели надёжности, которые архитекторы часто путают. Высокая доступность означает, что система испытывает минимальное время простоя: она может пережить сбои, но при восстановлении возможны кратковременные перебои. Отказоустойчивость означает, что система продолжает работать без какого-либо прерывания даже при отказе компонентов, поскольку полностью резервные пути мгновенно принимают нагрузку.
Определение процентов доступности
Доступность измеряется как процент времени работы за год. Доступность 99,9% (три девятки) означает примерно 8,7 часа простоя в год, тогда как 99,99% (четыре девятки) допускает только 52,6 минуты. 99,999% (пять девяток) допускает всего 5,26 минуты. Каждая дополнительная девятка обычно требует большей избыточности, автоматизации и затрат. На экзамене SAA-C03 часто проверяется умение определить, какая архитектура соответствует заданной цели доступности.
# Availability calculations
# 99.9% → 8.76 hours/year downtime
# 99.99% → 52.6 minutes/year downtime
# 99.999% → 5.26 minutes/year downtime
# Formula: downtime = (1 - availability) * 8760 hoursКак выглядит высокая доступность
Высокодоступная архитектура выдерживает отказ одного компонента, автоматически обнаруживая сбой и переключаясь на исправную замену в течение секунд или минут. Примеры: RDS Multi-AZ (автоматическое переключение на резервный экземпляр в другой AZ), Auto Scaling Groups, заменяющие завершённые экземпляры, и Elastic Load Balancers, перенаправляющие трафик от неисправных целевых ресурсов. Возникает кратковременное прерывание, но система восстанавливается без ручного вмешательства.
# RDS Multi-AZ failover: ~60-120 seconds downtime
# ASG replacement: ~1-3 minutes to launch new instance
# ELB unhealthy target removal: within health check intervalКак выглядит отказоустойчивость
Отказоустойчивая архитектура использует активную избыточность — несколько одинаковых компонентов одновременно обрабатывают запросы, поэтому при отказе одного из них остальные мгновенно принимают его нагрузку без простоя. Примеры: активно-активный ELB с несколькими экземплярами EC2, DynamoDB Global Tables, одновременно обслуживающие чтение и запись в нескольких регионах, и Aurora с несколькими репликами для чтения. Для отказоустойчивости требуется постоянно работающий дополнительный ресурс.
Компромисс между затратами на HA и FT
Отказоустойчивость значительно дороже высокой доступности, поскольку требует постоянно полностью подготовленной резервной ёмкости. Высокодоступный экземпляр RDS Multi-AZ удваивает стоимость базы данных из-за резервного экземпляра, который активируется только при сбое. Отказоустойчивая активно-активная конфигурация Aurora в нескольких регионах может стоить в четыре раза дороже, зато полностью устраняет простой при отказах региона. Архитекторам необходимо сопоставлять стоимость избыточности с бизнес-ценой простоя.
# Cost tiers (approximate multipliers):
# Single AZ, no redundancy: 1x cost
# Multi-AZ (HA): 2x cost
# Multi-Region active-passive: 2-3x cost
# Multi-Region active-active (FT): 3-4x costЦелевое время восстановления и HA
Целевое время восстановления (RTO) — это максимально допустимое время недоступности системы. Архитектуры с высокой доступностью предусматривают низкое RTO — обычно минуты — благодаря автоматическому переключению. Отказоустойчивые архитектуры предусматривают почти нулевое RTO. При проектировании HA необходимо выбирать сервисы и конфигурации, гарантирующие восстановление в пределах заданного бюджета RTO. Например, RDS Multi-AZ обеспечивает RTO примерно 60–120 секунд, что подходит для многих требований высокой доступности.
Единичные точки отказа (SPOF)
Единичная точка отказа (SPOF) — это любой компонент, отказ которого приводит к отказу всей системы. К распространённым SPOF относятся один экземпляр EC2 без ASG, база данных RDS в одной AZ, один шлюз NAT или одна зона доступности. Устранение SPOF — первый шаг к обеспечению HA и FT. На экзамене SAA-C03 часто проверяется умение находить и устранять SPOF на заданных архитектурных схемах.
# Common SPOFs to eliminate:
# - Single EC2 instance → ASG + ALB
# - Single-AZ RDS → Multi-AZ RDS
# - Single NAT Gateway → NAT Gateway per AZ
# - Single AZ subnets → Subnets in 2+ AZs
# - Hardcoded IP in app → DNS + health checksСервисы с состоянием и без состояния
Обеспечить HA или FT гораздо проще для сервисов без состояния (например, веб-серверов или функций Lambda), поскольку любой экземпляр может обработать любой запрос. Сервисы с состоянием (базы данных, кэши, файловые системы) устроены сложнее: необходимо синхронизировать состояние между репликами, учитывать задержку репликации и обеспечивать согласованность при переключении. Такие сервисы AWS, как EFS (общая файловая система), ElastiCache с группами репликации и Aurora (общее хранилище), разработаны для упрощения обеспечения HA сервисов с состоянием.
Шаблоны проектирования HA в AWS
К распространённым шаблонам HA в AWS относятся: 1) балансировка нагрузки между AZ — распределение экземпляров EC2 по AZ за ALB; 2) реплики для чтения — разгрузка трафика чтения и повышение реплики до основной при DR; 3) S3 для ресурсов без состояния — S3 изначально обеспечивает HA с надёжностью 11 девяток; 4) Global Accelerator — статические IP-адреса Anycast, направляющие трафик к исправным конечным точкам в разных регионах. Каждый шаблон представляет собой компромисс между стоимостью и требуемым уровнем доступности.
# ALB cross-zone load balancing example
aws elbv2 modify-load-balancer-attributes \
--load-balancer-arn <ALB-ARN> \
--attributes Key=load_balancing.cross_zone.enabled,Value=trueШаблоны проектирования FT в AWS
Шаблоны отказоустойчивости требуют активной избыточности повсюду. Основные шаблоны FT: DynamoDB изначально отказоустойчив — он реплицирует данные в трёх AZ, поэтому переключение не требуется. S3 имеет встроенную FT. Aurora Multi-Master (теперь многозапись Aurora Serverless v2) позволяет одновременно выполнять запись в нескольких AZ. Kinesis по умолчанию хранит данные в нескольких AZ. Выбор управляемых сервисов со встроенной FT — наиболее экономичный путь к архитектурам без простоев.
Проверка допущений о HA и FT
Качество проектирования HA или FT определяется качеством тестирования. AWS рекомендует использовать AWS Fault Injection Simulator (FIS) для проведения контролируемых экспериментов: завершать экземпляры, ограничивать пропускную способность API или внедрять сетевые сбои. Необходимо убедиться, что переключение действительно завершается в пределах RTO, что потери данных не превышают RPO и что оповещения срабатывают правильно. Регулярные дни отказов и упражнения по хаос-инжинирингу выявляют пробелы в предположениях об отказоустойчивости до того, как они приведут к инцидентам в рабочей среде.
# AWS FIS experiment to terminate EC2 instances
aws fis create-experiment-template \
--description 'Terminate 30% of ASG instances' \
--targets '{"instanceTargets":{"resourceType":"aws:ec2:instance","selectionMode":"PERCENT(30)"}}' \
--actions '{"terminateInstances":{"actionId":"aws:ec2:terminate-instances","targets":{"Instances":"instanceTargets"}}}'Быстрая проверка
Проверьте, насколько хорошо Вы усвоили концепции AWS Solutions Architect (SAA-C03) из этого урока.
Итоги урока
В этом уроке Вы узнали, что высокая доступность сокращает время простоя благодаря автоматическому восстановлению (RTO в минутах), отказоустойчивость устраняет простой благодаря активной избыточности (нулевое RTO), а стоимость значительно возрастает с каждым уровнем устойчивости. Устранение единичных точек отказа — основа обоих подходов. Далее мы рассмотрим шаблоны Multi-AZ для сервисов с состоянием.
Часто задаваемые вопросы
Урок «HA и отказоустойчивость: определения и компромиссы» бесплатный?
Да — полный текст урока «HA и отказоустойчивость: определения и компромиссы» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cloud & IT Cert Prep, подпишись на CoddyKit PRO. Курс Cloud & IT Cert Prep содержит 4 уроков всего.
Чему я научусь в уроке «HA и отказоустойчивость: определения и компромиссы»?
Разберитесь в различии между высокой доступностью (минимизация простоев) и отказоустойчивостью (нулевой простой благодаря избыточности) и узнайте, как стоимость увеличивается с каждым уровнем. Ты практикуешь Cloud & IT Cert Prep с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Cloud & IT Cert Prep?
Предыдущий опыт не требуется. Cloud & IT Cert Prep на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 4.
Сколько времени занимает урок «HA и отказоустойчивость: определения и компромиссы»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Cloud & IT Cert Prep?
Да. Каждый урок Cloud & IT Cert Prep включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- HA и отказоустойчивость: определения и компромиссы
- Шаблоны Multi-AZ для сервисов с состоянием
- Активный и пассивный режимы в нескольких регионах
- Проверки состояния, автоматические выключатели и логика повторных попыток