SAC를 사용해 Windows 인스턴스 문제 해결하기

SAC를 사용해 Windows 인스턴스 문제 해결하기

Windows의 SAC(Special Administration Console) 기능은 인스턴스 직렬 포트를 통해 Windows 인스턴스를 문제 해결할 수 있는 방법을 제공해요. EC2 Serial Console로 연결해 부팅, 네트워크 구성 등을 SAC를 통해 문제 해결할 수 있습니다. 부팅 프로세스를 중단하거나 Windows를 안전 모드로 부팅할 수 있어요. SAC를 사용하면 키보드와 모니터가 인스턴스의 직렬 포트에 직접 연결된 것처럼 인스턴스에 명령을 입력할 수 있습니다. 직렬 콘솔은 인스턴스에 네트워킹 기능이 필요하지 않습니다.

출처: 문서

본문

Windows의 Special Administration Console(SAC) 기능은 인스턴스 직렬 포트를 통해 Windows 인스턴스를 문제 해결할 수 있는 방법을 제공합니다. EC2 Serial Console로 연결해 부팅, 네트워크 구성 등을 SAC를 통해 문제 해결할 수 있습니다. 부팅 프로세스를 중단하거나 Windows를 안전 모드로 부팅할 수 있습니다. SAC를 사용하면 키보드와 모니터가 인스턴스의 직렬 포트에 직접 연결된 것처럼 인스턴스에 명령을 입력할 수 있습니다. 직렬 콘솔은 인스턴스에 네트워킹 기능이 필요하지 않습니다.

동등한 Linux 문제 해결 도구(GRUB 및 SysRq)는 Troubleshoot your Amazon EC2 instance using the EC2 Serial Console을 참고하세요.

사전 요구사항 (Prerequisites)

SAC를 사용하려면 EC2 Serial Console에 대한 액세스가 필요합니다. 시작하기 전에 Prerequisites for the EC2 Serial Console 및 Configure access to the EC2 Serial Console의 단계를 완료하세요. SAC도 인스턴스에서 활성화되어 있어야 합니다. SAC를 활성화하려면 Enable SAC and the boot menu를 참고하세요.

SAC에는 최소한 EC2Launch v2.5.0 에이전트와 EC2WinUtil driver v3.2.0이 필요합니다. EC2Launch v2는 부팅 중 인스턴스 비밀번호와 RDP 지문 방출 같은 여러 초기화 작업을 위해 직렬 포트에 의존합니다. 직렬 콘솔에 연결하기 전에 인스턴스가 완전히 초기화될 때까지 기다리세요. EC2Launch v2가 출력을 방출하기 전에 연결하거나 최소 요구 버전이 설치되지 않은 경우 인스턴스 비밀번호나 다른 콘솔 출력을 검색하지 못할 수 있습니다.

EC2Launch v2에 대한 자세한 내용은 Use the EC2Launch v2 agent to perform tasks during EC2 Windows instance launch를 참고하세요.

SAC 및 부팅 메뉴 활성화하기

SAC로 인스턴스를 문제 해결하려면 먼저 인스턴스에서 SAC를 활성화해야 합니다. 선택적으로 부팅 프로세스를 중단할 수 있도록 부팅 메뉴를 활성화할 수 있습니다.

Note
버전 2026.09.09부터 다음 AWS AMI에서는 SAC가 기본적으로 활성화됩니다.

  • EC2LaunchV2-Windows_Server-2019-English-Core-Base-*
  • EC2LaunchV2-Windows_Server-2019-English-Full-Base-*

이러한 AMI를 베어 메탈 인스턴스에서 시작하면 다음 단계를 사용해 SAC를 수동으로 다시 활성화해야 합니다.

인스턴스에서 SAC와 부팅 메뉴를 활성화하려면 다음 방법 중 하나를 사용하세요.

PowerShell

Windows 인스턴스에서 SAC 및 부팅 메뉴를 활성화하려면

  1. 인스턴스에 연결하고 상승된 권한의 PowerShell 명령줄에서 다음 단계를 수행합니다.
  2. SAC를 활성화합니다.
bcdedit /ems '{current}' on
bcdedit /emssettings EMSPORT:1 EMSBAUDRATE:115200

베어 메탈 인스턴스에서는 다음을 대신 사용합니다. 이는 Windows가 인스턴스 펌웨어가 정의한 EMS 직렬 포트를 사용하도록 지시합니다.

bcdedit /ems '{current}' on
bcdedit /emssettings BIOS
  1. (선택 사항) 부팅 메뉴를 활성화합니다.
bcdedit /set '{bootmgr}' displaybootmenu yes
bcdedit /set '{bootmgr}' timeout 15
bcdedit /set '{bootmgr}' bootems yes
  1. 인스턴스를 재부팅해 업데이트된 구성을 적용합니다.
shutdown -r -t 0

명령 프롬프트 (Command prompt)

Windows 인스턴스에서 SAC 및 부팅 메뉴를 활성화하려면

  1. 인스턴스에 연결하고 명령 프롬프트에서 다음 단계를 수행합니다.
  2. SAC를 활성화합니다.
