Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스를 원격 데스크톱 프로토콜(RDP) 에 연결하고 싶습니다. 이 연결에 Bastion 호스트 없이 AWS Systems Manager Session Manager 포트 전달을 사용하고 싶습니다.
해결 방법
포트 전달은 Systems Manager Session Manager에서 사용할 수 있는 기능입니다. 이 기능을 사용하면 로컬 시스템과 프라이빗 서브넷에 배포된 인스턴스 간에 터널을 만들 수 있습니다. 인바운드 포트를 열거나 Bastion 호스트를 구성할 필요가 없습니다. 보안 그룹에서 인바운드 액세스를 차단한 상태로 유지할 때 이 기능을 사용하면 RDP를 통해 Amazon EC2 Windows 인스턴스에 연결할 수 있습니다.
참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생하는 경우, 최신 AWS CLI 버전을 사용하고 있는지 확인하세요.
사전 요구 사항 확인
사전 요구 사항:
연결 설정
1.로컬 컴퓨터에서 EC2 인스턴스로의 포트 전달 세션을 설정합니다.
로컬 컴퓨터에서 다음 명령을 실행합니다.
aws ssm start-session --target <instanceid> --document-name AWS-StartPortForwardingSession --parameters "localPortNumber=55678,portNumber=3389"
이렇게 하면 로컬 컴퓨터의 포트 55678에서 원격 EC2 인스턴스의 포트 3389(RDP 포트)로 터널이 설정됩니다.
또한 이 명령은 EC2 인스턴스 운영 체제가 기본 포트 3389에서 RDP 연결을 허용하도록 구성되어 있다고 가정합니다. localPortNumber 및 portNumber의 값을 사용자 값으로 바꾸세요.
세션 연결에 성공하면 다음 메시지가 표시됩니다.
Starting session with SessionId: xxxxx-01234567891011abc
Port 55678 opened for sessionId xxxxx-01234567891011abc
Waiting for connections...
- 터널을 사용하여 RDP를 통해 원격 EC2 인스턴스에 연결합니다.
로컬 RDP 클라이언트를 사용하여 localhost:55678에 연결합니다. 그러면 트래픽이 EC2 인스턴스의 원격 포트 3389로 전달됩니다.
RDP 세션에 연결한 후 AWS CLI는 다음 메시지와 함께 터널을 통해 연결이 설정되었음을 나타냅니다.
Connection accepted for session [xxxxx-01234567891011abc]
- 포트 전달 세션 종료:
RDP 세션을 닫은 후 AWS CLI에서 Ctrl+C를 눌러 포트 전달 세션을 종료합니다. 또는 AWS Systems Manager 콘솔에서 세션을 종료할 수 있습니다.
다음과 같은 메시지가 표시됩니다.
Terminate signal received, exiting.
Exiting session with sessionId: xxxxx-01234567891011abc.
연결 문제 해결
세션이 연결되지 않는 경우 다음과 같은 이유 때문일 수 있습니다.
자세한 내용은 Session Manager 문제 해결을 참고하세요.