본 기사는 AWS 지원 자동화 워크플로우(Support Automation Workflow)의 "AWSSupport-TroubleshootRDP" 런북을 사용하여 EC2 Windows 인스턴스에 RDP로 연결할 수 없는 문제를 진단하고 해결하는 방법을 설명합니다.
개요
RDP 포트, 네트워크 계층 인증(NLA), Windows 방화벽 프로파일 설정등이 원격 데스크톱 프로토콜(RDP)에 영향을 미쳐 EC2 Windows 인스턴스에 RDP로 연결할 수 없는 경우가 발생될 수 있습니다.
이러한 경우 AWS Support로 지원 케이스를 생성하여 해당 이슈에 대해 문의하고 문제 해결을 시도할 수 있지만, AWS 지원 자동화 워크플로우(Support Automation Workflow) 런북을 이용하면 AWS Support의 도움 없이 직접 빠르게 관련 설정을 확인 및 진단하고 설정 값을 수정하여 이슈를 해결할 수도 있습니다. [1]
참고로, "AWSSupport-TroubleshootRDP" 런북은 이슈가 발생된 대상 EC2 Windows 인스턴스를 온라인 상태에서 설정 확인 및 수정을 진행하지만, 이를 실행하는 사용자가 허용하는 경우 이슈가 발생된 대상 EC2 Windows 인스턴스를 중지하고 오프라인으로 이슈 진단 및 조치를 수행할 수도 있습니다.
중요 - "AWSSupport-TroubleshootRDP" 런북을 실행하기 전에 입력 파라미터 설정을 통해 현재 대상 인스턴스에 설정된 값을 우선 확인하고 이에 대해 신중히 검토 후 설정 변경을 시도해야 합니다.
"AWSSupport-TroubleshootRDP" 런북은 다음과 같은 입력 파라미터를 제공합니다. 실제 "AWSSupport-TroubleshootRDP" 런북의 실행을 위해 각 입력 파라미터를 설정할 때 참고해 주세요.
● InstanceId : 본 자동화 런북을 실행할 대상 인스턴스를 지정합니다.
● AutomationAssumeRole : 드롭다운 목록에서 이 자동화 런북을 실행하는 IAM 역할을 선택합니다. IAM 역할이 지정되지 않은 경우, 자동화는 이 런북을 실행하는 사용자의 권한을 사용합니다.
● Action : 입력되는 값에 따라 RDP 설정을 읽어 오거나(CheckAll) 다른 입력 파라미터의 설정 값을 적용(Custom) 합니다. 또는 RDP 기본 값으로 설정을 적용하고 Windows 방화벽을 비활성화(FixAll) 할 수도 있습니다.
● Firewall : Windows 방화벽(모든 프로파일)을 확인(Check) 하거나 비활성화(Disable) 할 수 있습니다.
● RDPServiceStartupType : RDP 서비스를 확인(Check) 하거나 Windows 부팅 시 자동으로 시작하도록 설정(Auto) 합니다.
● RDPServiceAction : RDP 서비스(TermService) 설정을 확인(Check)하거나 중지 상태인 경우 시작(Start)할 수 있으며 다시 시작(Restart) 또는 강제 재시작(Force-Restart) 할 수 있습니다.
● RDPPortAction : RDP 연결을 위해 설정된 현재 포트를 확인(Check)하거나, RDP 포트를 3389로 수정하고 서비스를 다시 시작(Modify) 할 수 있습니다.
● NLASettingAction : 네트워크 계층 인증(NLA) 활성 여부를 확인(Check) 하거나 비활성화(Disable) 할 수 있습니다.
● RemoteConnections : fDenyTSConnections 설정을 확인(Check) 하거나 활성화(Enable) 할 수 있습니다.
● AllowOffline : 온라인으로 문제 해결에 실패하거나 제공된 인스턴스가 관리형 인스턴스가 아닌 경우 오프라인으로 RDP 설정을 수정할 수 있도록 하려면 true로 설정합니다. 단, 'Action' 입력 파라미터가 "FixAll"로 설정된 경우에만 이 설정이 동작합니다.
● EC2RescueInstanceType : 오프라인으로 RDP 설정을 수정할 때 사용되는 EC2Rescue를 실행할 인스턴스의 유형을 설정합니다. (Offline only)
● SubnetId : 오프라인으로 RDP 설정을 수정할 때 사용되는 EC2Rescue 실행 인스턴스용 서브넷 ID를 설정합니다. 서브넷 ID를 지정하지 않으면 AWS Systems Manager Automation에서 새 VPC를 생성합니다. (Offline only)
● S3BucketName : 오프라인으로 진행되는 문제 해결 로그를 업로드할 계정의 S3 버킷 이름입니다. (Offline only)
다음은 AWS 지원 자동화 워크플로우에서 제공되는 "AWSSupport-TroubleshootRDP" 런북을 통해 EC2 Windows 인스턴스에 설정된 RDP 관련 설정 값을 확인하고 이를 바탕으로 필요한 설정을 변경하여 RDP 연결 이슈를 해결하는 방법에 대해 설명합니다.
- RDP 연결 이슈가 발생되고 있어 진단 및 조치가 필요한 EC2 Windows 인스턴스의 ID를 확인합니다.
- AWS Systems Manager 콘솔로 이동하여 왼쪽 네비게이션에서 자동화(Automation)을 선택합니다.
- 오른쪽의 자동화 실행(Execute automation) 버튼을 클릭합니다.
- 중앙의 자동화 런북에서 "AWSSupport-TroubleshootRDP"를 입력하여 검색하고 결과에 표시된 "AWSSupport-TroubleshootRDP" 런북을 선택한 뒤 하단에서 다음(Next)를 클릭합니다.
- 기본적으로 단순 실행(Simple execution)으로 선택됩니다. 입력 파라미터 섹션에서 필요한 정보를 입력합니다. 본 기사의 시나리오에서는 온라인으로 RDP 연결 이슈를 가진 대상 인스턴스의 설정 값을 우선 확인하고 확인된 설정을 바탕으로 설정 변경을 시도할 것입니다.
따라서 현재 설정을 확인하기 위해 입력 파라미터를 다음과 같이 설정합니다.
● Action : CheckAll
● Firewall : Check
● RDPServiceStartupType : Check
● RDPServiceAction : Check
● RDPPortAction : Check
● NLASettingAction : Check
● RemoteConnections : Check
● AllowOffline : False
- 하단에 실행(Execute)를 클릭합니다.
- 런북이 실행되는 동안 위에서 설명한 작업이 자동으로 진행됩니다.
- 런북이 성공적으로 실행완료되면, 그 결과(Output)을 통해 대상 인스턴스의 RDP 관련 설정을 확인하실 수 있습니다. 본 기사의 시나리오에서는 "Remote Desktop Connections" 설정이 비활성화 되어 있는 것을 확인합니다.
- 확인된 설정을 변경하여 활성화하기 위해 다음과 같은 파라미터 설정과 함께 대상 인스턴스에 다시 "AWSSupport-TroubleshootRDP" 런북을 실행합니다.
● Action : Custom
● Firewall : Check
● RDPServiceStartupType : Check
● RDPServiceAction : Check
● RDPPortAction : Check
● NLASettingAction : Check
● RemoteConnections : Enable
● AllowOffline : False
- 런북이 성공적으로 실행완료되면, 그 결과(Output)을 통해 대상 인스턴스에서 "Remote Desktop Connections" 설정이 활성화 된 것을 확인합니다.
- 이제 대상 인스턴스로 RDP 연결을 다시 시도하여 정상적으로 연결되고 이슈가 해결되었는지 확인합니다.
만약, 위와 같이 AWS 지원 자동화 워크플로우 (Support Automation Workflow) 런북을 진행하였음에도 불구하고 이슈 해결이 어렵거나 보다 전문적인 도움이 필요한 경우, 위와 같이 실행한 런북 실행 ID 및 실행 결과 등의 정보와 함께 AWS Premium Support에 도움을 요청해 주시길 바랍니다.
참고 :
[1] https://docs.aws.amazon.com/systems-manager-automation-runbooks/latest/userguide/automation-awssupport-troubleshootrdp.html