2017-10-19 11 views
0

Docker를 사용하여 작은 Laravel PHP API를 실행하는 ElasticBeanstalk 응용 프로그램이 있습니다.탄성 beanstalk 도커 응용 프로그램이 mysql에 연결할 수 없습니다.

ElasticBeanstalk에서 실행할 때 앱이 MySQL에 연결할 수 없습니다.

MySQL DB는 공개적으로 사용 가능한 AWS RDS 인스턴스입니다.

Docker 컨테이너를 로컬에서 실행 했으므로 앱을 정상적으로 연결할 수 있습니다.

I 앱이 연결할 수 없습니다 ElasticBeanstalk에 배포

...

는 사람이를 디버깅하는 데 도움이되는 방향으로 날 포인트? 이에 실수를 한단다 다른 사람들을위한

솔루션

:

솔루션은 EC2 인스턴스와 RDS 데이터베이스 모두에 대한 새 보안 그룹을 만드는 것이 었습니다. 두 보안 그룹은 인스턴스와 데이터베이스에 대해 포트 3306을 통해 액세스를 열었습니다.

또한 EC2 인스턴스가 모든 서브넷과 내 데이터베이스와 동일한 VPC에서 사용할 수 있음을 보증했습니다.

아래의 답변과 SysOps 친구의 도움으로 작성되었습니다.

답변

0

MYSQL 유형의 포트 3306에서 TCP를 허용하도록 Elastic Beanstalk에 첨부 된 EC2 보안 그룹 규칙을 검사 할 수 있습니다.

+0

고마워요! EC2 인스턴스와 데이터베이스의 포트 3306에서 트래픽을 허용해야하는 보안 그룹이었으며 트릭을 수행했습니다. – MattDavies

0

ec2 인스턴스에 할당 된 공용 IP가 없을 가능성이 높습니다. ec2 인스턴스에서 공용 IP없이 RDS의 공용 IP에 연결하려고하면 할 수 없습니다.

ec2 인스턴스는 공개 IP가 필요하거나 NAT를 통한 외부 인터넷 연결이 필요합니다.

+0

흥미 롭습니다. 그러나 인스턴스 공개 IP를 제공하지는 않았지만 모든 서브넷과 동일한 VPC에서 데이터베이스를 사용할 수 있도록했습니다. 그 트릭을하는 것처럼 보였다! – MattDavies