Поддержка автоматического масштабирования хранилища RDS с использованием terraform для действующих баз данных - PullRequest
0 голосов
/ 11 июля 2019

В AWS недавно запущена поддержка автоматического масштабирования хранилищ экземпляров RDS. У нас есть несколько экземпляров RDS с избыточно выделенным хранилищем в нашей производственной среде. Мы хотим использовать эту новую функцию, чтобы сократить некоторые расходы. Поскольку мы не можем уменьшить хранилище действующего экземпляра RDS, нам сначала нужно будет создать экземпляр RDS с меньшим объемом хранилища с поддержкой автоматического масштабирования, а затем перенести существующие данные в новый экземпляр, а затем удалить старый экземпляр.

Мы используем terraform с поставщиком terraform-aws для создания нашей инфраструктуры. Проблема в том, что я не могу достичь вышеуказанной стратегии с помощью терраформ. Вот что я попробовал:

  1. Изменить существующий скрипт создания RDS, чтобы создать еще два Ресурсы.
  2. Один имеет тип aws_db_snapshot, а другой - aws_db_instance (с использованием снимка).
  3. Однако я получаю следующее ошибка ошибка изменения инстанса БД (test-rds-snapshot): InvalidParameterCombination: неверный размер хранилища для имени движка Postgres и тип хранения gp2: 20.
# Existing RDS instance with over provisioned storage
resource "aws_db_instance" "test_rds"{
.
.
.
}

# My changes below
# The snapshot
resource "aws_db_snapshot" "test_snapshot" {
  db_instance_identifier = "${aws_db_instance.test_rds.id}"
  db_snapshot_identifier = "poc-snapshot"
}

# New instance with autoscale support and reduced storage
resource "aws_db_instance" "test_rds_snapshot" {
  identifier            = "test-rds-snapshot"
  allocated_storage     = 20
  max_allocated_storage = 50
  snapshot_identifier   = "${aws_db_snapshot.test_snapshot.id}"
.
.
.
}

Я хочу знать, нахожусь ли я на правильном пути или нет, и смогу ли я перенести производственные базы данных, используя эту стратегию. Дайте мне знать, если вам нужна дополнительная информация.

...