SSH 및 AWS SSM(시스템 관리자)을 사용하여 프라이빗 RDS 인스턴스에 연결
목적
프라이빗 서브넷에 있으므로 공개적으로 액세스할 수 없는 AWS RDS 인스턴스가 있고 배스천 서버를 설치하거나 공개적으로 대면하는 ec2 인스턴스가 없는 상태에서 이 RDS 인스턴스에 원격으로 연결하려고 합니다.
이 기사에서는 다음과 같은 가정을 합니다.
전제 조건
ec2-instance-connect
- AWS Session Manager를 사용하여 기존 ec2 인스턴스에 연결하고 실행하면 됩니다. apt-get install ec2-instance-connect
참고: Autoscaling 그룹 또는 블루/그린 배포를 사용하는 경우 이를 ec2 사용자 데이터에 추가할 수 있습니다. 새 서버가 생성될 때
ec2-instance-connect
가 설치되었는지 확인하십시오.session-manager-plugin
로컬 ( https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-working-with-install-plugin.html ) SSH 키 생성
ec2 인스턴스에 연결하려면 SSH가 필요합니다. 이미 사용하려는 항목이 있는 경우 다음 단계로 건너뛸 수 있습니다. 그렇지 않은 경우 다음을 통해 만들 수 있습니다.
ssh-keygen -f my_rsa
그러면
my_rsa
및 my_rsa.pub
라는 SSH 개인 및 공개 키가 생성됩니다.SSH 키를 대상 인스턴스에 푸시
ec2 인스턴스에 연결하려면 다음을 통해 SSH 공개 키를 원하는 ec2 인스턴스에 보내야 합니다.
aws ec2-instance-connect send-ssh-public-key \
--instance-id i-0c6e3bd52bbb2373c \
--availability-zone eu-west-1a \
--instance-os-user ubuntu \
--ssh-public-key file:///my_rsa.pub
참고: SSH 공개 키는 인스턴스 메타데이터에서 60초 동안 한 번만 사용할 수 있습니다. 인스턴스에 성공적으로 연결하려면 이 기간 내에 SSH를 사용하여 연결해야 합니다. 키가 만료되기 때문에 이전과 같이 이러한 키를 직접 추적하거나 관리할 필요가 없습니다.
세션 시작
이제 AWS System Manager 세션을 시작하고 포트 전달을 활성화할 수 있습니다. 이 경우 로컬 시스템의 포트
9999
를 대상 ec2 인스턴스의 포트22
로 전달합니다.aws ssm start-session \
--target i-0c6e3bd52bbb2373c \
--document-name AWS-StartPortForwardingSession \
--parameters '{"portNumber":"22", "localPortNumber":"9999"}'
참고: 이것은
9999
의 포트localhost
에서 22
의 포트i-07edf50160ab3172
로 터널링 연결을 유지하기 때문에 정지된 것처럼 보입니다.RDS에 대한 터널 열기(다른 터미널에서)
이제 위에서 생성한 AWS System Manager 세션을 통해 RDS 인스턴스에 대한 터널을 열어야 합니다.
ssh ubuntu@localhost \
-p 9999 \
-N \
-L 3388:production-database.inzy2e1e4v6s.eu-west-1.rds.amazonaws.com:3306
참고:
3388
의 포트localhost
와 3306
의 포트production-database.inzy2e1e4v6s.eu-west-1.rds.amazonaws.com
사이의 터널링 연결을 유지하기 때문에 정지된 것처럼 보입니다.RDS 인스턴스에 연결
위의 단계가 완료되면 이제 선호하는 데이터베이스 클라이언트(SequelPro, HeidiSQL 등)를 사용하여 데이터베이스에 연결할 수 있습니다. 연결 세부 정보는 다음과 같습니다.
i-07edf50160ab3172
localhost
이제 RDS 인스턴스에 액세스할 수 있습니다.
참고문헌
Reference
이 문제에 관하여(SSH 및 AWS SSM(시스템 관리자)을 사용하여 프라이빗 RDS 인스턴스에 연결), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/chrisshennan/connect-to-a-private-rds-instance-using-ssh-aws-ssm-systems-manager-22j0텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)