인스턴스 상태 확인 - Amazon Elastic Compute Cloud

인스턴스 상태 확인

인스턴스 상태 모니터링 작업은 Amazon EC2에서 인스턴스의 애플리케이션 실행에 지장을 줄 수 있는 문제를 발견했을 때 빠르게 확인할 수 있는 방법입니다. Amazon EC2는 실행 중인 모든 EC2 인스턴스에서 자동 확인을 수행하여 하드웨어 및 소프트웨어 문제를 식별합니다. 이러한 상태 확인 결과를 토대로 식별 가능한 특정 문제를 확인할 수 있습니다. 이벤트 상태 데이터는 Amazon EC2가 이미 각 인스턴스 상태(pending, running, stopping 등)에 대해 제공하는 정보와 Amazon CloudWatch가 모니터링하는 사용 지표(CPU 사용량, 네트워크 트래픽, 디스크 활동)를 보완합니다.

상태 확인은 1분마다 실행되며 통과 또는 실패 상태를 반환합니다. 모든 검사 결과가 통과인 경우 인스턴스의 전체 상태는 정상으로 표시됩니다. 하나 이상의 검사 결과가 실패인 경우에는 인스턴스의 전체 상태가 손상됨으로 표시됩니다. 상태 확인은 Amazon EC2에 내장된 기능으로 비활성화하거나 삭제할 수 없습니다.

상태 확인이 실패하면 상태 확인에 대한 해당 CloudWatch 지표가 증가합니다. 자세한 내용은 상태 확인 지표 섹션을 참조하세요. 이러한 지표를 사용하여 상태 확인 결과를 기준으로 트리거되는 CloudWatch 경보를 생성할 수 있습니다. 예를 들어 특정 인스턴스의 상태 확인에서 실패 항목이 있을 때 알리는 경보를 생성할 수 있습니다. 자세한 내용은 상태 확인 경보 생성 및 편집 섹션을 참조하세요.

Amazon EC2 인스턴스를 모니터링하고 기본 문제로 인해 인스턴스가 손상된 경우 인스턴스를 자동으로 복구하는 Amazon CloudWatch 경보를 생성할 수도 있습니다. 자세한 내용은 인스턴스 복구 섹션을 참조하세요.

상태 확인 유형

상태 확인에는 세 가지 유형이 있습니다.

시스템 상태 확인

시스템 상태 확인은 인스턴스가 실행되는 AWS 시스템을 모니터링합니다. 이러한 확인에서는 복구 시 AWS 개입이 필요한 인스턴스와 관련된 근본적인 문제를 찾아냅니다. 시스템 상태 확인이 실패한 경우, AWS에서 문제를 해결할 때까지 기다리거나 문제를 직접 해결할 수 있습니다. Amazon EBS가 지원하는 인스턴스의 경우, 직접 인스턴스를 중지한 후 시작할 수 있으며 대부분의 경우 이 인스턴스를 새 호스트로 마이그레이션합니다. 인스턴스 스토어 기반 Linux 인스턴스의 경우 인스턴스를 종료하고 교체할 수 있습니다. Windows 인스턴스의 경우 루트 볼륨은 Amazon EBS 볼륨이어야 합니다. 루트 볼륨에는 인스턴스 스토어가 지원되지 않습니다. 인스턴스 스토어 볼륨은 일시적이며 인스턴스가 중지되면 모든 데이터가 손실됩니다.

다음은 시스템 상태 확인의 실패 원인이 되는 몇 가지 문제의 예입니다.

  • 네트워크 연결 끊김

  • 시스템 전원 중단

  • 물리적 호스트의 소프트웨어 문제

  • 네트워크 연결성에 영향을 주는 물리적 호스트의 하드웨어 문제

시스템 상태 검사에 실패하면 StatusCheckFailed_System 지표가 증가합니다.

베어 메탈 인스턴스

베어 메탈 인스턴스의 운영 체제에서 다시 시작하는 경우 시스템 상태 확인에서 일시적으로 실패 상태를 반환할 수 있습니다. 인스턴스를 사용할 수 있게 되면 시스템 상태 확인에서 통과 상태를 반환해야 합니다.

