Как ежедневно дублировать производственную базу данных с помощью aws

#amazon-web-services #amazon-rds

#amazon-веб-сервисы #amazon-rds

Вопрос:

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

Ответ №1:

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

Вы должны создать стек для своей среды «prelive» с 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 свойство, для которого обновление требует замены, будет создан новый экземпляр ‘prelive’, а старый экземпляр будет удален.