Amazon EC2 Windows 인스턴스 연결 문제 해결

Amazon EC2 Windows 인스턴스 연결 문제 해결 (Troubleshoot issues connecting to your Amazon EC2 Windows instance)

다음 정보와 일반적인 오류는 Windows 인스턴스에 연결할 때 발생하는 문제를 해결하는 데 도움이 됩니다.

연결 문제 (Connection issues)

  • 원격 데스크톱이 원격 컴퓨터에 연결할 수 없음
  • macOS RDP 클라이언트 관련 오류
  • RDP가 바탕 화면 대신 검은 화면을 표시함
  • 관리자가 아닌 사용자로 인스턴스에 원격 로그온할 수 없음
  • AWS Systems Manager를 사용한 원격 데스크톱 문제 해결
  • 원격 레지스트리로 EC2 인스턴스에서 원격 데스크톱 활성화
  • 개인 키를 잃어버렸습니다. Windows 인스턴스에 어떻게 연결하나요?

원격 데스크톱이 원격 컴퓨터에 연결할 수 없음

인스턴스 연결과 관련된 문제를 해결하려면 다음을 시도하세요.

  • 올바른 공용 DNS 호스트 이름을 사용하고 있는지 확인합니다. (EC2 콘솔에서 인스턴스를 선택하고 세부 정보 창의 Public DNS (IPv4)를 확인합니다.) VPC에 인스턴스가 있고 공용 DNS 이름이 표시되지 않으면 DNS 호스트 이름을 활성화해야 합니다.
  • 인스턴스에 공용 IPv4 주소가 있는지 확인합니다. 없으면 탄력적 IP 주소를 인스턴스에 연결할 수 있습니다.
  • IPv6 주소로 인스턴스에 연결하려면 로컬 컴퓨터에 IPv6 주소가 있고 IPv6 사용이 구성되어 있는지 확인합니다.
  • 보안 그룹에 포트 3389에서 RDP 액세스를 허용하는 규칙이 있는지 확인합니다.
  • 암호를 복사했는데 "Your credentials did not work" 오류가 발생하면 메시지가 표시될 때 수동으로 입력해 보세요. 복사할 때 문자를 빠뜨리거나 공백 문자를 추가했을 수 있습니다.
  • 인스턴스가 상태 검사를 통과했는지 확인합니다.
  • 서브넷의 라우팅 테이블에 VPC 외부로 향하는 모든 트래픽을 VPC의 인터넷 게이트웨이로 보내는 경로가 있는지 확인합니다.
  • Windows 방화벽 또는 기타 방화벽 소프트웨어가 인스턴스로의 RDP 트래픽을 차단하지 않는지 확인합니다. Windows 방화벽을 비활성화하고 보안 그룹 규칙으로 인스턴스에 대한 액세스를 제어하는 것이 좋습니다. 다음 옵션 중 하나를 시도해 보세요.
    • AWSSupport-TroubleshootRDP를 사용해 SSM 에이전트로 Windows 방화벽 프로필을 비활성화합니다(인스턴스가 AWS Systems Manager용으로 구성되어 있어야 함).
    • AWSSupport-ExecuteEC2Rescue를 사용합니다.
    • 인스턴스를 중지하고 루트 볼륨을 분리한 뒤 임시 인스턴스에 데이터 볼륨으로 연결합니다. 임시 인스턴스에 연결해 볼륨을 온라인 상태로 만듭니다. 데이터 볼륨에서 레지스트리 하이브를 로드합니다. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicyStandardProfile에서 EnableFirewall을 0으로 설정합니다. 레지스트리 하이브를 언로드한 뒤 볼륨을 오프라인으로 만듭니다. 볼륨을 임시 인스턴스에서 분리하고 원래 인스턴스에 루트 볼륨으로 연결합니다. 원래 인스턴스를 시작합니다.
  • Active Directory 도메인에 속하지 않은 인스턴스에서는 NLA(Network Level Authentication)가 비활성화되어 있는지 확인합니다(AWSSupport-TroubleshootRDP로 NLA 비활성화).
  • 원격 데스크톱 서비스(TermService)의 시작 유형이 자동(Automatic)이고 서비스가 시작되었는지 확인합니다(AWSSupport-TroubleshootRDP로 RDP 서비스 활성화 및 시작).
  • 기본적으로 3389인 올바른 RDP 포트에 연결하고 있는지 확인합니다(AWSSupport-TroubleshootRDP로 현재 RDP 포트를 읽고 3389로 변경).
  • 인스턴스에서 원격 데스크톱 연결이 허용되는지 확인합니다(AWSSupport-TroubleshootRDP로 원격 데스크톱 연결 활성화).
  • 암호가 만료되지 않았는지 확인합니다. 암호가 만료되었다면 재설정할 수 있습니다.
  • 인스턴스에서 만든 사용자로 연결을 시도하고 "The user cannot connect to the server due to insufficient access privileges" 오류가 발생하면 사용자에게 로컬 로그온 권한을 부여했는지 확인합니다.
  • 최대 허용 동시 RDP 세션 수를 초과하면 세션이 종료됩니다. 기본적으로 인스턴스에 두 개의 동시 RDP 세션이 허용됩니다.

