Приложение Laravel на AWS ElasticBeanstalk не подключается к базе данных RDS - PullRequest
1 голос
/ 13 июля 2020

Я развернул свое приложение Laravel на AWS ElasticBeanstalk. Я пытаюсь подключиться к базе данных RDS из приложения. Учетные данные базы данных устанавливаются как переменные env в BeanstalkEnvironment. Но это не работает. Это то, что я делал до сих пор.

Я создал базу данных RDS в том же VP C, что и экземпляры EC2 Elasbeanstalk.

enter image description here

Then I set the environment variables as follows:

enter image description here

When I run my application, it is throwing error "Unknown database 'laratest'". What is wrong with my configuration?

The following is the Inbound Rules of the security group of the RDS database:

введите описание изображения здесь

Как видите, он разрешает TCP-соединение через порт 3306 от SG экземпляров EC2. Также разрешен весь трафик c.

1 Ответ

2 голосов
/ 13 июля 2020

Просмотрите следующий контрольный список:

  1. Проверьте имя базы данных: это не то же самое, что идентификатор. На вкладке «Конфигурация» найдите «Имя БД». Используйте это имя в качестве имени базы данных при попытке подключения.
  2. Группа безопасности экземпляра RDS разрешает TCP-подключения из группы безопасности приложения Elasti c ElasticBeanstalk на порту 3306. Подробнее здесь .
  3. Хотя вы упомянули, что эти две службы предоставляются в одном и том же VP C, если вы настроили VP C, убедитесь, что есть открытая линия соединения между две подсети, если вы не разделяете подсети. В большинстве случаев это присутствует по умолчанию (например, если вы используете CDK для их настройки), но это будет мой следующий флажок.

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

...