bcdedit /ems {current} on
bcdedit /emssettings EMSPORT:1 EMSBAUDRATE:115200

베어 메탈 인스턴스에서는 다음을 대신 사용합니다.

bcdedit /ems {current} on
bcdedit /emssettings BIOS
  1. (선택 사항) 부팅 메뉴를 활성화합니다.
bcdedit /set {bootmgr} displaybootmenu yes
bcdedit /set {bootmgr} timeout 15
bcdedit /set {bootmgr} bootems yes
  1. 인스턴스를 재부팅해 업데이트된 구성을 적용합니다.
shutdown -r -t 0

SAC 사용하기

SAC를 사용해 인스턴스 문제 해결용 셸 채널을 열 수 있어요. SAC> 프롬프트에서 명령 프롬프트 또는 PowerShell 채널을 여는 데 다음 방법 중 하나를 사용하세요.

PowerShell

SAC에서 PowerShell을 사용하려면

  1. 직렬 콘솔에 연결합니다. 인스턴스에서 SAC가 활성화되어 있으면 직렬 콘솔에 SAC> 프롬프트가 표시됩니다. SAC> 프롬프트 대신 빈 화면이 표시될 수 있습니다. Enter를 눌러 SAC> 프롬프트를 표시합니다.
  2. 사용 가능한 명령을 나열하려면 ?를 입력한 다음 Enter를 누릅니다.
  3. 명령 프롬프트 채널(예: cmd0001 또는 cmd0002)을 만들려면 cmd를 입력한 다음 Enter를 누릅니다.
  4. 명령 프롬프트 채널을 보려면 ESC를 누른 다음 TAB을 누릅니다.
  5. 채널을 전환하려면 ESC+TAB+채널 번호를 함께 누릅니다. 예를 들어 cmd0002 채널로 전환하려면(만들어졌다면) ESC+TAB+2를 누릅니다.
  6. 명령 프롬프트 채널에 필요한 자격 증명을 입력합니다.
  7. 명령 프롬프트 채널에서 PowerShell을 시작합니다. 진행률 출력이 직렬 콘솔을 방해하지 않도록 진행률 기본 설정을 무음 모드로 설정합니다.
powershell
$ProgressPreference = "SilentlyContinue"

명령 프롬프트 (Command prompt)

SAC에서 명령 프롬프트를 사용하려면

  1. 직렬 콘솔에 연결합니다. 인스턴스에서 SAC가 활성화되어 있으면 직렬 콘솔에 SAC> 프롬프트가 표시됩니다. SAC> 프롬프트 대신 빈 화면이 표시될 수 있습니다. Enter를 눌러 SAC> 프롬프트를 표시합니다.
  2. 사용 가능한 명령을 나열하려면 ?를 입력한 다음 Enter를 누릅니다.
  3. 명령 프롬프트 채널(예: cmd0001 또는 cmd0002)을 만들려면 cmd를 입력한 다음 Enter를 누릅니다.
  4. 명령 프롬프트 채널을 보려면 ESC를 누른 다음 TAB을 누릅니다.
  5. 채널을 전환하려면 ESC+TAB+채널 번호를 함께 누릅니다.
  6. 명령 프롬프트 채널에 필요한 자격 증명을 입력합니다. 명령 프롬프트는 데스크톱에서 얻는 것과 같은 완전한 기능의 명령 셸이지만, 이미 출력된 문자를 읽을 수 없다는 예외가 있습니다.

기본 제공 SAC 명령 (Built-in SAC commands)

명령 프롬프트 채널을 여는 것 외에도 SAC는 대역 외(out-of-band) 관리를 위해 SAC> 프롬프트에서 직접 실행할 수 있는 기본 제공 명령을 제공합니다. 이러한 명령은 로그인이 필요하지 않습니다. 다음 표는 SAC> 프롬프트에서 사용할 수 있는 기본 제공 명령을 나열합니다. SAC 내에서 이 목록을 표시하려면 ? 또는 help를 입력합니다. SAC 명령은 대소문자를 구분하지 않습니다.

