Ответ
В AWS RDS резервное копирование реализовано через два основных механизма: автоматические бэкапы и ручные снапшоты.
1. Автоматические бэкапы (Automated Backups)
- Включены по умолчанию для всех движков, кроме Aurora Serverless v1.
- Периодичность: Полный ежедневный бэкап + непрерывная архивация журналов транзакций (для Point-in-Time Recovery - PITR).
- Срок хранения: Настраивается от 1 до 35 дней. По истечении срока автоматически удаляются.
- Хранение: Бэкапы хранятся в S3 с управлением AWS. Снапшоты инкрементальны после первого полного, что экономит место.
- Восстановление: Можно восстановить инстанс на любой момент времени в пределах периода хранения с точностью до 5 минут.
2. Ручные снапшоты (Manual Snapshots)
- Создаются вручную через консоль, CLI или API.
- Хранятся до явного удаления пользователем, не зависят от настройки срока хранения автоматических бэкапов.
- Полезны для долгосрочного хранения конфигурации перед критическими изменениями (миграция версии, изменение схемы).
Пример создания ручного снапшота через AWS CLI:
aws rds create-db-snapshot
--db-instance-identifier my-production-db
--db-snapshot-identifier my-db-pre-migration-backup
Восстановление из снапшота создает совершенно новый инстанс RDS.
Ключевые особенности для DevOps:
- Автоматические бэкапы выполняются в период maintenance window и, как правило, не требуют даунтайма (для большинства движков).
- PITR критически важен для восстановления после инцидентов типа "ошибочное удаление данных".
- В Aurora бэкапы и снапшоты работают на уровне кластера (хранилища), а не отдельного инстанса, что делает их более эффективными и быстрыми.
- Рекомендуется автоматизировать создание ручных снапшотов через AWS Lambda (например, перед автоматическими пайплайнами развертывания) и настроить их копирование в другой регион для DR (Disaster Recovery).