macOS RDP 클라이언트 오류

Microsoft 웹 사이트의 원격 데스크톱 연결 클라이언트로 Windows Server 인스턴스에 연결하면 다음 오류가 발생할 수 있습니다.

Remote Desktop Connection cannot verify the identity of the computer that you want to connect to.

Mac App Store에서 Microsoft Remote Desktop 앱을 다운로드해 인스턴스에 연결하세요.

RDP가 바탕 화면 대신 검은 화면을 표시함

이 문제를 해결하려면 다음을 시도하세요.

  • 추가 정보를 위해 콘솔 출력을 확인합니다. EC2 콘솔에서 인스턴스를 선택한 뒤 Actions, Monitor and troubleshoot, Get system log를 선택합니다.
  • 최신 버전의 RDP 클라이언트를 실행하고 있는지 확인합니다.
  • RDP 클라이언트의 기본 설정을 시도해 보세요.
  • 원격 데스크톱 연결을 사용하는 경우 다음과 같이 /admin 옵션으로 시작해 보세요.
mstsc /v:instance /admin
  • 서버가 전체 화면 애플리케이션을 실행 중이라면 응답을 멈췄을 수 있습니다. Ctrl+Shift+Esc로 Windows 작업 관리자를 시작한 뒤 애플리케이션을 닫습니다.
  • 서버가 과도하게 사용되고 있다면 응답을 멈췄을 수 있습니다. 인스턴스를 모니터링하려면 EC2 콘솔에서 인스턴스를 선택한 뒤 Monitoring 탭을 선택합니다.

관리자가 아닌 사용자로 인스턴스에 원격 로그온할 수 없음

관리자가 아닌 계정으로 Windows 인스턴스에 원격 로그온할 수 없다면 해당 사용자에게 로컬 로그온 권한을 부여했는지 확인하세요.

AWS Systems Manager로 원격 데스크톱 문제 해결

AWS Systems Manager를 사용해 RDP로 Windows 인스턴스에 연결하는 문제를 해결할 수 있습니다.

AWSSupport-TroubleshootRDP

AWSSupport-TroubleshootRDP 자동화 문서를 사용하면 RDP 포트, NLA(Network Layer Authentication), Windows 방화벽 프로필 등 원격 데스크톱 프로토콜(RDP) 연결에 영향을 줄 수 있는 대상 인스턴스의 일반적인 설정을 확인하거나 수정할 수 있습니다. 기본적으로 이 문서는 이러한 설정의 값을 읽어 출력합니다.

이 문서는 EC2 인스턴스, 온프레미스 인스턴스, AWS Systems Manager 사용이 활성화된 가상 머신(관리형 인스턴스)에 사용할 수 있습니다. 또한 Systems Manager 사용이 활성화되지 않은 Windows Server용 EC2 인스턴스에도 사용할 수 있습니다.

AWSSupport-TroubleshootRDP 문서로 문제 해결하기:

  • Systems Manager 콘솔에 로그인합니다.
  • 손상된 인스턴스와 동일한 리전에 있는지 확인합니다.
  • 왼쪽 탐색 창에서 Documents를 선택합니다.
  • Owned by Amazon 탭에서 검색 필드에 AWSSupport-TroubleshootRDP를 입력합니다. 문서가 나타나면 선택합니다.
  • Execute automation을 선택합니다.
  • Execution Mode에서 Simple execution을 선택합니다.
  • Input parameters의 InstanceId에서 Show interactive instance picker를 활성화합니다.
  • Amazon EC2 인스턴스를 선택합니다.
  • 예제를 검토한 뒤 Execute를 선택합니다.
  • 실행 진행 상황을 모니터링하려면 실행 상태가 Pending에서 Success로 변경될 때까지 기다리고 Outputs를 확장해 결과를 확인합니다.