인스턴스 상태 확인

인스턴스 상태 검사 개별 인스턴스에 대한 소프트웨어 및 네트워크 구성을 모니터링합니다. Amazon EC2는 네트워크 인터페이스(NIC)로 주소 확인 프로토콜(ARP)을 전송하여 인스턴스의 상태를 확인합니다. 이러한 확인에서는 복구 시 사용자의 개입이 필요한 문제를 찾아냅니다. 인스턴스 상태 확인이 실패할 경우에는 일반적으로 사용자가 인스턴스를 재부팅하거나 인스턴스 구성을 변경하는 등의 방법으로 문제를 직접 해결해야 합니다.

다음은 인스턴스 상태 확인의 실패 원인이 되는 몇 가지 문제의 예입니다.

  • 시스템 상태 확인 실패

  • 잘못된 네트워킹 또는 스타트업 구성

  • 메모리가 모두 사용됨

  • 파일 시스템 손상

  • 호환되지 않는 커널

인스턴스 상태 검사에 실패하면 StatusCheckFailed_Instance 지표가 증가합니다.

베어 메탈 인스턴스

베어 메탈 인스턴스의 운영 체제에서 다시 시작하는 경우 인스턴스 상태 확인에서 일시적으로 실패 상태를 반환할 수 있습니다. 인스턴스를 사용할 수 있게 되면 인스턴스 상태 확인에서 통과 상태를 반환해야 합니다.

연결된 EBS 상태 확인

연결된 EBS 상태 확인은 인스턴스에 연결된 Amazon EBS 볼륨이 연결 가능하고 I/O 작업을 완료할 수 있는지 모니터링합니다. StatusCheckFailed_AttachedEBS 지표는 인스턴스에 연결된 하나 이상의 EBS 볼륨이 I/O 작업을 완료할 수 없는 경우 손상을 나타내는 이진 값입니다. 이러한 상태 확인은 컴퓨팅 또는 Amazon EBS 인프라의 근본적인 문제를 감지합니다. 연결된 EBS 상태 확인 지표가 실패하면 AWS에서 문제가 해결될 때까지 기다리거나 영향을 받는 볼륨의 교체 또는 인스턴스 중지 후 재시작 등의 조치를 취할 수 있습니다.

다음은 연결된 EBS 상태 확인의 실패 원인이 되는 몇 가지 문제의 예입니다.

  • EBS 볼륨의 기반이 되는 스토리지 하위 시스템의 하드웨어 또는 소프트웨어 문제

  • EBS 볼륨의 연결성에 영향을 주는 물리적 호스트의 하드웨어 문제

  • 인스턴스와 EBS 볼륨 간의 연결 문제

StatusCheckFailed_AttachedEBS 지표를 사용하여 워크로드의 복원성을 개선할 수 있습니다. 이 지표를 사용하여 상태 확인 결과를 기준으로 트리거되는 Amazon CloudWatch 경보를 생성할 수 있습니다. 예를 들어, 장기간의 영향이 감지되면 보조 인스턴스 또는 가용 영역으로 장애 조치할 수 있습니다. 아니면 EBS CloudWatch 지표를 사용하여 연결된 각 볼륨의 I/O 성능을 모니터링하여 손상된 볼륨을 감지하고 교체할 수 있습니다. 워크로드가 인스턴스에 연결된 EBS 볼륨으로 I/O를 구동하지 않고, 연결된 EBS 상태 확인에 장애가 있는 것으로 표시되는 경우, 인스턴스를 중지하고 시작하여 EBS 볼륨의 연결성에 영향을 미치는 물리적 호스트 문제를 해결할 수 있습니다.

참고
  • 연결된 EBS 상태 확인 지표는 Nitro 인스턴스에만 사용할 수 있습니다.

  • StatusCheckFailed_AttachedEBS 지표를 기반으로 CloudWatch 경보를 생성하여 연결된 EBS 상태 확인 지표를 모니터링할 수 있습니다. describe-instance-status AWS CLI 명령을 사용하여 이 상태 확인을 볼 수는 없습니다.

