Как изменить тип экземпляра AWS-RDS без простоев?
Я использую AWS-RDS(Aurora MySQL5.6) и это кластер, он имеет один экземпляр устройства записи и один экземпляр устройства чтения. Я нахожу, что каждый экземпляр будет недоступен в течение почти 10 минут, когда я изменю его тип, это недопустимо, что я должен сделать, чтобы избежать простоя?
Вот более подробная информация:
- Измените тип с db.t2.small на db.t2.medium
- Версия двигателя: 5.6.10a
- Свободная память: 300M
- Соединения с БД (количество): ~400
- Загрузка процессора (в процентах): ~20%
3 ответа
Вместо изменения типа текущего экземпляра модуля записи добавьте новый модуль записи с требуемым типом экземпляра:
- Добавьте считыватель Aurora с желаемым новым типом экземпляра (например, db.t2.medium) в кластер. Обязательно присвойте читателю наилучший приоритет, чтобы он был повышен до автора во время отработки отказа (для получения более подробной информации см. Документацию Aurora).
- Подождите, пока новый экземпляр не заработает.
- Затем выполните отказоустойчивый кластер, чтобы новый читатель был назначен писателем.
- Наконец, удалите предыдущий экземпляр Aurora старого типа.
Таким образом, у вас практически не будет простоев.
Если вы хотите изменить тип экземпляра считывателя:
- Добавьте читателя Aurora с желаемым новым типом экземпляра.
- Подождите, пока он не заработает.
- Удалить предыдущий экземпляр читателя.
На самом деле это звучит как идеальный вариант использования Serverless v2. Вам нужно будет запустить Aurora MySQL v3 (совместимый с MySQL 8.0). Но вы можете сказать: «Я хочу использовать где-то между 2 ГБ и 4 ГБ ОЗУ» (1–2 ACU), и Aurora решит, когда инстанс достаточно занят или достаточно простаивает для увеличения или уменьшения масштаба. Соединения и транзакции сохраняются во время масштабирования, поэтому нет простоев. Вы можете выбрать Serverless v2 для записи, чтения или обоих. При желании вы можете переключиться на Serverless v2 или вернуться к предопределенным классам экземпляров без необходимости повторного создания кластера.
Инструкции: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.html.
Я предполагаю, что вы используете облачное формирование или терраформирование для управления кластером и экземплярами базы данных. Я думаю, что добавление «dependsOn» в формирование облака может помочь вам в выполнении последовательного обновления.
например, экземпляр 1(читатель) зависит от экземпляра 2 (писатель)
https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-attribute-dependson.html