Переменная среды AWS Elastic Beanstalk RDS_DB_NAME игнорируется (Rails 5) - PullRequest
0 голосов
/ 27 сентября 2018

Я играл с базой данных ebdb , которую Elastic Beanstalk создает в RDS.Похоже, что переменную среды RDS_DB_NAME в консоли Elastic Beanstalk можно оставить пустой, не влияя на работу приложения:

enter image description here

Я перезапустил сервер приложений (используя консоль EB) без эффекта.Я отмечаю, что когда я вхожу в RDS, имя базы данных все еще странным образом отображается как ebdb :

enter image description here

Может кто-нибудь подтвердить этоповедение и - если я прав - как я могу переключиться на другую базу данных на RDS?(В моем случае я тестирую резервное копирование и восстановление и хочу, чтобы мое приложение Rails 5.2 временно указывало на восстановленную базу данных.)

FWIW, у меня есть стандартный Rails config / database.yml:

production:
  <<: *default
  database: <%= ENV['RDS_DB_NAME'] %>
  username: <%= ENV['RDS_USERNAME'] %>
  password: <%= ENV['RDS_PASSWORD'] %>
  host: <%= ENV['RDS_HOSTNAME'] %>
  port: <%= ENV['RDS_PORT'] %>

1 Ответ

0 голосов
/ 27 сентября 2018

Из опыта пользователя, который он предлагает в своем блоге это:

Не связывать экземпляр RDS со средой Beanstalk

Elastic Beanstalk позволяет вамсвязать экземпляр RDS при создании новой среды.Тем не менее, я рекомендую вам НЕ делать этого в рабочей среде.

Во-первых, вот некоторые преимущества этого:

Elastic Beanstalk автоматически создает экземпляр RDS, а также правильно настроенную группу безопасности,Переменные среды внедряются во все ваши экземпляры EC2 (например, RDS_HOSTNAME, RDS_USERNAME…).Однако есть большой недостаток, который, на мой взгляд, делает его непригодным для использования в производстве: теперь RDS связан с вашей средой.Это означает, что если по какой-либо причине вам необходимо перестроить среду (например, для обновления Elastic Beanstalk AMI), вы застряли, потому что Elastic Beanstalk удалит любой связанный ресурс (например, ваш экземпляр RDS).Затем вам нужно создать моментальный снимок экземпляра RDS и заново создать из него новый.Это приведет к простоям.

На мой взгляд, лучший способ - создать экземпляр RDS отдельно и вручную внедрить переменные среды RDS во вновь созданную среду, используя инструмент Elastic Beanstalk GUI, дляпример.Это гораздо более гибко!

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

...