EC2 직렬 콘솔 사전 조건 - Amazon Elastic Compute Cloud

EC2 직렬 콘솔 사전 조건

AWS 리전

캐나다 서부(캘거리)를 제외한 모든 AWS 리전에서 지원됩니다.

Wavelength 영역 및 AWS Outposts

지원하지 않음.

로컬 영역

모든 로컬 영역에서 지원됩니다.

인스턴스 타입

지원되는 인스턴스 유형

  • Linux

    • Nitro 시스템에 구축된 모든 가상화된 인스턴스에 대해 지원됩니다.

    • 다음을 제외한 모든 베어 메탈 인스턴스에 대한 인자:

      • 범용: a1.metal, mac1.metal, mac2.metal

      • 액셀러레이티드 컴퓨팅: g5g.metal

      • 메모리 최적화: u-6tb1.metal, u-9tb1.metal, u-12tb1.metal, u-18tb1.metal, u-24tb1.metal

  • Windows

    Nitro 시스템에 구축된 모든 가상화된 인스턴스에 대해 지원됩니다. 베어 메탈 인스턴스에서는 지원되지 않습니다.

액세스 권한 부여

EC2 직렬 콘솔에 대한 액세스 권한을 부여하는 구성 작업을 완료해야 합니다. 자세한 내용은 EC2 직렬 콘솔에 대한 액세스 구성 단원을 참조하십시오.

브라우저 기반 클라이언트 지원

브라우저 기반 클라이언트를 사용하여 직렬 콘솔에 연결하려면 브라우저가 WebSocket을 지원해야 합니다. 브라우저가 WebSocket을 지원하지 않는 경우 자체 키 및 SSH 클라이언트를 사용하여 직렬 콘솔에 연결합니다.

인스턴스 상태

running여야 합니다.

인스턴스가 pending, stopping, stopped, shutting-down 또는 terminated 상태인 경우 직렬 콘솔에 연결할 수 없습니다.

인스턴스 상태에 대한 자세한 내용은 인스턴스 수명 주기 섹션을 참조하세요.

Amazon EC2 Systems Manager

인스턴스에서 Amazon EC2 Systems Manager를 사용하는 경우 SSM Agent 버전 3.0.854.0 이상을 인스턴스에 설치해야 합니다. SSM Agent에 대한 자세한 내용은 AWS Systems Manager 사용 설명서에서 SSM Agent 작업을 참조하세요.

선택한 문제 해결 도구 구성

직렬 콘솔을 통해 인스턴스 문제를 해결하기 위해 Linux 인스턴스에서는 GRUB 또는 SysRq를, Windows 인스턴스에서는 Special Admin Console(SAC)을 사용할 수 있습니다. 이러한 도구를 사용하려면 먼저 도구를 사용할 모든 인스턴스에서 구성 단계를 수행해야 합니다.

인스턴스의 운영 체제에 대한 지침을 사용하여 선택한 문제 해결 도구를 구성합니다.

GRUB을 구성하려면 인스턴스를 시작할 때 사용된 AMI에 따라 다음 절차 중 하나를 선택합니다.

Amazon Linux 2
Amazon Linux 2 인스턴스에서 GRUB을 구성하려면
  1. Linux 인스턴스에 연결합니다

  2. /etc/default/grub에서 다음 옵션을 추가하거나 변경합니다.

    • GRUB_TIMEOUT=1을 설정합니다.

    • 추가 GRUB_TERMINAL="console serial".

    • 추가 GRUB_SERIAL_COMMAND="serial --speed=115200".

    다음은 /etc/default/grub의 예제입니다. 시스템 설정에 따라 구성을 변경해야 할 수 있습니다.

    GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,115200n8 net.ifnames=0 biosdevname=0 nvme_core.io_timeout=4294967295 rd.emergency=poweroff rd.shell=0" GRUB_TIMEOUT=1 GRUB_DISABLE_RECOVERY="true" GRUB_TERMINAL="console serial" GRUB_SERIAL_COMMAND="serial --speed=115200"
  3. 다음 명령을 실행하여 업데이트된 구성을 적용합니다.

    [ec2-user ~]$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
Ubuntu
Ubuntu 인스턴스에서 GRUB을 구성하려면
  1. 인스턴스에 연결합니다.

  2. /etc/default/grub.d/50-cloudimg-settings.cfg에서 다음 옵션을 추가하거나 변경합니다.

    • GRUB_TIMEOUT=1을 설정합니다.

    • 추가 GRUB_TIMEOUT_STYLE=menu.

    • 추가 GRUB_TERMINAL="console serial".

    • GRUB_HIDDEN_TIMEOUT를 제거합니다.

    • 추가 GRUB_SERIAL_COMMAND="serial --speed=115200".

    다음은 /etc/default/grub.d/50-cloudimg-settings.cfg의 예제입니다. 시스템 설정에 따라 구성을 변경해야 할 수 있습니다.

    # Cloud Image specific Grub settings for Generic Cloud Images # CLOUD_IMG: This file was created/modified by the Cloud Image build process # Set the recordfail timeout GRUB_RECORDFAIL_TIMEOUT=0 # Do not wait on grub prompt GRUB_TIMEOUT=1 GRUB_TIMEOUT_STYLE=menu # Set the default commandline GRUB_CMDLINE_LINUX_DEFAULT="console=tty1 console=ttyS0 nvme_core.io_timeout=4294967295" # Set the grub console type GRUB_TERMINAL="console serial" GRUB_SERIAL_COMMAND="serial --speed 115200"
  3. 다음 명령을 실행하여 업데이트된 구성을 적용합니다.

    [ec2-user ~]$ sudo update-grub
