내용으로 건너뛰기

EC2Rescue for Linux를 사용하여 OS 수준 문제를 해결하려면 어떻게 해야 합니까?

3분 분량
0

Amazon Elastic Compute Cloud(Amazon EC2) Linux 인스턴스에 연결할 수 없거나 부팅 문제가 있습니다. EC2Rescue를 사용하여 운영 체제(OS) 문제를 진단하고 문제를 해결하려고 합니다.

간략한 설명

EC2Rescue for Linux를 사용하여 다음 작업을 수행할 수 있습니다.

  • vmstat, iostat 및 mpstat 등과 같은 시스템 사용 보고서를 수집합니다.
  • syslog, dmesg, 애플리케이션 오류 로그, AWS Systems Manager 로그와 같은 로그 및 세부 정보를 수집합니다.
  • 비대칭 라우팅 또는 중복 루트 장치 레이블과 같은 시스템 문제를 감지합니다.
  • OpenSSH 파일 권한 또는 커널 파라미터 활성화 문제와 같은 시스템 문제를 자동으로 해결합니다.

참고: EC2 직렬 콘솔에 대한 액세스 권한이 있는 경우 해당 콘솔을 사용하여 지원되는 Nitro 기반 인스턴스 유형의 문제를 해결할 수 있습니다. 자세한 내용은 EC2 직렬 콘솔에 연결을 참조하십시오. 또한 AWSSupport-ExecuteEC2Rescue 런북을 사용하여 연결 문제를 일으키는 문제를 자동으로 파악하고 해결할 수 있습니다. 자세한 내용은 연결할 수 없는 인스턴스에서 EC2Rescue 도구 실행을 참조하십시오.

해결 방법

전제 조건: 시스템이 EC2Rescue에 대한 OS 및 소프트웨어 요구 사항을 준수하는지 확인하십시오.

EC2Rescue를 사용하여 연결 문제 해결

다음 단계를 완료하십시오.

  1. 문제가 있는 인스턴스의 Amazon Machine Image(AMI)를 사용하여 가상 프라이빗 클라우드(VPC)에서 복구 인스턴스를 시작합니다.
    참고: 새 인스턴스가 문제가 있는 인스턴스와 동일한 가용 영역에 있는지 확인하십시오. 문제가 있는 인스턴스와 동일한 가용 영역에 있는 기존 인스턴스를 사용할 수도 있습니다.

  2. 문제가 있는 인스턴스에서 Amazon Elastic Block Store(Amazon EBS) 루트 볼륨을 분리합니다. 디바이스 이름(예: /dev/xvda/dev/sda1)을 기록해 두십시오.

  3. 복구 인스턴스에 보조 디바이스(예: /dev/sdf)로 Amazon EBS 볼륨을 연결합니다.
    참고: 인스턴스의 루트 디바이스가 Amazon EBS에서 지원하는 볼륨인 경우 인스턴스를 중지한 후 다시 시작하십시오.

  4. SSH를 사용하여 복구 인스턴스에 연결합니다.

  5. 루트 사용자로 다음 명령을 실행하여 올바른 디바이스 이름을 확인합니다.

    $ sudo -i
    # lsblk
    # rescuedev=/dev/xvdf1

    참고: lsblk를 실행할 때 출력에 있는 디바이스 이름을 기록해 두십시오. xvsf1을 복구 인스턴스에 연결된 디바이스의 디바이스 이름으로 바꾸십시오.

  6. 아직 사용하지 않는 기존 임시 마운트 지점을 선택하려면 다음 명령을 실행합니다.

    # rescuemnt=/mnt
    # mkdir -p $rescuemnt

    참고: /mnt를 마운트 지점으로 사용하는 것이 좋습니다.

  7. 연결된 볼륨에서 루트 파일 시스템을 마운트하려면 다음 명령을 실행합니다.

    # mount $rescuedev $rescuemnt

    볼륨 마운트에 장애가 발생하면 다음 명령을 실행합니다.

    dmesg | tail

    로그에 충돌하는 범용 고유 식별자(UUID) 가 표시되면 -o nouuid 옵션을 사용하여 이전 명령을 다시 실행합니다. 예시:

    mount -o nouuid $rescuedev $rescuemnt
  8. 특수 파일 시스템을 마운트하고 루트 디렉터리를 새 파일 시스템으로 변경하려면 다음 명령을 실행합니다.

    # for i in proc sys dev run; do mount --bind /$i $rescuemnt/$i ; done
    # chroot $rescuemnt
  9. 오프라인 Linux 루트 볼륨에 Linux용 EC2Rescue 도구를 다운로드하여 설치합니다.

  10. 모든 모듈을 실행하는 옵션 없이 EC2Rescue for Linux를 실행합니다.

  11. 결과에 따라 다음 명령을 실행하여 지원되는 모듈에 대한 수정을 활성화합니다.

# ./ec2rl run --remediate
  1. chroot를 종료하고 보조 디바이스를 마운트 해제하려면 다음 명령을 실행합니다.
# exit
# umount $rescuemnt/{proc,sys,dev,run,}

참고: 마운트 해제 작업이 실패하면 보조 디바이스를 마운트 해제하기 전에 복구 인스턴스를 중지하거나 재부팅하십시오. 복구 EC2 인스턴스에서 보조 볼륨을 분리합니다. 원본 인스턴스에 /dev/xvda 또는 /dev/sda1 루트 볼륨으로 /dev/sdf 보조 볼륨을 연결합니다. 인스턴스를 시작한 다음, 인스턴스가 예상대로 작동하는지 확인합니다.

다른 문제 해결 방법 사용

OS 수준 문제를 추가로 해결하려면 다음 작업을 수행하십시오.

관련 정보

EC2Rescue 및 Amazon EC2 Systems Manager Automation을 사용하여 손상된 인스턴스 복구

Amazon EC2 Windows 인스턴스와 관련된 문제 해결