RDS: управляемые реляционные базы

Реляционная база без головной боли администрирования — это RDS.

RDS (Relational Database Service) — управляемый сервис реляционных баз данных (PostgreSQL, MySQL, MariaDB и др.), где AWS берёт на себя установку, бэкапы, обновления и восстановление.

Зачем нужен RDS

Можно поставить PostgreSQL вручную на EC2, но тогда на вас лягут установка, настройка, регулярные бэкапы, обновления безопасности, восстановление после сбоя и репликация. RDS снимает всю эту рутину: вы получаете готовую базу, к которой просто подключаетесь, а инфраструктурой занимается Amazon.

Что AWS делает за вас

  • Автоматические бэкапы и снимки (snapshots) по расписанию.
  • Обновления движка базы и патчи безопасности.
  • Multi-AZ — синхронная копия в другой зоне доступности с автопереключением при сбое.
  • Read replicas — копии только для чтения, чтобы разгрузить нагрузку.
aws rds create-db-instance \
  --db-instance-identifier my-app-db \
  --engine postgres \
  --db-instance-class db.t3.micro \
  --allocated-storage 20 \
  --master-username appadmin \
  --master-user-password "СильныйПароль123"

Вывод:

{
    "DBInstance": {
        "DBInstanceIdentifier": "my-app-db",
        "Engine": "postgres",
        "DBInstanceStatus": "creating"
    }
}

После создания база даёт endpoint — адрес вида my-app-db.abc123.eu-central-1.rds.amazonaws.com, к которому подключается приложение обычным SQL-клиентом.

Как работает под капотом

RDS — это, по сути, EC2-инстанс с базой, которым управляет автоматика AWS. В режиме Multi-AZ Amazon держит вторую, синхронно реплицируемую копию базы в другой зоне доступности. Каждая транзакция подтверждается только после записи в обе копии. Если основной инстанс падает, RDS за пару минут переключает endpoint на резервную копию — приложению достаточно переподключиться по тому же адресу. Read replicas, наоборот, реплицируются асинхронно и служат только для чтения, разгружая основную базу.

Частые ошибки

  • Делать публичный endpoint у базы. RDS держат в приватной подсети; доступ — только из своей сети.
  • Путать Multi-AZ и read replica. Multi-AZ — отказоустойчивость (резерв), read replica — масштабирование чтения. Это разные задачи.
  • Хранить пароль БД в коде. Используйте Secrets Manager или переменные окружения, а не открытый текст в репозитории.

Итог

  • RDS — управляемая реляционная база: бэкапы, обновления и отказоустойчивость берёт на себя AWS.
  • Multi-AZ даёт автопереключение при сбое, read replicas — масштабирование чтения.
  • Базу держат в приватной подсети, пароль — в Secrets Manager, а не в коде.
Проверьте себя
1. Что главным образом берёт на себя RDS по сравнению с базой на EC2?
AНаписание SQL-запросов за вас
BУстановку, бэкапы, обновления и восстановление базы
CОплату счетов
DРазработку приложения
2. Чем Multi-AZ отличается от read replica?
AНичем
BMulti-AZ — отказоустойчивость с автопереключением, read replica — масштабирование чтения
CRead replica переключается при сбое, Multi-AZ — нет
DОба только для записи