Как уменьшить хранилище (уменьшить масштаб) моего экземпляра 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: - Вы можете использовать службу миграции базы данных для перемещения данных из одного экземпляра в другой экземпляр без простоя.