명령 설명
ch 사용 가능한 모든 채널을 나열합니다. 채널 관리 도움말은 ch -?를 입력합니다.
cmd Windows 명령 프롬프트 채널을 만듭니다. 채널을 사용하려면 관리 자격 증명을 제공해야 합니다.
d 현재 커널 로그를 표시합니다.
f t(tlist) 출력을 프로세스만 표시하는 것과 프로세스 및 스레드 모두를 표시하는 것 사이에서 전환합니다.
? 또는 help 사용 가능한 SAC 명령을 나열합니다.
i IP 주소와 함께 모든 네트워크 인터페이스를 나열합니다.
i <#> <ip> <subnet> <gateway> 지정된 네트워크 인터페이스 번호의 IP 주소, 서브넷 마스크, 게이트웨이를 설정합니다. 네트워크 구성 오류로 인스턴스에서 잠긴 후 연결을 복원하는 데 유용합니다.
id 인스턴스 식별 정보를 표시합니다.
k <pid> 지정된 프로세스 ID의 프로세스를 종료합니다. 응답하지 않는 프로세스를 중지하는 데 유용합니다.
l <pid> 지정된 프로세스의 우선순위를 가능한 가장 낮은 값으로 낮춥니다.
lock 명령 프롬프트 채널에 대한 액세스를 잠급니다.
m <pid> <MB-allow> 지정된 프로세스의 메모리 사용량을 지정된 메가바이트 수로 제한합니다.
p 각 정보 화면 후에 t(tlist) 출력을 일시 중지합니다.
r <pid> 지정된 프로세스의 우선순위를 한 단계 높입니다.
s 현재 날짜와 시간을 표시합니다. 설정하려면 s mm/dd/yyyy hh:mm을 사용합니다.
t 실행 중인 프로세스와 스레드(tlist)를 나열합니다.
restart 인스턴스를 즉시 다시 시작합니다.
shutdown 인스턴스를 즉시 종료합니다.
crashdump 정지 오류(크래시)를 강제해 인스턴스가 분석용 메모리 덤프를 생성하게 합니다. 인스턴스에 크래시 덤프가 활성화되어 있어야 합니다.

부팅 메뉴 사용하기

부팅 메뉴가 활성화되어 있고 직렬 콘솔로 연결한 후 인스턴스를 다시 시작하면 부팅 메뉴가 다음과 같이 나타나야 합니다.

부팅 메뉴 명령 (Boot menu commands)

  • ENTER – 운영체제의 선택된 항목을 시작합니다.
  • TAB – 도구 메뉴로 전환합니다.
  • ESC – 취소하고 인스턴스를 다시 시작합니다.
  • ESC 다음에 8 – F8을 누른 것과 같습니다. 선택된 항목의 고급 옵션을 표시합니다.
  • ESC 키 + 왼쪽 화살표 – 초기 부팅 메뉴로 돌아갑니다.

Windows는 이스케이프 시퀀스가 진행 중인지 확인하기 위해 기다리고 있으므로 ESC 키만으로는 기본 메뉴로 돌아가지 않습니다.

알려진 동작 (Known behaviors)

  • 베어 메탈 인스턴스에서 SAC가 표시되지 않음 – 직렬 콘솔에 연결할 때 SAC 콘솔이 표시되지 않으면 SAC가 잘못된 직렬 포트 장치를 사용하고 있을 수 있습니다. 베어 메탈 인스턴스에서 SAC를 다시 활성화하려면 Enable SAC and the boot menu의 베어 메탈 지침을 참고하세요.
  • 연결 시 빈 화면 – SAC가 활성화된 Windows 인스턴스의 직렬 콘솔에 연결할 때 SAC> 프롬프트 대신 빈 화면이 표시될 수 있습니다. Enter를 눌러 SAC> 프롬프트를 표시합니다.
  • 시스템 로그의 예기치 않은 출력 – SAC나 부팅 메뉴를 활성화하면 Amazon EC2 시스템 로그(Amazon EC2 콘솔 또는 get-console-output AWS Command Line Interface(AWS CLI) 명령에서 사용 가능)에 SAC나 부팅 메뉴의 출력이 포함될 수 있습니다. SAC> EVENT: The CMD command is now available. 같은 SAC 출력이나 부팅 메뉴의 [2J[1;1H[0m[37;40m 같은 ANSI 이스케이프 시퀀스가 표시될 수 있습니다. 이 출력은 예상된 동작입니다.

SAC 및 부팅 메뉴 비활성화하기

SAC와 부팅 메뉴를 활성화했다면 나중에 이러한 기능을 비활성화할 수 있습니다.

PowerShell

Windows 인스턴스에서 SAC 및 부팅 메뉴를 비활성화하려면

  1. 인스턴스에 연결하고 상승된 권한의 PowerShell 명령줄에서 다음 단계를 수행합니다.
  2. 먼저 값을 no로 변경해 부팅 메뉴를 비활성화합니다.
bcdedit /set '{bootmgr}' displaybootmenu no
  1. 그런 다음 값을 off로 변경해 SAC를 비활성화합니다.
bcdedit /ems '{current}' off
  1. 인스턴스를 재부팅해 업데이트된 구성을 적용합니다.
shutdown -r -t 0

명령 프롬프트 (Command prompt)

Windows 인스턴스에서 SAC 및 부팅 메뉴를 비활성화하려면

  1. 인스턴스에 연결하고 명령 프롬프트에서 다음 단계를 수행합니다.
  2. 먼저 값을 no로 변경해 부팅 메뉴를 비활성화합니다.
bcdedit /set {bootmgr} displaybootmenu no
  1. 그런 다음 값을 off로 변경해 SAC를 비활성화합니다.
bcdedit /ems {current} off
  1. 인스턴스를 재부팅해 업데이트된 구성을 적용합니다.
shutdown -r -t 0

참고 자료 (See also)

더 알아보기 (Learn more)