Перейти до вмісту

Бази даних та сховища

ІнстанціяEngineClassХто використовуєПризначення
studsearch-prodPostgres 17.9db.t4g.small (20 GB)Abitly API · Abitly Strapi · Studsearch backend🚨 SHARED prod-інстанція — окремі схеми на сервіс
abitly-dev-pgPostgres 17.9db.t4g.micro (30 GB)Abitly API devDev environment

Endpoint і назви shared інстанції:

host: studsearch-prod.cnugmkgsgbb0.eu-central-1.rds.amazonaws.com
db name: abitly_prod_db

Схеми у DB abitly_prod_db:

СхемаВласник-сервісSSM-параметр
abitlyAbitly API/abitly/prod/backend/DB_SCHEMA
publicAbitly Strapi/abitly/prod/strapi/DATABASE_SCHEMA
studsearchStudsearch backend/studsearch/prod/db/schema

⚠️ Strapi у public — за замовчуванням Postgres створює об’єкти там. DROP SCHEMA public CASCADE зруйнує Strapi. У runbook → db-issues явно вписано.

ІнстанціяEngineПризначення
abitly-prod-cacheValkey 8.0.1, cache.t4g.smallAbitly API: BullMQ-черги + cache + rate-limit
abitly-dev-cacheValkey 8.0.1, cache.t4g.microdev

Wire-протокол сумісний з Redis 7.4, але це Valkey (форк Redis після ліцензійного конфлікту). У клієнтів (BullMQ, ioredis) додаткових налаштувань не потрібно, але документація — на valkey.io.

ІнстанціяХостХто використовує
abitly-shared-typesense (EC2 t4g.small)SSM TYPESENSE_HOST/PORT/PROTOCOL/API_KEY (різні значення dev/prod)Abitly API (повнотекстовий пошук ЗВО/спеціальностей)

⚠️ Одна інстанція ділиться між dev і prod трафіком (Abitly API перемикає SEARCH_ENGINE).

БакетПризначення
abitly-prod-strapi-mediaмедіа Strapi
abitly-events-devIceberg/Parquet data lake (analytics)
abitly-athena-results-devAthena query results
abitly-terraform-stateTerraform 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
  • abitly-dev-db-backup Lambda (Python 3.12, 1024 MB) — TODO: точний розклад, retention.
  • AWS RDS automated backups — TODO: retention window (зазвичай 7 діб по дефолту).
  • Abitly API — TypeORM (npm run migration:generate / run / revert).
  • Studsearch backend — TypeORM.
  • Strapi — власні Strapi-міграції (npm run upgrade).

Проблеми з БД → runbook db-issues. Прямий SQL — через aws ssm start-session на dev-bastion / psql з vault-кередами.