상태 확인 사용

콘솔 및 명령줄 도구(예: AWS CLI)를 사용하여 상태 확인 작업을 사용할 수 있습니다.

상태 확인 보기

상태 확인을 보려면 다음 방법 중 하나를 사용합니다.

Console
상태 확인 보기
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창에서 인스턴스를 선택합니다.

  3. 인스턴스(Instances) 페이지의 상태 검사(Status check) 열에는 각 인스턴스의 운영 상태가 목록으로 표시됩니다.

  4. 특정 인스턴스의 상태를 보려면 인스턴스를 선택하고 상태 및 경보 탭을 선택합니다.

    
                                            상태 및 경보 확인 탭에서 인스턴스 상태 확인을 봅니다.

    인스턴스 상태 확인이 실패할 경우에는 일반적으로 사용자가 인스턴스를 재부팅하거나 인스턴스 구성을 변경하는 등의 방법으로 문제를 직접 해결해야 합니다. 시스템 또는 인스턴스 상태 확인 실패 문제를 직접 해결하려면 상태 확인에 실패한 인스턴스 문제 해결 섹션을 참조하세요.

  5. 상태 확인에 대한 CloudWatch 지표를 검토하려면 상태 및 경보 탭에서 지표를 확장하여 다음 지표에 대한 그래프를 확인합니다.

    • 시스템에서 상태 확인 실패

    • 인스턴스에서 상태 확인 실패

    자세한 내용은 상태 확인 지표 단원을 참조하십시오.

Command line

describe-instance-status(AWS CLI) 명령을 사용해 실행 중인 인스턴스의 상태 확인 결과를 확인할 수 있습니다.

모든 인스턴스 상태를 확인하려면 다음 명령을 사용합니다.

aws ec2 describe-instance-status

impaired로 표시된 인스턴스의 상태를 모두 확인하려면 다음 명령을 사용합니다.

aws ec2 describe-instance-status \ --filters Name=instance-status.status,Values=impaired

단일 인스턴스의 상태를 확인하려면 다음 명령을 사용합니다.

aws ec2 describe-instance-status \ --instance-ids i-1234567890abcdef0

또는 다음 명령을 사용합니다.

상태 확인 실패로 표시된 인스턴스가 있는 경우, 상태 확인에 실패한 인스턴스 문제 해결 단원을 참조하세요.

상태 확인 경보 생성 및 편집

상태 확인 지표를 사용하여 인스턴스에 실패한 상태 확인이 있을 때 알리는 CloudWatch 경보를 생성할 수 있습니다.

다음 방법 중 하나를 사용하여 상태 확인 경보 생성:

Console

다음 절차에 따라 상태 확인에 실패할 때 이메일을 통해 알림을 전송하거나 인스턴스를 중지, 종료 또는 복구하는 경보를 구성합니다.

