Сжатый справочник архитектурных шаблонов, проверяемых на экзамене SOA-C03. Читайте сверху вниз или переходите к нужному разделу.
Мониторинг, логирование, анализ, устранение неполадок и оптимизация производительности
Собирать метрики памяти, диска и процессов из парка EC2. Стандартные метрики CloudWatch их не включают.
Установите агент CloudWatch через SSM Distributor или команду Run `AmazonCloudWatch-ManageAgent`. Отправьте конфигурацию агента из Parameter Store.
Почему: Метрики памяти и диска являются метриками гостевой ОС - гипервизор их не видит. Стандартные метрики CW - это только CPU/сеть/дисковый ввод-вывод на уровне EBS.
Приложению необходимо публиковать бизнес-KPI (например, заказы/мин) в CloudWatch.
API `PutMetricData` с пользовательским пространством имен + измерениями. Для большого объема используйте Embedded Metric Format (EMF) - записывайте структурированный JSON в логи, а CW автоматически извлекает метрики.
Снизить стоимость пользовательских метрик с высокой кардинальностью.
Embedded Metric Format (EMF). Запишите структурированное событие один раз; CW извлекает из него метрики. Один лог + одна метрика = дешевле, чем отдельные вызовы `PutMetricData` для каждой комбинации измерений.
Оповещать дежурного только тогда, когда И высокий процент ошибок, И низкий трафик - а не когда срабатывает что-то одно.
Композитный сигнал с выражением правила `ALARM(errors) AND ALARM(low_traffic)`. Базовые сигналы по-прежнему срабатывают индивидуально, но только композитный отправляет уведомления в SNS.
Срок хранения группы логов по умолчанию установлен как "Никогда не истекает" - счет растет.
Установите срок хранения для каждой группы логов (от 1 дня до 10 лет). Примените через `aws logs put-retention-policy` или правило AWS Config, которое автоматически устраняет новые группы.
Централизовать логи из 50 аккаунтов в один аккаунт безопасности.
Фильтр подписки на каждой исходной группе логов → Kinesis Data Streams или Firehose в центральном аккаунте. CloudWatch cross-account observability для метрик + трассировок.
Поделиться операционной панелью с подрядчиком без доступа IAM.
CloudWatch Dashboard Sharing - публичная ссылка для общего доступа (с аутентификацией, предоставляемой Cognito) или анонимная (привязана к конкретной панели).
Запустить Lambda, когда инстанс EC2 переходит в состояние `stopped`.
Правило EventBridge с шаблоном события `{"source":["aws.ec2"],"detail-type":["EC2 Instance State-change Notification"],"detail":{"state":["stopped"]}}` → целевая Lambda.
Правильно подобрать размер парка EC2 без ручной проверки CloudWatch на каждом инстансе.
AWS Compute Optimizer - анализирует метрики CW + данные о памяти (с агентом) и рекомендует изменения типа инстансов. Охватывает EC2, ASG, EBS, Lambda, ECS Fargate.
Выявлять возможности экономии средств и риски безопасности без написания пользовательских скриптов.
AWS Trusted Advisor. Проверки стоимости / производительности / безопасности / отказоустойчивости / лимитов сервисов. Полный набор проверок требует подписки Business или Enterprise Support.
Необходимо увеличить квоту vCPU EC2 в регионе для предстоящего запуска.
Консоль Service Quotas - запросить увеличение квоты. Или использовать API Service Quotas для автоматизации. Некоторые квоты одобряются автоматически; другие проходят через Support.
Выявить неожиданные всплески затрат до получения ежемесячного счета.
AWS Cost Anomaly Detection - на основе машинного обучения; настройте мониторы для каждого сервиса / связанного аккаунта / категории затрат. Оповещения через SNS или email.
Отключить соединения + сбросить логи до того, как ASG завершит работу инстанса.
Хук жизненного цикла `EC2_INSTANCE_TERMINATING`. Инстанс переходит в `Terminating:Wait`; SSM doc запускает скрипт отключения; после завершения выдает действие `CONTINUE`.
Автоматически масштабировать для поддержания среднего CPU около 60%.
Политика масштабирования с отслеживанием цели с `ASGAverageCPUUtilization` = 60. ASG автоматически создает пошаговые сигналы.
Почему: Проще, чем пошаговое масштабирование. Лучше всего для симметричных метрик. Пошаговое масштабирование предназначено для детальных правил увеличения и уменьшения масштаба.
Загрузка инстанса занимает 8 минут; масштабирование слишком медленное.
Warm pool ASG - предварительно инициализированные остановленные/гибернированные инстансы. При масштабировании переход из Stopped → InService вместо "холодного" запуска.
Запустить ASG преимущественно на Spot для экономии средств, но с базовым уровнем On-Demand для стабильности.
Политика Mixed Instances - шаблон запуска + базовая емкость (On-Demand) + процент сверх базы на Spot. Используйте несколько типов инстансов для диверсификации Spot.
Используйте Launch Templates. AWS прекратила поддержку Launch Configurations для новых ASG; только LT поддерживают новые функции (warm pool, mixed instances, применение IMDSv2, EBS gp3 и т. д.).
База данных RDS должна пережить сбой AZ с минимальным временем простоя.
Развертывание Multi-AZ. Синхронный режим ожидания в другой AZ; отработка отказа, вызванная сбоем хоста/хранилища или сбоем AZ. Конечная точка остается той же.
Почему: Multi-AZ предназначен для высокой доступности, а не для масштабирования чтения. Для масштабирования чтения добавьте реплику для чтения.
Централизовать резервное копирование EFS, RDS, EBS, DynamoDB, FSx по одному расписанию + политике хранения.
AWS Backup - план резервного копирования с правилами (частота, срок хранения, жизненный цикл до холодного хранилища), выбор резервных копий (ARN ресурса или фильтр по тегу).
Соответствие нормативным требованиям к неизменяемым резервным копиям (WORM).
AWS Backup Vault Lock с режимом соответствия. После принудительного применения резервные копии не могут быть удалены до истечения срока хранения - даже root пользователем.
Активно-пассивное аварийное восстановление: Route53 должен отправлять трафик в резервный регион при сбое основного.
Политика маршрутизации Route 53 failover с проверками работоспособности основной конечной точки. При сбое проверки работоспособности DNS разрешается в резервную.
Обнаружение сбоя конечной точки быстрее, чем стандартные 30 секунд.
Проверка работоспособности Route 53 с быстрым интервалом (10 с) и порогом 3 сбоя. Объедините несколько проверок работоспособности с помощью расчетных проверок.
Долгоживущие соединения разрываются, когда ALB удаляет цель во время развертывания.
Задержка отмены регистрации целевой группы (по умолчанию 300 с, увеличьте по мере необходимости). Новые запросы немедленно прекращают поступать; текущие соединения завершаются до истечения задержки.
Переключитесь в режим Elastic Throughput (автоматически масштабируется). Или Provisioned Throughput для предсказуемых нагрузок. Режим Bursting по умолчанию основан на кредитах и исчерпывается при длительной нагрузке.
Реплицировать объекты S3 во второй регион для соответствия требованиям + DR.
S3 Cross-Region Replication (CRR). Исходные + целевые бакеты, роль IAM, правило репликации. Используйте Replication Time Control (RTC) для SLA в 15 минут.
Защитить объекты от случайного или вредоносного удаления.
Включите Versioning + MFA Delete на бакете. MFA Delete требует корневых учетных данных + кода MFA для окончательного удаления версий или отключения версионирования.
Приложению TCP/UDP требуются статические IP-адреса и быстрое переключение между регионами.
AWS Global Accelerator - 2 Anycast IP, которые маршрутизируются к ближайшей работоспособной региональной конечной точке через магистраль AWS. Переключение менее чем за 30 секунд.
Почему: Лучше, чем Route 53 failover для не-HTTP трафика; клиенты сохраняют тот же IP.
Посмотреть, что именно CloudFormation изменит, прежде чем применять изменения шаблона.
Сначала создайте набор изменений; просмотрите предложенные изменения; выполните только если это безопасно. Наборы изменений поддерживают вложенные стеки и перекрестные ссылки на стеки.
Предотвратить случайное обновление критического ресурса (например, производственной RDS) внутри стека.
Политика стека CloudFormation - документ в стиле IAM, разрешающий или запрещающий `Update:*` для определенных логических идентификаторов ресурсов. Применяется к стеку, отдельно от IAM.
Автоматический откат стека, если после развертывания срабатывают сигналы CloudWatch.
Конфигурация отката CloudFormation - список сигналов CW + время мониторинга. Если какой-либо сигнал срабатывает в течение окна, стек автоматически откатывается.
Группа развертывания CodeDeploy blue/green - выделяет новый ASG, регистрирует его в целевой группе ALB, ждет проверки работоспособности, переключает трафик, завершает старый.
Конвейер в аккаунте инструментов развертывается в аккаунты разработки/тестирования/производства.
Межаккаунтный CodePipeline - этап развертывания использует межаккаунтную роль из целевого аккаунта. Ключ KMS в аккаунте инструментов совместно используется с целевым аккаунтом.
Разрешить командам разработчиков самостоятельно предоставлять одобренную инфраструктуру (например, VPC, S3 bucket) без предоставления полного доступа IAM.
AWS Service Catalog - администратор публикует продукты (шаблоны CFN), пользователи запускают их через разрешение IAM на запуск роли продукта, а не на базовые ресурсы.
Обеспечить наличие тегов `Environment` и `CostCenter` для всех ресурсов в масштабах организации.
Политики тегов AWS Organizations. Определите разрешенные ключи тегов + значения; несоответствующая тегировка выявляется в Resource Groups Tag Editor + Config.
OpsWorks Stacks прекращает поддержку. Мигрируйте на AWS Systems Manager + нативные Chef/Puppet на EC2, или преобразуйте в ECS/EKS, или перестройте с помощью SSM Automation + CFN.
Выбрать между вложенными стеками и перекрестными ссылками на стеки.
Вложенные стеки: тесно связаны, жизненный цикл управляется вместе (одно обновление). Перекрестные ссылки `Export`/`ImportValue`: слабо связаны, независимые жизненные циклы, экспорты неизменяемы во время импорта.
Определить пользователей IAM с ключами доступа старше 90 дней.
Сгенерировать отчет о учетных данных (`generate-credential-report` + `get-credential-report`). CSV с последним использованием + возрастом ключа для каждого пользователя. Объединить с Access Analyzer для проверки принципа наименьших привилегий.
Найти роли IAM, бакеты S3, ключи KMS, доступные извне аккаунта / организации.
IAM Access Analyzer - сканирование зоны доверия сообщает о находках внешнего доступа. Анализатор внешнего доступа бесплатен; анализатор неиспользуемого доступа платный.
Урезать избыточно разрешенные политики IAM - удалить сервисы, которые принципал никогда не использовал.
Информация о последнем доступе IAM для каждой роли/пользователя. Перечисляет последнее использование на уровне сервиса + (для некоторых сервисов) на уровне действия. Удалите неиспользуемые разрешения.
Аудит всех вызовов API во всех аккаунтах в организации с централизованным хранилищем.
Организационный след в управляющем или делегированном административном аккаунте. Единый бакет S3; охватывает все текущие + будущие аккаунты-члены; не может быть отключен членами.
Записывать каждое чтение объекта S3 в чувствительном бакете.
Включите события данных CloudTrail для S3 (для каждого бакета или для всех). Стандартные трейлы фиксируют только события управления; события данных оплачиваются отдельно.
Обнаружение скомпрометированных учетных данных, сканирования портов, крипто-майнинга, аномальной активности API.
Включите GuardDuty в каждом регионе. Делегированный администратор в аккаунте безопасности агрегирует обнаруженные данные по всей организации. Правило EventBridge → SNS для высокой серьезности.
Ротация ключей шифрования KMS без повторного шифрования данных.
Включить автоматическую ротацию ключей на управляемых клиентом CMK (ежегодно). KMS сохраняет старый материал ключа для расшифровки существующих шифротекстов; новые шифрования используют последний материал.
AWS Config Conformance Pack - набор правил Config + действия по исправлению. Развертывание через Config во все аккаунты через агрегатор; на уровне организации через управляющий аккаунт.
Блокировка SSRF-атак, которые считывают метаданные инстанса EC2.
Требовать IMDSv2 (`HttpTokens=required`) на каждом инстансе. На основе токенов; блокирует неаутентифицированные SSRF-чтения учетных данных роли инстанса.
AWS Audit Manager - фреймворки связывают средства контроля с источниками доказательств (Config, CloudTrail, Security Hub). Автоматически собирает + компилирует отчеты, готовые для оценщика.
Расследовать подозрения на боковое перемещение трафика между подсетями.
VPC Flow Logs в CloudWatch Logs / S3 / Firehose. Пользовательский формат с `pkt-srcaddr` + `pkt-dstaddr` показывает фактический src/dst пакета (в отличие от ENI src/dst).
Определить, почему задача ECS не может достичь RDS - SG, NACL, таблица маршрутизации или NAT?
VPC Reachability Analyzer - от ENI источника до ENI назначения; сообщает о доступности/блокировке + какой компонент блокирует (например, правило SG для входящего трафика).
Найти все пути из интернета к подсети базы данных в масштабах организации.
Network Access Analyzer с Network Access Scope (например, `Source: internet, Destination: db-subnet-tag`). Возвращает соответствующие сетевые пути для просмотра.
Частное подключение из VPC к большинству других сервисов AWS (KMS, SSM, ECR и т. д.).
Interface VPC endpoint (PowerLink). ENI в вашей подсети, тарифицируется за AZ + за ГБ. Используйте политики конечных точек для ограничения доступа к конкретным ресурсам.
Плата за обработку данных NAT Gateway доминирует в счете.
Переместите трафик S3/DynamoDB на шлюзовые конечные точки (бесплатно). Переместите трафик других сервисов AWS на интерфейсные конечные точки. Для меж-VPC используйте Transit Gateway / VPC peering вместо маршрутизации через NAT.
40 VPCs требуется связь "любой-с-любым" без N×N пиринга.
Transit Gateway в качестве хаба. VPC подключаются к TGW; таблицы маршрутизации контролируют, какие VPC могут взаимодействовать. Один управляемый хаб против O(N²) пиринговых соединений.
Максимизировать коэффициент попадания в кэш для в основном статического контента.
Установите `Cache-Control: max-age=...` в ответах Origin; настройте CloudFront для пересылки только необходимых ключей кэша (избегайте пересылки всех заголовков/куки/строк запроса, что ухудшает эффективность кэша).
CloudFront перед S3 - блокировать прямой доступ к S3.
Origin Access Control (OAC). Заменяет устаревший Origin Access Identity (OAI) - поддерживает SigV4, бакеты, зашифрованные KMS, все регионы. Политика бакета запрещает принципалы, не относящиеся к OAC.
Блокировать SQL-инъекции + ограничивать скорость агрессивных клиентов на ALB.
AWS WAFv2 web ACL: управляемая AWS группа правил `AWSManagedRulesSQLiRuleSet` + правило, основанное на скорости (например, 2000 запросов / 5 минут на IP). Привязка к ALB / API Gateway / CloudFront / AppSync.
Смягчить продолжительные DDoS-атаки уровня 7 с гарантией защиты от затрат.
AWS Shield Advanced - проактивное взаимодействие, обнаружение DDoS-атак на уровне приложения, круглосуточный доступ к SRT, возмещение затрат на всплески масштабирования во время атаки. Активировать на Route 53 / CloudFront / ALB / EIP / Global Accelerator.
Централизованно управлять политиками WAF / Shield / SG / Network Firewall во всех аккаунтах организации.
AWS Firewall Manager (делегированный администратор). Политики автоматически применяются к аккаунтам/ресурсам в области действия; сообщает о несоответствиях.
Site-to-Site VPN в качестве резервного канала через интернет. BGP выбирает DX как предпочтительный (более низкий MED / более короткий AS-PATH); автоматически переключается на VPN.