2014-05-16 6 views
0

저는 AWS의 초보자입니다. 지금까지 RDS와 EC2 Java 웹 애플리케이션에 mySQL 데이터베이스를 설정했습니다. 이클립스 플러그인을 사용하여 웹 애플리케이션을 전개하고있다. 브라우저에서 HTTP 요청을 통해 Java 웹 응용 프로그램에 연결할 수 있습니다. 또한 명령 줄 터미널에서 mySQL 데이터베이스에 연결할 수 있습니다.연결 시간 초과 EC2 Java Web App을 RDS mySQL 데이터베이스

그러나 Java 웹 응용 프로그램 코드에서 mySQL 데이터베이스에 연결하려고 할 때마다 요청 시간이 초과됩니다. 코드로 연결하려면 URL이 정확하다고 확신합니다. 그리고 나는이 연결을 단지 사용하고 있습니다. localhost에서 여러 번 성공적으로 수행 한 작업.

Class.forName("com.mysql.jdbc.Driver").newInstance(); 
con = DriverManager.getConnection(url); 

나는 보안 그룹에 대한 정보를 많이 읽고,하지만 내 RDS 관리 콘솔에서 말한다 :.

"이 지역의 EC2 - 클래식 플랫폼을 지원하지 않습니다 계정이 DB 보안 그룹

있습니다 EC2-Classic Platform이 지원 될 때만 필요합니다. 대신 VPC 보안 그룹을 사용하여 DB 인스턴스에 대한 액세스를 제어하십시오. "

누구에게 의견이 있습니까? 미리 감사드립니다!

답변

2

EC2 클래식이 아닌 VPC 만 사용하는 최신 AWS 계정이 있습니다. 모든 RDS DB 인스턴스 및 EC2 인스턴스에 대한 액세스는 VPC 보안 그룹을 통해 이루어집니다.

먼저 Java 웹 응용 프로그램을 실행중인 EC2 인스턴스가있는 보안 그룹을 확인하고 RDS 인스턴스에 대해 동일한 작업을 수행하십시오. 그런 다음 VPC 콘솔로 이동하여 해당 보안 그룹을 살펴보십시오. EC2 인스턴스가 포트 3306에서 RDS 인스턴스에 액세스 할 수 있는지 확인해야합니다. 가장 좋은 방법은 EC2 인스턴스를 그룹에 넣고 다른 그룹의 RDS를 넣은 다음 그룹 ID별로 전체 그룹에서 RDS에 액세스 할 수있게하는 것입니다.

+0

감사합니다. 매력처럼 일했습니다. – PCoder123

+0

[이 스레드를 추가 정보로 업데이트] 인스턴스가 클래식 EC2 인 경우 ClassicLink를 활성화하여 클래식 ec2 인스턴스와 VPC (RDS 포함) 내의 인스턴스 간의 연결을 허용 할 수도 있습니다. 문제가 계속 발생하면 (telnet 또는 nc와 소켓 연결을 만들 수 있지만) 명령 행 mysql 클라이언트를 사용할 수 없으면 ec2 인스턴스의 MTU를 1400으로 낮추고 다시 시도하십시오. 캡슐화 (PMTUD를 지원하지 않음) 때문에 ClassicLink에 더 낮은 패킷 크기가 필요합니다. – ives

관련 문제