확인 MySQL Workbench를 사용하여 EC2 인스턴스를 통해 Amazon RDS 인스턴스에 연결




아마존 클라우드 (5)

AWS에서는 VPC가 요새 호스트와 설정되었습니다. 요새 호스트는 VPC의 다른 서버로 SSH 할 수있는 공용 주소 물마루가있는 단일 EC2 인스턴스입니다.

VPC에서 RDS MySQL 인스턴스를 만들었고 MySQL 워크 벤치를 사용하여이 인스턴스에 연결하고 싶습니다. "단계 6 : 원격 SSH 구성 설정"에서 "Amazon EC2 인스턴스의 공용 DNS 제공"(즉 요새 호스트)을 묻습니다.

그런 다음 MySQL Workbench는 해당 서버의 특정 MySQL 리소스를 확인합니다. 그러나 이것은 MySQL이 설치되지 않은 바스 티언 호스트의 주소를 제공했기 때문에 제 의견에는 맞지 않습니다. 결과적으로 "시작 / 중지 명령 위치 확인"및 "MySQL 구성 파일 확인"에 대한 마지막 두 검사가 실패합니다.

그런 다음 RDS MySQL 인스턴스의 끝점 주소를 사용했지만 성공하지 못했습니다 (개인 서브넷에 있으므로 공개적으로 주소 지정이 불가능 함).

많은 사람들이 이런 일을하고있는 것 같지만 여기서 내가 잘못하고있는 것은 무엇입니까?


진정으로 AWS의 VPC 연결을 사용하고 공용 IP를 허용하지 않으려면 다음을 수행하십시오.

EC2와 RDS가 모두 할당 된 보안 그룹이 하나있는 경우 TCP에 mysql 3306에 대한 인바운드 규칙을 추가하지만 원본 필드에는 실제 보안 그룹 ID가 아닌 IP 또는 서브넷을 넣으십시오. 즉 sg-9829f3d2.

VPC에는 개인적으로 두 개의 보안 그룹이 있습니다.

첫 번째 보안 그룹 1은 EC2 인스턴스에서 사용 중이며 EC2에 필요한 포트 (예 : 80 및 22) 만 허용합니다.

두 번째 보안 그룹 2는 RDS 인스턴스에서만 사용되며 mysql (3302)을 허용하는 규칙이 하나 있으며 원본 필드는 보안 그룹 1의 ID로 설정됩니다.

모든 Mysql 워크 벤치 SSH 터널링은 두 개의 보안 그룹에서도 작동합니다.


VPC를 사용하고 있기 때문에 서브넷에서만 연결을 허용하려면 다음과 같이 구성해야합니다.

  1. DB 인스턴스에서 사용하는 VPC 보안 그룹을 선택하십시오.
  2. 포트 3306에서 사설 서브넷의 모든 ips를 허용하는 새로운 규칙 추가

    예 : 규칙 INBOUND 3306 (MYSQL) 172.33.11.0/24

  3. mysql workbench tcp / ssh를 사용하면 작동합니다 (AndrewSmiley 대답을 따르십시오).


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

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

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


Bastion 호스트 (EC2 인스턴스)에 SSH 터널을 만들어 로컬 시스템의 포트를 원격 RDS 인스턴스로 전달할 수 있습니다.

mac / linux에서 이것은 명령입니다 (Windows의 경우 아래 링크의 지침을 따르십시오).

ssh -L 3306:myinstance.123456789012.us-east-1.rds.amazonaws.com:3306  your_c2_ip

다음 설정을 사용하여 Workbench에 연결할 수 있습니다.

  • 연결 방법 : 표준 TCP

  • 호스트 이름 : localhost

  • 포트 3306

이 포스트는 방법에 대해 자세히 설명합니다. https://userify.com/blog/howto-connect-mysql-ec2-ssh-tunnel-rds/


SSH 터널링을 사용하는 것이 좋습니다.

  1. 바스 티언 호스트에 퍼티 세션 생성
  2. 연결 -> SSH -> 터널에서 소스 포트를 지정하십시오. 3306, 대상 : yourRDSendpointname : 3306
  3. 추가를 클릭하는 것을 잊지 마세요!
  4. 해당 설정으로 요새 호스트에 연결하십시오.
  5. MySQL 워크 벤치에 새 연결을 추가하고 로컬 호스트 포트 3306을 가리 키십시오 (로컬 클라이언트 시스템에서 3306에 대해 아무 것도 실행하지 않는다고 가정)
  6. RDS 인스턴스의 사용자 이름과 암호 입력




amazon-vpc