상태 확인 경보를 생성하는 방법
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창에서 인스턴스를 선택합니다.

  3. 인스턴스를 선택하고, 상태 검사(Status Checks) 탭을 선택한 후 작업(Actions), 상태 검사 경보 생성(Create status check alarm)을 선택합니다.

  4. [CloudWatch 경보 관리(Manage CloudWatch alarms)] 페이지의 [경보 추가 또는 편집(Add or edit alarm)]에서 [경보 생성(Create an alarm)]을 선택합니다.

  5. 경보 알림(Alarm notification)에서 토글을 켜서 Amazon Simple Notification Service(Amazon SNS) 알림을 구성합니다. 기존 Amazon SNS 주제를 선택하거나 이름을 입력하여 새 주제를 생성합니다.

    수신자 목록에 이메일 주소를 추가했거나 새 주제를 만든 경우 Amazon SNS에서는 각각의 새 주소로 가입 확인 이메일을 보냅니다. 모든 수신자는 각각 이메일에 포함된 링크를 선택하여 가입 여부를 확인해야 합니다. 경고 알림은 확인된 주소로만 전송됩니다.

  6. 경보 작업(Alarm action)에서 토글을 켜서 경보가 트리거될 때 수행할 작업을 지정합니다. 작업을 선택합니다.

  7. [경보 임계값(Alarm thresholds)]에서 경보에 대한 지표와 기준을 선택합니다.

    샘플 그룹화 기준(Group samples by)(평균(Average)) 및 샘플링할 데이터 유형(Type of data to sample)(상태 확인 실패: 모두(Status check failed:either))을 기본 설정으로 두거나 요구 사항에 적합하게 변경할 수 있습니다.

    [연속 기간(Consecutive Period)]에서 평가 주기의 개수를 설정하고 [기간(Period)]에서 경보가 실행되고 이메일 전송이 이루어지기 전에 적용할 평가 주기의 시간 단위를 설정합니다.

  8. (선택 사항) 샘플 지표 데이터의 경우 대시보드에 추가를 선택합니다.

  9. 생성(Create)을 선택합니다.

필요한 경우 인스턴스 상태 경보를 수정할 수 있습니다.

상태 확인 경보를 편집하는 방법
  1. https://console.aws.amazon.com/ec2/에서 Amazon EC2 콘솔을 엽니다.

  2. 탐색 창에서 인스턴스를 선택합니다.

  3. 인스턴스를 선택하고 작업, 모니터링, CloudWatch 경보 관리를 차례로 선택합니다.

  4. [CloudWatch 경보 관리(Manage CloudWatch alarms)] 페이지의 [경보 추가 또는 편집(Add or edit alarm)]에서 [경보 편집(Edit an alarm)]을 선택합니다.

  5. [경보 검색(Search for alarm)]에서 경보를 선택합니다.

  6. 변경을 마치면 [업데이트(Update)]를 선택합니다.

Command line

다음은 인스턴스에서 연속으로 2주기 이상 인스턴스 검사 또는 시스템 상태 확인이 중단되면서 경보가 발생하여 SNS 주제인 arn:aws:sns:us-west-2:111122223333:my-sns-topic에 대한 알림 메시지를 게시하는 예제입니다. 사용된 CloudWatch 지표는 StatusCheckFailed입니다.

AWS CLI를 사용해 상태 확인 경보를 생성하려면
  1. 기존의 SNS 주제를 선택하거나 새로운 주제를 생성합니다. 자세한 내용은 AWS Command Line Interface 사용 설명서에서 Amazon SNS에서 AWS CLI 사용을 참조하세요.

  2. 아래와 같이 list-metrics 명령을 사용하여 Amazon EC2에 유효한 Amazon CloudWatch 지표를 확인합니다.

    aws cloudwatch list-metrics --namespace AWS/EC2
  3. 아래와 같이 put-metric-alarm 명령을 사용하여 경보를 생성합니다.

    aws cloudwatch put-metric-alarm \ --alarm-name StatusCheckFailed-Alarm-for-i-1234567890abcdef0 \ --metric-name StatusCheckFailed \ --namespace AWS/EC2 \ --statistic Maximum \ --dimensions Name=InstanceId,Value=i-1234567890abcdef0 \ --unit Count \ --period 300 \ --evaluation-periods 2 \ --threshold 1 \ --comparison-operator GreaterThanOrEqualToThreshold \ --alarm-actions arn:aws:sns:us-west-2:111122223333:my-sns-topic

    기간은 Amazon CloudWatch 지표가 수집되는 시간 프레임(초)입니다. 이 예제에서는 60초와 5분을 곱셈하여 300초를 사용합니다. 평가 기간은 지표 값을 임계값과 비교해야 하는 연속 기간의 수입니다. 이 예제에서는 2를 사용합니다. 경보 작업은 경보가 트리거될 때 수행할 작업입니다. 이 예제에서는 Amazon SNS를 사용해 이메일을 보낼 수 있도록 경보를 구성합니다.