RHEL
RHEL 인스턴스에서 GRUB을 구성하려면
  1. 인스턴스에 연결합니다.

  2. /etc/default/grub에서 다음 옵션을 추가하거나 변경합니다.

    • GRUB_TERMINAL_OUTPUT를 제거합니다.

    • 추가 GRUB_TERMINAL="console serial".

    • 추가 GRUB_SERIAL_COMMAND="serial --speed=115200".

    다음은 /etc/default/grub의 예제입니다. 시스템 설정에 따라 구성을 변경해야 할 수 있습니다.

    GRUB_TIMEOUT=1 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_CMDLINE_LINUX="console=tty0 console=ttyS0,115200n8 net.ifnames=0 rd.blacklist=nouveau nvme_core.io_timeout=4294967295 crashkernel=auto" GRUB_DISABLE_RECOVERY="true" GRUB_ENABLE_BLSCFG=true GRUB_TERMINAL="console serial" GRUB_SERIAL_COMMAND="serial --speed=115200"
  3. 다음 명령을 실행하여 업데이트된 구성을 적용합니다.

    [ec2-user ~]$ sudo grub2-mkconfig -o /boot/grub2/grub.cfg
CentOS

CentOS AMI를 사용하여 시작되는 인스턴스의 경우 GRUB은 기본적으로 직렬 콘솔에 대해 구성됩니다.

다음은 /etc/default/grub의 예제입니다. 시스템 설정에 따라 구성이 다를 수 있습니다.

GRUB_TIMEOUT=1 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL="serial console" GRUB_SERIAL_COMMAND="serial --speed=115200" GRUB_CMDLINE_LINUX="console=tty0 crashkernel=auto console=ttyS0,115200" GRUB_DISABLE_RECOVERY="true"

SysRq를 구성하려면 현재 부팅 주기에 대해 SysRq 명령을 활성화합니다. 구성을 영구적으로 만들려면 후속 부팅에 대해서도 SysRq 명령을 활성화할 수 있습니다.

현재 부팅 주기에 대해 모든 SysRq 명령을 활성화하려면
  1. 인스턴스에 연결합니다.

  2. 다음 명령을 실행합니다.

    [ec2-user ~]$ sudo sysctl -w kernel.sysrq=1
    참고

    이 설정은 다음 재부팅 시 지워집니다.

후속 부팅에 대해 모든 SysRq 명령을 활성화하려면
  1. /etc/sysctl.d/99-sysrq.conf 파일을 생성하고 자주 사용하는 편집기에서 엽니다.

    [ec2-user ~]$ sudo vi /etc/sysctl.d/99-sysrq.conf
  2. 다음 행을 추가합니다.

    kernel.sysrq=1
  3. 인스턴스를 재부팅하여 변경 사항을 적용합니다.

    [ec2-user ~]$ sudo reboot
  4. login 프롬프트에서 이전에 설정한 암호 기반 사용자의 사용자 이름을 입력한 다음 Enter 키를 누릅니다.

  5. Password 프롬프트에서 암호를 입력한 다음 Enter 키를 누릅니다.

참고

인스턴스에서 SAC를 활성화하면 암호 검색에 의존하는 EC2 서비스가 Amazon EC2 콘솔에서 작동하지 않습니다. Amazon EC2 Windows 시작 에이전트(EC2Config, EC2Launch v1 및 EC2Launch v2)는 직렬 콘솔을 사용하여 다양한 작업을 실행합니다. 인스턴스에서 SAC를 사용 설정하면 이러한 작업이 성공적으로 수행되지 않습니다. Amazon EC2 Windows 시작 에이전트에 대한 자세한 내용은 Windows 인스턴스 구성 섹션을 참조하세요. SAC를 활성화하면 나중에 비활성화할 수 있습니다. 자세한 내용은 SAC 및 부팅 메뉴 비활성화 단원을 참조하십시오.

다음 방법 중 하나를 사용하여 인스턴스에서 SAC 및 부팅 메뉴를 활성화합니다.

PowerShell
Windows 인스턴스에서 SAC 및 부팅 메뉴를 활성화하려면
  1. 인스턴스에 연결하고 상승된 PowerShell 명령줄에서 다음 단계를 수행합니다.

  2. SAC를 활성화합니다.

    bcdedit /ems '{current}' on bcdedit /emssettings EMSPORT:1 EMSBAUDRATE:115200
  3. 부팅 메뉴를 활성화합니다.

    bcdedit /set '{bootmgr}' displaybootmenu yes bcdedit /set '{bootmgr}' timeout 15 bcdedit /set '{bootmgr}' bootems yes
  4. 인스턴스를 재부팅하여 업데이트된 구성을 적용합니다.

    shutdown -r -t 0
Command prompt
Windows 인스턴스에서 SAC 및 부팅 메뉴를 활성화하려면
  1. 인스턴스에 연결하고 명령 프롬프트에서 다음 단계를 수행합니다.

  2. SAC를 활성화합니다.

    bcdedit /ems {current} on bcdedit /emssettings EMSPORT:1 EMSBAUDRATE:115200
  3. 부팅 메뉴를 활성화합니다.

    bcdedit /set {bootmgr} displaybootmenu yes bcdedit /set {bootmgr} timeout 15 bcdedit /set {bootmgr} bootems yes
  4. 인스턴스를 재부팅하여 업데이트된 구성을 적용합니다.

    shutdown -r -t 0