Как обновить минорную версию AWS MQ в terraform неразрушающим способом - PullRequest
1 голос
/ 08 апреля 2020

Я играл с провайдером terraform aws для создания управляемых сервисов, таких как Amazon MQ. Я обнаружил, что в целом это работает хорошо, но при тестировании изменения минорной версии (5.15.9 -> 5.15.10) это деструктивный процесс, который может привести к потере данных, если это выполняется на работающем сервисе.

Я прочитал документацию для провайдера и не выполнил никаких дополнительных настроек, которые позволили бы этому произойти, не разрушая и не воссоздавая посредников. Единственный вариант, который я мог видеть, - это вручную обновлять через AWS напрямую или разрешать незначительные обновления автоматически.

Есть ли какие-либо отзывы, если это можно сделать через Terraform? В противном случае я мог бы предположить, что лучшим процессом может быть какой-то автоматизированный или ручной конвейер, использующий CLI AWS для выполнения обновлений, но тогда состояние terraform будет устаревшим, я бы предположил.

Редактировать:

См. Ниже приведено описание terraform для создания посредника. Я удалил содержимое, относящееся к секретному менеджеру, группам безопасности, подсетям и т. д. c, так как казалось, что оно добавляет объем и не связано непосредственно с проблемой.

resource "aws_mq_broker" "broker" {
  broker_name                = "${var.env}_${var.team}_broker"
  engine_type                = "ActiveMQ"
  engine_version             = "5.15.9"
  deployment_mode            = "${lookup(var.team_env_config, "${var.env}_${var.team}_deployment_mode")}"
  host_instance_type         = "${lookup(var.team_env_config, "${var.env}_${var.team}_instance_type")}"
  auto_minor_version_upgrade = false
}

При тестировании Обновление, которое я только что изменил 5.15.9 -> 5.15.10

Вывод выглядит следующим образом:

      deployment_mode:                 "SINGLE_INSTANCE" => "SINGLE_INSTANCE"
      engine_type:                     "ActiveMQ" => "ActiveMQ"
      engine_version:                  "5.15.9" => "5.15.10" (forces new resource)

Это просто отрыв, но, как вы можете видеть, изменение версии двигателя вызывает новый ресурс.

...