Обнаружьте ошибки сайта и подтвердите восстановление

AWSBeginner
Практиковаться сейчас

Введение

Создайте alarm запросов, опубликуйте неверный профиль, затем восстановите сайт и состояние OK.

Сначала выполните предыдущие работы портфолио. Среда предоставляет собственные ресурсы и необходимые возможности прежних этапов. Переносите знания, а не экземпляры, файлы или учётные данные.

Связь с сертификацией

Сертификация Задачи Практика
AWS Certified Cloud Practitioner (CLF-C02) Task 3.8 Наблюдать сбой и восстановление через метрики, alarms и журналы.

Обзор

Создайте alarm запросов, опубликуйте неверный профиль, затем восстановите сайт и состояние OK.

Настройте alarm ошибок

На этом шаге вы будете наблюдать реальные запросы. Откройте здоровый сайт. Метрика — значение во времени, namespace объединяет, dimensions обозначают приложение. Errors в LabEx/Portfolio, Application=portfolio, получает 1 при ошибке, 0 при успехе. Alarm сравнивает с порогом, но не исправляет сайт. Errors в этой работе измеряет только запросы страницы /website. Изображения и другие файлы создают отдельные события логов.

Перейдите в проект.

cd /home/labex/project

Загрузите и покажите экземпляр.

source website.env
echo "$INSTANCE_ID"

Прочитайте Sum, Period=10, EvaluationPeriods=1 и GreaterThanThreshold с порогом 0. missing не считает отсутствие данных здоровым трафиком. Подготовлена собственная метрика с секундным разрешением; уведомления не настроены.

cat website-alarm.json

Создайте alarm из файла.

aws cloudwatch put-metric-alarm --cli-input-json file://website-alarm.json

Прочитайте состояние.

aws cloudwatch describe-alarms --alarm-names portfolio-errors

INSUFFICIENT_DATA может означать, что ещё нет достаточно оценённых данных. AWS View показывает то же состояние; не задавайте его вручную.

Наблюдайте неудачную публикацию

На этом шаге вы воспроизведёте неверный JSON, не изменяя сеть или разрешения.

Прочитайте повреждённый профиль.

cat profile-broken.json

Передайте его SCP по тому же пути.

scp -F ssh_config profile-broken.json ubuntu@"$PUBLIC_IP":/home/ubuntu/portfolio/profile.json

Обновите: Website unavailable, EC2 остаётся running. Найдите path=/website status=503 и свяжите с последней публикацией. Шаблон задаёт точную фразу: внешние одинарные кавычки сохраняют внутренние двойные кавычки.

aws logs filter-log-events --log-group-name "$LOG_GROUP" --filter-pattern '"status=503"'

Дождитесь десятисекундного периода, повторите неудачный запрос при необходимости и прочитайте alarm.

aws cloudwatch describe-alarms --alarm-names portfolio-errors

Подтвердите ALARM. Если данных мало, создайте новый реальный запрос и дождитесь оценки. Старый журнал — не свежая метрика.

Реальный контрольный пример лаборатории; ваши идентификаторы могут отличаться.

Восстановите сайт и проверьте результат

На этом шаге вы вернёте правильный профиль и проверите приложение вместе с alarm.

Прочитайте три правильных поля известного файла.

cat profile-working.json

Опубликуйте по тому же пути.

scp -F ssh_config profile-working.json ubuntu@"$PUBLIC_IP":/home/ubuntu/portfolio/profile.json

Обновите для Alex Morgan и изображения S3, затем найдите новый path=/website status=200. Шаблон задаёт точную фразу: внешние одинарные кавычки сохраняют внутренние двойные кавычки.

aws logs filter-log-events --log-group-name "$LOG_GROUP" --filter-pattern '"status=200"'

Дайте здоровому трафику новый период, повторите запросы при необходимости и проверьте alarm.

aws cloudwatch describe-alarms --alarm-names portfolio-errors

Подтвердите OK. Старые 503 сохраняются. Без запросов missing может вернуть INSUFFICIENT_DATA, что отличается от доказанного здорового трафика; сохраняйте успешные запросы свежими во время проверки.

Реальный контрольный пример лаборатории; ваши идентификаторы могут отличаться.

Удалите нагрузку и мониторинг

На этом шаге вы очистите ресурсы после подтверждения восстановления.

Завершите экземпляр.

aws ec2 terminate-instances --instance-ids "$INSTANCE_ID"

Дождитесь terminated.

aws ec2 wait instance-terminated --instance-ids "$INSTANCE_ID"

Удалите только portfolio-errors.

aws cloudwatch delete-alarms --alarm-names portfolio-errors

Удалите группу журналов упражнения.

aws logs delete-log-group --log-group-name "$LOG_GROUP"

Сохраните S3, роль, сеть и контрольные события. Удаление alarm не удаляет метрики; завершённое приложение не создаёт новые запросы. Продолжите AWS Resource Management for Beginners.

Резюме

Вы увидели 503 и ALARM, восстановили профиль и подтвердили 200 и OK перед очисткой.

Официальные источники: CloudWatch alarms, high-resolution custom metrics.