У меня есть экземпляр RDS (Postgres) с Storage SSD 1000GB, но данные имеют размер всего 100 ГБ.
Как я могу легко масштабировать ресурс хранения RDS?
У меня есть экземпляр RDS (Postgres) с Storage SSD 1000GB, но данные имеют размер всего 100 ГБ.
Как я могу легко масштабировать ресурс хранения RDS?
RDS не позволяет уменьшить объем хранилища, выделенного экземпляру базы данных, только увеличить его.
Чтобы переместить вашу базу данных на меньшую память, вам нужно будет создать новый экземпляр RDS с нужным местом для хранения, а затем использовать что-то вроде pg_dump/pg_restore, чтобы переместить данные из старой базы данных в новую.
Также имейте в виду, что экземпляр RDS с 1000 ГБ хранилища SSD имеет базовый IOPS 3000. Экземпляр RDS с 100 ГБ хранилища SSD имеет базовый IOPS 300, со случайными всплесками до 3000.
Основываясь на помощи 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
в конце адресов конечной точки.)
При использовании 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. А также может использоваться другой фактор скидок.
Amazon не позволяет уменьшить размер жесткого диска экземпляра RDS, у вас могут быть два варианта уменьшения размера хранилища.
1: если вы можете позволить себе время простоя, то резервное копирование старого экземпляра mysqldump можно восстановить в новом экземпляре с меньшим размером хранилища.
2: - Вы можете использовать службу миграции базы данных для перемещения данных из одного экземпляра в другой экземпляр без простоя.