Сервіс недоступний (5xx / down)
Симптоми
Section titled “Симптоми”- Сайт повертає 5xx; API дає помилки; CMS не віддає контент; бот мовчить.
Спочатку
Section titled “Спочатку”- Який саме сервіс? Звір з Сервіси.
- Перевір observability stack: Grafana на DO + Telegram-logger чат (
TELEGRAM_LOG_CHAT_ID). - Cloudflare показує 5xx → джерело може бути upstream (origin). Не вини CF без перевірки AWS.
Per-service triage
Section titled “Per-service triage”Abitly Web (abitly.org)
Section titled “Abitly Web (abitly.org)”# prod ECSaws ecs describe-services --cluster abitly-prod-frontend --services abitly-prod-frontend \ --profile abitly --region eu-central-1 \ --query 'services[0].{desired:desiredCount,running:runningCount,pending:pendingCount,events:events[0:3]}'
# логи останніх 30 хвaws logs tail /ecs/abitly-prod-frontend --profile abitly --region eu-central-1 --since 30mALB health: aws elbv2 describe-target-health --target-group-arn <abitly-prod-shared frontend TG>.
aws ecs describe-services --cluster abitly-prod-backend --services abitly-prod-backend \ --profile abitly --region eu-central-1aws logs tail /ecs/abitly-prod-backend --profile abitly --region eu-central-1 --since 30mЧасті причини: Postgres недоступний → db-issues; Valkey OOM; Typesense впав.
aws ec2 describe-instance-status --instance-ids i-06c688bb89a71415f --profile abitly --region eu-central-1aws ssm start-session --target i-06c688bb89a71415f --profile abitly --region eu-central-1# на інстанції: journalctl -u strapi -n 200 / docker logs403 від Cloudflare → перевір ORIGIN_CERT (можливо прострочений) → domains-dns.
502 з Caddy + контейнер Strapi у рестарт-лупі (bad variable name в логах entrypoint) → incident-2026-05-28 (SSM-namespace collision з PEM-сертифікатами).
aws elasticbeanstalk describe-environment-health \ --environment-name studsearch-prod-env --attribute-names All \ --profile abitly --region eu-central-1mcp__railway__get-status projectId=6b3a4a23-54c8-41b9-8879-16f97a13779emcp__railway__get-logs serviceId=...Бот мовчить → перевірити webhook (getWebhookInfo) або 409 Conflict (paralel polling+webhook).
Швидкі дії
Section titled “Швидкі дії”| Причина | Дія |
|---|---|
| Crash після релізу | deploy-rollback |
| Впала ECS task | aws ecs update-service --force-new-deployment |
| ALB unhealthy targets | перевірити health-check path (зазвичай /health) + SG |
| Strapi 403 | оновити CF origin-cert у SSM |
| БД повільна | db-issues |
| Cloudflare 522/523 | upstream down — перевір AWS targets |
Ескалація
Section titled “Ескалація”- Власник всіх сервісів: @Vladbandurin (single-owner setup).
- Алерти інфраструктури → Slack workspace.
- Помилки коду → Telegram
TELEGRAM_LOG_CHAT_ID. - AWS Support: console → Support Center.
Профілактика
Section titled “Профілактика”- Health-checks на ALB / EB / Amplify.
- Алерти в Grafana → Telegram chat.
- Staging-перевірка перед prod-deploy.
- Розглянути HA для Typesense (зараз — один EC2).