Как ежедневно дублировать производственную базу данных с помощью aws - PullRequest
0 голосов
/ 11 апреля 2019

Здесь рассматриваются две базы данных: «живая» и «предварительная».Каждый день рано утром делают снимок живого инстанса.Чтобы получить свежую копию живых данных, мы вручную идем и удаляем prelive и создаем его из свежих, используя живой снимок.Prelive в основном используется для воспроизведения данных конкретных ошибок.Как мы можем легко автоматизировать процесс получения свежего предварительного экземпляра из живого снимка каждое утро?

1 Ответ

1 голос
/ 14 апреля 2019

Вы можете автоматизировать этот процесс с помощью CloudFormation.

Вы должны создать стек для вашей «предварительной» среды с ресурсом AWS::RDS::DBInstance.Вам нужно указать свойство DBSnapshotIdentifier, но вместо его жесткого кодирования вы будете ссылаться на параметр стека, он будет выглядеть следующим образом:

Parameters:
  Snapshot:
    Type: String

Resources:
  ...other resources...

  PreliveInstance:
    Type: AWS::RDS::DBInstance
    Properties:
      ...other properties...
      DBSnapshotIdentifier: !Ref Snapshot
      ...other properties...

  ...other resources...

Таким образом, вы можете использовать лямбда-функцию, запускаемую CloudWatch.Каждое утро происходит следующее событие:

  1. Поиск arn последнего снимка вашей «живой» среды
  2. Обновление вашего «предварительного» стека с помощью arnиз шага 1 в качестве входного значения для параметра Snapshot.

Поскольку DBSnapshotIdentifier - это свойство, для которого для обновления требуется замена ,Будет создан новый «предварительный» экземпляр, а старый будет удален.

...