Как уменьшить хранилище (уменьшить масштаб) моего экземпляра RDS?
У меня есть экземпляр RDS (Postgres) с Storage SSD 1000GB, но данные имеют размер всего 100 ГБ.
Как я могу легко масштабировать ресурс хранения RDS?
Ответы
Ответ 1
RDS не позволяет уменьшить объем хранилища, выделенного экземпляру базы данных, только увеличить его.
Чтобы переместить вашу базу данных на меньшую память, вам нужно будет создать новый экземпляр RDS с нужным местом для хранения, а затем использовать что-то вроде pg_dump/pg_restore, чтобы переместить данные из старой базы данных в новую.
Также имейте в виду, что экземпляр RDS с 1000 ГБ хранилища SSD имеет базовый IOPS 3000. Экземпляр RDS с 100 ГБ хранилища SSD имеет базовый IOPS 300, со случайными всплесками до 3000.
Ответ 2
Основываясь на помощи AWS здесь, это полный процесс, который работал у меня:
1) Дамп базы данных в файл: запустите это на машине, имеющей сетевой доступ к базе данных:
pg_dump -Fc -v -h your-rds-endpoint.us-west-2.rds.amazonaws.com -U your-username your-databasename > your-databasename.dump
2) В консоли AWS создайте новый экземпляр RDS с меньшим хранилищем. (Вероятно, вы хотите настроить его с тем же именем пользователя, паролем и именем базы данных.)
3) Восстановить базу данных на новом экземпляре RDS: выполнить эту команду (очевидно, на том же компьютере, что и предыдущая команда):
pg_restore -v -h the-new-rds-endpoint.us-west-2.rds.amazonaws.com -U your-username -d your-databasename your-databasename.dump
(Обратите внимание, что на шаге 3 я использую конечную точку нового экземпляра RDS. Также обратите внимание на отсутствие :5432
в конце адресов конечной точки.)
Ответ 3
При использовании RDS вместо типичного аппаратного "планирования емкости" вы просто предоставляете достаточно места на диске для короткого или среднего срока (зависит), расширяйте его, когда это необходимо.
Как упоминалось в @Mark B, вам нужно также следить за IOPS. Вы можете использовать "подготовленные IOPS", если вам нужна высокопроизводительная БД.
Перед переходом в область хранения дискового пространства вы должны сделать настройку стоимости и производительности.
Например. если вы уменьшите 1000GB до 120GB, для US запад, вы сохраните 0.125x 880GB = 110/месяц. Но Max IOPS будет 120x 3 = 360IOPS
Это будет стоить вам $0,10 для предоставления дополнительных IOPS для повышения производительности. Скажите, действительно ли вам требуется 800IOPS для более высокого ответа онлайн-пользователей,
(800-360) х 0,10 = 44 долл. США. Таким образом, фактическая экономия может в конечном итоге "меньше". Вы не сэкономите деньги, если ваш RDS нуждается в постоянном 1100 IOPS. А также может использоваться другой фактор скидок.
Ответ 4
Amazon не позволяет уменьшить размер жесткого диска экземпляра RDS, у вас могут быть два варианта уменьшения размера хранилища.
1: если вы можете позволить себе время простоя, то резервное копирование старого экземпляра mysqldump можно восстановить в новом экземпляре с меньшим размером хранилища.
2: - Вы можете использовать службу миграции базы данных для перемещения данных из одного экземпляра в другой экземпляр без простоя.