Подтвердить что ты не робот

AWS Elastic Beanstalk change Конечная точка RDS

Как изменить настроенную конечную точку RDS среды AWS Elastic Beanstalk? Например. после того, как база данных RDS была удалена или должна быть заменена новой базой данных RDS.

4b9b3361

Ответ 1

Update

Тема остается сложной, и документация AWS Elastic Beanstalk (EB) может все же улучшить работу, чтобы уточнить доступные параметры. Вопрос заключается в том, как изменить конечную точку RDS, которая, кажется, читается двумя разными способами:

  • Можно было бы интерпретировать его о том, как привязать существующую внешнюю управляемую конечную точку RDS к существующей (не новой!) среде EB - это действительно невозможно, но нужно прибегнуть к обработке этого сценария из самого приложения, например описанный в разделе Использование существующего экземпляра базы данных Amazon RDS с Python в Использование Amazon RDS с Python.
  • Скорее, ОП задал вопрос о том, как это сделать после того, как база данных RDS была удалена или должна быть заменена новой базой данных RDS, т.е. изменение конечной точки RDS подразумевается в процессе создания новой базы данных RDS для существующая среда EB, которая уже имела один - это действительно возможно с помощью DBSnapshotIdentifier Значение параметра, который обозначает Идентификатор моментального снимка БД для восстановления из. Вновь EB-документы не совсем однозначны, что это значит, однако EB использует AWS CloudFormation под капотом, и соответственно. запись для AWS:: RDS:: DBInstance - DBSnapshotIdentifier предоставляет более подробную информацию:

    Указав это свойство, вы можете создать экземпляр БД из указанный моментальный снимок БД. Если свойство DBSnapshotIdentifier является пустая строка или объявление AWS:: RDS:: DBInstance не имеет Свойство DBSnapshotIdentifier, база данных создается как новый база данных. Если свойство содержит значение (отличное от пустой строки), AWS CloudFormation создает базу данных из указанного моментального снимка. Если моментальный снимок с указанным именем не существует, база данных создание завершается неудачно, и пакет откатывается.

Другими словами, типичный результат обновления любого из общих значений параметра из пространства имен aws:rds:dbinstance для существующей среды EB - это создание соответственно настроенного экземпляра RDS, управляемого EB и, таким образом, новую конечную точку RDS.
  • Конкретный вспомогательный сценарий - это использование DBSnapshotIdentifier, которое дает новый экземпляр RDS, управляемый EB на основе ссылочного моментального снимка, и поэтому его можно использовать для переноса (а не привязки) существующего внешнего RDS-экземпляра, хотя с значительное время простоя на основе размера моментального снимка.

Исходный ответ

К сожалению, в настройке баз данных с AWS Elastic Beanstalk, AWS Elastic Beanstalk для дополнительную базу данных Amazon RDS обрабатывают через значения параметра, см. пространство имен aws:rds:dbinstance внутри Общие параметры.

Пока AWS Management Console скрывает многие из этих значений параметров за своим пользовательским интерфейсом, вы можете явно указывать их при использовании API с помощью других средств, как при создании среды а также при обновлении (так вы можете изменить любые настройки экземпляра базы данных RDS) - см., например, параметр --option-settings для update-environment из интерфейса командной строки AWS:

Если указано, AWS Elastic Beanstalk обновляет конфигурационный набор, связанный с рабочей средой, и задает указанные параметры конфигурации запрашиваемому значению.

Ответ 2

Я создал файл конфигурации в папке .ebextensions со следующим содержимым:

option_settings:
  - namespace: aws:rds:dbinstance
    option_name: DBSnapshotIdentifier
    value: <name-of-snapshot>

Загрузите и разверните, и он создаст новую базу данных RDS, используя этот снимок.

Ответ 3

Горячая замена уровня данных внутри среды обескуражена, поскольку она нарушает целостность среды. То, что вы хотите сделать, - это клонирование среды, с восстановленным снимком экземпляра RDS. Это означает, что у вас будет идентичная среда с другим "хостом" url, и если все пойдет без сучка и задоринки, тогда вы можете менять URL-адреса среды, чтобы инициировать обмен DNS.

После того, как произойдет своп и все будет хорошо, вы можете продолжить дефлирование старой среды