2014-06-20 1 views
0

MySQL RDS DB 인스턴스를 만들었고 인스턴스가 외부에 연결할 수 있도록하는 보안 그룹 안에 있는지 확인했습니다. 보안 그룹은 모든 IP 주소에서 모든 유형의 트래픽을 허용합니다. RDS는 내가 만든 EC2와 동일한 보안 그룹에 있습니다.MySQL RDS DB 인스턴스에 직접 연결할 수없는 이유는 무엇입니까? (SSHing을 통해 EC2에만 연결할 수 있습니다.)

SSH를 통해 EC2에 연결 한 다음 해당 EC2에 설치된 MySQL CLI 클라이언트를 사용하여 RDS에 연결하여 DB 인스턴스에 연결할 수 있습니다. 그러나 개인용 컴퓨터의 MySQL 클라이언트에서 RDS에 직접 연결할 수는 없습니다. RDS에 대해 동일한 호스트와 사용자 이름을 사용하지만 EC2를 우회하면 작동하지 않습니다.

인터넷 검색에서 오는 오류는 일반적으로 내 컴퓨터의 트래픽을 허용하지 않는 RDS의 보안 그룹 때문에 발생합니다.하지만 보안 그룹이 3 개인 것으로 확인 되었기 때문에이 경우가 될 수 없습니다. 모든 대중 교통을 이용할 수 있습니다. 지옥, RDS는 EC2와 동일한 보안 그룹에 속해 있으며 EC2에 연결할 수 있습니다.

무슨 일 이니?

+0

보안 그룹이 포트 22, 80 및 443 (ssh, http, https)을 허용 할 수 있지만 mysql의 경우 3306을 열어야합니다. 또한 권한은 포트 기반이므로 현재 IP를 명시 적으로 허용해야합니다 포트 3306 용 (나쁜 생각인데 모든 사람에게 허용하고 싶지 않다면) – amenadiel

+0

@amenadiel 보안 그룹은 모든 프로토콜의 모든 IP 주소에서 모든 인바운드 트랩을 열 수 있습니다. 나는 이것이 안전하지 않다는 것을 깨닫는다. 그러나 이것은 단지 dev 목적을위한 것이다. 그렇게해서 보안 그룹을 구성해서는 안된다는 것을 알고 있습니다. – vijrox

+0

RDS 보안 그룹은 EC2 보안 그룹과 동일하지만 SEC 그룹 패널은 다릅니다. 두 규칙 모두 동일한 규칙을 갖도록 구성했다는 것을 의미합니까?RDS 보안 그룹의 스크린 샷을 게시 할 수 있습니까? 또한 : VPC 또는 정규 RDS + EC2를 사용하고 있습니까 – amenadiel

답변

0

확인을 분리합니다. RDS 인스턴스가 모든 트래픽을 허용하더라도 방화벽이 연결을 차단할 수 있습니다. http://portquiz.net/을 사용하여 네트워크에 DB에 연결하는 포트의 트래픽이 허용되는지 여부를 테스트 할 수 있습니다. MySQL을 사용하면 포트가 3306 일 가능성이 높습니다. DB를 사용하는 포트를 네트워크를 통해 액세스 할 수없는 경우 방금 연결 한 포트 퀴즈 도구를 사용하여 작동하는 포트를 찾은 다음 해당 포트를 사용하여 DB 인스턴스를 다시 작성하십시오. (RDS는 이미 존재하는 인스턴스의 포트를 변경할 수 없습니다).

+0

죄송합니다.이 답변은 나에게 도움이되었지만 나에게 도움이되지는 못합니다. – Fraggle

0

때때로 VPC 내부에있는 것들에 연결하려고 할 때 DNS가 이상하게 보입니다. 그러나 VPC 안에 있기 때문에 사설 IP 주소 만 갖게됩니다. 컴퓨터와 RDS를 직접 연결하려면 VPC를 사용하지 마십시오. 문제가 추가됩니다. VPC 내부에 있어야 할 경우 이미 가지고있는 것처럼 vpc에서 ec2 인스턴스를 실행합니다. 그럼 터널이 명령

screen 
ssh -L ec2-instanceDNS.com:3308:rds-dns.com:3308 

을 실행하여 EC2 인스턴스에 RDS 인스턴스는 화면에게 보내는 포트가 개인 컴퓨터가 켜져 네트워크의 방화벽에 열려있는 것을

Ctrl+A 
D 
+0

고맙지 만 요점은 ec2로 터널 할 필요없이 VPC 내부의 RDS에 연결하려고한다는 것입니다. – vijrox

+0

VPC 마법사를 따라 보셨습니까? 1 단계에서 하나의 공용 서브넷으로 VPC를 선택 했습니까? 또는 다른 것 –

+0

나는 VPC를 만들지 않았다 - 나는 기본 것을 선택했다. EC2 및 RDS에서 사용하는 VPC의 기본 보안 그룹이 모든 트래픽을 허용하도록 구성되었습니다. – vijrox

3

이것이 나를 위해이 문제를 해결 한 것입니다. RDS 대시 보드에서 인스턴스의 보안 그룹을 살펴보십시오. 이것을 클릭하면 보안 그룹 페이지로 이동합니다.

인바운드 및 아웃 바운드 모두에 대해 "모든 트래픽"이라고 말하면 편집을 클릭하고 원본에 내 IP가 표시되는지 확인하십시오. 모든 IP를 사용하는 것을 권장하지 않습니다. 이는 인터넷상의 모든 IP를 열 수 있기 때문입니다. 정적 IP가없는 경우 연결이 작동하지 않으면이 필드를 새로 고쳐야합니다.

그 후 AWS RDS T2 인스턴스에 연결할 수있었습니다.

관련 문제