AWSSupport-TroubleshootRDP 예제

다음 예제는 AWSSupport-TroubleshootRDP로 일반적인 문제 해결 작업을 수행하는 방법을 보여줍니다. AWS CLI start-automation-execution 명령 예시나 AWS Management Console 링크를 사용할 수 있습니다.

예제: 현재 RDP 상태 확인

AWS CLI:

aws ssm start-automation-execution --document-name "AWSSupport-TroubleshootRDP" --parameters "InstanceId=i-1234567890abcdef0, Action=Custom" --region region_code

AWS Systems Manager 콘솔:

https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootRDP?region=region#documentVersion=$LATEST

예제: Windows 방화벽 비활성화

AWS CLI:

aws ssm start-automation-execution --document-name "AWSSupport-TroubleshootRDP" --parameters "InstanceId=i-1234567890abcdef0, Action=Custom, Firewall=Disable" --region region_code

AWS Systems Manager 콘솔:

https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootRDP?region=region_code#documentVersion=$LATEST&Firewall=Disable

예제: NLA(네트워크 수준 인증) 비활성화

AWS CLI:

aws ssm start-automation-execution --document-name "AWSSupport-TroubleshootRDP" --parameters "InstanceId=i-1234567890abcdef0, Action=Custom, NLASettingAction=Disable" --region region_code

AWS Systems Manager 콘솔:

https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootRDP?region=region_code#documentVersion

예제: RDP 서비스 시작 유형을 자동으로 설정하고 RDP 서비스 시작

AWS CLI:

aws ssm start-automation-execution --document-name "AWSSupport-TroubleshootRDP" --parameters "InstanceId=i-1234567890abcdef0, Action=Custom, RDPServiceStartupType=Auto, RDPServiceAction=Start" --region region_code

AWS Systems Manager 콘솔:

https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootRDP?region=region_code#documentVersion=$LATEST&RDPServiceStartupType=Auto&RDPServiceAction=Start

예제: 기본 RDP 포트(3389)로 복원

AWS CLI:

aws ssm start-automation-execution --document-name "AWSSupport-TroubleshootRDP" --parameters "InstanceId=i-1234567890abcdef0, Action=Custom, RDPPortAction=Modify" --region region_code

AWS Systems Manager 콘솔:

https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootRDP?region=region_code#documentVersion=$LATEST&RDPPortAction=Modify

예제: 원격 연결 허용

AWS CLI:

aws ssm start-automation-execution --document-name "AWSSupport-TroubleshootRDP" --parameters "InstanceId=i-1234567890abcdef0, Action=Custom, RemoteConnections=Enable" --region region_code

AWS Systems Manager 콘솔:

https://console.aws.amazon.com/systems-manager/automation/execute/AWSSupport-TroubleshootRDP?region=region_code#documentVersion=$LATEST&RemoteConnections=Enable

AWSSupport-ExecuteEC2Rescue

AWSSupport-ExecuteEC2Rescue 자동화 문서는 EC2Rescue for Windows Server를 사용해 EC2 인스턴스 연결 및 RDP 문제를 자동으로 해결하고 복원합니다. 이 문서는 인스턴스의 중지와 재시작을 필요로 합니다. Systems Manager Automation이 인스턴스를 중지하고 AMI를 만듭니다. 인스턴스 스토어 볼륨에 저장된 데이터는 손실됩니다. 탄력적 IP 주소를 사용하지 않으면 공용 IP 주소가 변경됩니다.

AWSSupport-ExecuteEC2Rescue 문서로 문제 해결하기:

  • Systems Manager 콘솔을 엽니다.
  • 손상된 EC2 인스턴스와 동일한 리전에 있는지 확인합니다.
  • 탐색 창에서 Documents를 선택합니다.
  • AWSSupport-ExecuteEC2Rescue 문서를 검색해 선택한 뒤 Execute automation을 선택합니다.
  • Execution Mode에서 Simple execution을 선택합니다.
  • Input parameters 섹션의 UnreachableInstanceId에 연결할 수 없는 인스턴스의 EC2 인스턴스 ID를 입력합니다.
  • (선택 사항) OS 로그를 수집하려면 LogDestination에 Amazon S3 버킷 이름을 입력합니다.
  • Execute를 선택합니다.
  • 실행 상태가 Pending에서 Success로 변경될 때까지 기다리고 Outputs를 확장해 결과를 확인합니다.

