Бази даних та сховища
Postgres
Section titled “Postgres”| Інстанція | Engine | Class | Хто використовує | Призначення |
|---|---|---|---|---|
studsearch-prod | Postgres 17.9 | db.t4g.small (20 GB) | Abitly API · Abitly Strapi · Studsearch backend | 🚨 SHARED prod-інстанція — окремі схеми на сервіс |
abitly-dev-pg | Postgres 17.9 | db.t4g.micro (30 GB) | Abitly API dev | Dev environment |
Endpoint і назви shared інстанції:
host: studsearch-prod.cnugmkgsgbb0.eu-central-1.rds.amazonaws.comdb name: abitly_prod_dbСхеми у DB abitly_prod_db:
| Схема | Власник-сервіс | SSM-параметр |
|---|---|---|
abitly | Abitly API | /abitly/prod/backend/DB_SCHEMA |
public | Abitly Strapi | /abitly/prod/strapi/DATABASE_SCHEMA |
studsearch | Studsearch backend | /studsearch/prod/db/schema |
⚠️ Strapi у public — за замовчуванням Postgres створює об’єкти там. DROP SCHEMA public CASCADE зруйнує Strapi. У runbook → db-issues явно вписано.
Cache / queue — Valkey (не Redis)
Section titled “Cache / queue — Valkey (не Redis)”| Інстанція | Engine | Призначення |
|---|---|---|
abitly-prod-cache | Valkey 8.0.1, cache.t4g.small | Abitly API: BullMQ-черги + cache + rate-limit |
abitly-dev-cache | Valkey 8.0.1, cache.t4g.micro | dev |
Wire-протокол сумісний з Redis 7.4, але це Valkey (форк Redis після ліцензійного конфлікту). У клієнтів (BullMQ, ioredis) додаткових налаштувань не потрібно, але документація — на valkey.io.
Search engine — Typesense
Section titled “Search engine — Typesense”| Інстанція | Хост | Хто використовує |
|---|---|---|
abitly-shared-typesense (EC2 t4g.small) | SSM TYPESENSE_HOST/PORT/PROTOCOL/API_KEY (різні значення dev/prod) | Abitly API (повнотекстовий пошук ЗВО/спеціальностей) |
⚠️ Одна інстанція ділиться між dev і prod трафіком (Abitly API перемикає SEARCH_ENGINE).
Object storage — S3
Section titled “Object storage — S3”| Бакет | Призначення |
|---|---|
abitly-prod-strapi-media | медіа Strapi |
abitly-events-dev | Iceberg/Parquet data lake (analytics) |
abitly-athena-results-dev | Athena query results |
abitly-terraform-state | Terraform state (analytics) |
abitly-backups-v1, abitly-db-backups-v2 | бекапи Postgres (Lambda abitly-dev-db-backup) |
abitly-{dev,prod}-{backend,frontend,strapi}-pipeline-* | CodePipeline артефакти |
studsearch-prod-pipeline-artifacts-*, elasticbeanstalk-eu-central-1-* | Studsearch pipeline + EB |
aws-cloudtrail-logs-* | CloudTrail audit |
Бекапи
Section titled “Бекапи”abitly-dev-db-backupLambda (Python 3.12, 1024 MB) —TODO:точний розклад, retention.- AWS RDS automated backups —
TODO:retention window (зазвичай 7 діб по дефолту).
Міграції
Section titled “Міграції”- Abitly API — TypeORM (
npm run migration:generate / run / revert). - Studsearch backend — TypeORM.
- Strapi — власні Strapi-міграції (
npm run upgrade).
Діагностика
Section titled “Діагностика”Проблеми з БД → runbook db-issues. Прямий SQL — через aws ssm start-session на dev-bastion / psql з vault-кередами.