2016-04-20 1 views

ответ

12

RDS не позволяет уменьшить объем хранилища, выделенный экземпляру базы данных, только увеличить его.

Чтобы переместить вашу базу данных на меньшую память, вам нужно будет создать новый экземпляр RDS с нужным местом для хранения, а затем использовать что-то вроде pg_dump/pg_restore, чтобы переместить данные из старой базы данных в новую.

Также имейте в виду, что экземпляр RDS с 1000 ГБ хранилища SSD имеет базовый IOPS 3000. Экземпляр RDS с 100 ГБ хранилища SSD имеет базовый IOPS 300, со случайными всплесками до 3000.

4

При использовании RDS вместо типичного аппаратного «планирования емкости» вы просто выделяете достаточно места на диске для короткого или среднесрочного (зависит), расширяйте его, когда это необходимо.

Как упоминалось в @Mark B, вам также нужно следить за IOPS. Вы можете использовать «подготовленные IOPS», если вам нужна высокопроизводительная БД.

Перед прыжком в область хранения дискового пространства вы должны сделать это с точностью до настройки производительности. . если вы уменьшите 1000GB до 120GB, для US запад, вы сохраните 0.125x 880GB = 110/месяц. Но Max IOPS будет 120x 3 = 360IOPS

Это будет стоить вам $ 0,10 для обеспечения дополнительных IOPS для повышения производительности. Скажите, если вам действительно нужно 800IOPS для более высокого ответа онлайн-пользователя,
(800-360) x 0.10 = $ 44. Таким образом, фактическая экономия может в конечном итоге «меньше». Вы не сэкономите деньги, если ваш RDS нуждается в постоянном 1100 IOPS. А также может использоваться другой фактор скидок.

9

на основе помощи AWS в here, это полный процесс, который работал для меня:

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 в конце конечных адресов)

2

Amazon не позволяют уменьшить размер жесткого диска экземпляра RDS, у вас могут быть два варианта уменьшения размера хранилища.

1: если вы можете позволить себе время простоя, то резервная копия старого экземпляра mysqldump может быть восстановлена ​​в новом экземпляре с меньшим размером хранилища.

2: - Вы можете использовать службу миграции базы данных для перемещения данных из одного экземпляра в другой экземпляр без простоя.

+0

Благодарим за предложение службы миграции баз данных. Это почти сработало для меня - пока я не обнаружил, что он (в настоящее время) не поддерживает надлежащую миграцию столбцов JSON или JSONB :-( –