원격 레지스트리로 EC2 인스턴스에서 원격 데스크톱 활성화

연결할 수 없는 인스턴스가 AWS Systems Manager Session Manager에서 관리되지 않는 경우 원격 레지스트리로 원격 데스크톱을 활성화할 수 있습니다.

  • EC2 콘솔에서 연결할 수 없는 인스턴스를 중지합니다.
  • 연결할 수 없는 인스턴스의 루트 볼륨을 분리하고 동일한 가용 영역에 있는 연결 가능한 인스턴스에 스토리지 볼륨으로 연결합니다. 같은 가용 영역에 연결 가능한 인스턴스가 없으면 새로 시작합니다. 연결할 수 없는 인스턴스의 루트 볼륨 장치 이름을 기록해 둡니다.
  • 연결 가능한 인스턴스에서 명령 프롬프트 창에 다음 명령을 실행해 디스크 관리를 엽니다.
diskmgmt.msc
  • 연결할 수 없는 인스턴스에서 온 새로 연결된 볼륨의 컨텍스트(마우스 오른쪽 클릭) 메뉴를 열고 Online을 선택합니다.
  • 명령 프롬프트 창에 다음 명령을 실행해 레지스트리 편집기를 엽니다.
regedit
  • 레지스트리 편집기에서 HKEY_LOCAL_MACHINE을 선택한 뒤 File, Load Hive를 선택합니다.
  • 연결된 볼륨의 드라이브를 선택하고 \Windows\System32\config\로 이동해 SYSTEM을 선택한 뒤 Open을 선택합니다.
  • Key Name에 하이브의 고유한 이름을 입력하고 OK를 선택합니다.
  • 레지스트리 변경 전에 레지스트리 하이브를 백업합니다.
    • 레지스트리 편집기 콘솔 트리에서 로드한 하이브(HKEY_LOCAL_MACHINE\your-key-name)를 선택합니다.
    • File, Export를 선택합니다.
    • 내보내기 대화 상자에서 백업 복사본을 저장할 위치를 선택하고 파일 이름을 입력합니다.
    • Save를 선택합니다.
  • 레지스트리 편집기에서 HKEY_LOCAL_MACHINE\your key name\ControlSet001\Control\Terminal Server로 이동한 뒤 세부 정보 창에서 fDenyTSConnections를 엽니다.
  • Edit DWORD value 상자의 Value data 필드에 0을 입력합니다.
  • OK를 선택합니다.

참고 Value data 필드의 값이 1이면 인스턴스가 원격 데스크톱 연결을 거부합니다. 값 0은 원격 데스크톱 연결을 허용합니다.

  • 레지스트리 편집기에서 HKEY_LOCAL_MACHINE\your-key-name을 선택한 뒤 File, Unload Hive를 선택합니다.
  • 레지스트리 편집기와 디스크 관리를 닫습니다.
  • EC2 콘솔에서 연결 가능한 인스턴스에서 볼륨을 분리한 뒤 연결할 수 없는 인스턴스에 다시 연결합니다. 장치 필드에 앞서 기록해 둔 장치 이름을 입력합니다.
  • 연결할 수 없는 인스턴스를 다시 시작합니다.

개인 키를 잃어버렸습니다. Windows 인스턴스에 어떻게 연결하나요?

새로 시작한 Windows 인스턴스에 연결할 때 인스턴스를 시작할 때 지정한 키 페어의 개인 키로 Administrator 계정의 암호를 해독합니다.

Administrator 암호를 잃어버렸고 개인 키도 더 이상 없다면 암호를 재설정하거나 새 인스턴스를 만들어야 합니다. Systems Manager 문서로 암호를 재설정하는 방법은 AWS Systems Manager 사용자 안내서를 참조하세요.

더 알아보기 (Learn more)

출처: Troubleshoot issues connecting to your Amazon EC2 Windows instance

본문