Status checks for your instances
With instance status monitoring, you can quickly determine whether Amazon EC2 has
detected
any problems that might prevent your instances from running applications. Amazon EC2
performs
automated checks on every running EC2 instance to identify hardware and software issues.
You can view the results of these status checks to identify specific and detectable
problems. The event status data augments the information that Amazon EC2 already provides
about the state of each instance (such as pending
, running
,
stopping
) and the utilization metrics that Amazon CloudWatch monitors (CPU
utilization, network traffic, and disk activity).
Status checks are performed every minute, returning a pass or a fail status. If all checks pass, the overall status of the instance is OK. If one or more checks fail, the overall status is impaired. Status checks are built into Amazon EC2, so they cannot be disabled or deleted.
When a status check fails, the corresponding CloudWatch metric for status checks is incremented. For more information, see Status check metrics. You can use these metrics to create CloudWatch alarms that are triggered based on the result of the status checks. For example, you can create an alarm to warn you if status checks fail on a specific instance. For more information, see Create and edit status check alarms.
You can also create an Amazon CloudWatch alarm that monitors an Amazon EC2 instance and automatically recovers the instance if it becomes impaired due to an underlying issue. For more information, see Recover your instance.
Contents
Types of status checks
There are two types of status checks: system status checks and instance status checks.
System status checks
System status checks monitor the AWS systems on which your instance runs. These checks detect underlying problems with your instance that require AWS involvement to repair. When a system status check fails, you can choose to wait for AWS to fix the issue, or you can resolve it yourself. For instances backed by Amazon EBS, you can stop and start the instance yourself, which in most cases results in the instance being migrated to a new host. For Linux instances backed by instance store, you can terminate and replace the instance. For Windows instances, the root volume must be an Amazon EBS volume; instance store is not supported for the root volume. Note that instance store volumes are ephemeral and all data is lost when the instance is stopped.
The following are examples of problems that can cause system status checks to fail:
-
Loss of network connectivity
-
Loss of system power
-
Software issues on the physical host
-
Hardware issues on the physical host that impact network reachability
If you perform a restart from the operating system on a bare metal instance, the system status check might temporarily return a fail status. When the instance becomes available, the system status check should return a pass status.
Instance status checks
Instance status checks monitor the software and network configuration of your individual instance. Amazon EC2 checks the health of the instance by sending an address resolution protocol (ARP) request to the network interface (NIC). These checks detect problems that require your involvement to repair. When an instance status check fails, you typically must address the problem yourself (for example, by rebooting the instance or by making instance configuration changes).
The following are examples of problems that can cause instance status checks to fail:
-
Failed system status checks
-
Incorrect networking or startup configuration
-
Exhausted memory
-
Corrupted file system
-
During instance reboot or while a Windows instance store-backed instance is being bundled, an instance status check reports a failure until the instance becomes available again.
If you perform a restart from the operating system on a bare metal instance, the instance status check might temporarily return a fail status. When the instance becomes available, the instance status check should return a pass status.
View status checks
Amazon EC2 provides you with several ways to view and work with status checks.
View status using the console
You can view status checks using the AWS Management Console.
View status using the command line
You can view status checks for running instances using the describe-instance-status (AWS CLI) command.
To view the status of all instances, use the following command.
aws ec2 describe-instance-status
To get the status of all instances with an instance status of
impaired
, use the following command.
aws ec2 describe-instance-status \ --filters Name=instance-status.status,Values=impaired
To get the status of a single instance, use the following command.
aws ec2 describe-instance-status \ --instance-ids
i-1234567890abcdef0
Alternatively, use the following commands:
-
Get-EC2InstanceStatus (AWS Tools for Windows PowerShell)
-
DescribeInstanceStatus (Amazon EC2 Query API)
Report instance status
You can provide feedback if you are having problems with an instance whose status is not shown as impaired, or if you want to send AWS additional details about the problems you are experiencing with an impaired instance.
We use reported feedback to identify issues impacting multiple customers, but do not respond to individual account issues. Providing feedback does not change the status check results that you currently see for the instance.
Report status feedback using the console
Report status feedback using the command line
Use the report-instance-status (AWS CLI) command to send feedback about the status of an impaired instance.
aws ec2 report-instance-status \ --instances
i-1234567890abcdef0
\ --status impaired \ --reason-codescode
Alternatively, use the following commands:
-
Send-EC2InstanceStatus (AWS Tools for Windows PowerShell)
-
ReportInstanceStatus (Amazon EC2 Query API)
Create and edit status check alarms
You can use the status check metrics to create CloudWatch alarms to notify you when an instance has a failed status check.
Create a status check alarm using the console
Use the following procedure to configure an alarm that sends you a notification by email, or stops, terminates, or recovers an instance when it fails a status check.
If you need to make changes to an instance status alarm, you can edit it.
Create a status check alarm using the AWS CLI
In the following example, the alarm publishes a notification to an SNS topic,
arn:aws:sns:us-west-2:111122223333:my-sns-topic
, when the
instance fails either the instance check or system status check for at least two
consecutive periods. The CloudWatch metric used is
StatusCheckFailed
.
To create a status check alarm using the AWS CLI
-
Select an existing SNS topic or create a new one. For more information, see Using the AWS CLI with Amazon SNS in the AWS Command Line Interface User Guide.
-
Use the following list-metrics command to view the available Amazon CloudWatch metrics for Amazon EC2.
aws cloudwatch list-metrics --namespace AWS/EC2
-
Use the following put-metric-alarm command to create the 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-actionsarn:aws:sns:us-west-2:111122223333:my-sns-topic
The period is the time frame, in seconds, in which Amazon CloudWatch metrics are collected. This example uses 300, which is 60 seconds multiplied by 5 minutes. The evaluation period is the number of consecutive periods for which the value of the metric must be compared to the threshold. This example uses 2. The alarm actions are the actions to perform when this alarm is triggered. This example configures the alarm to send an email using Amazon SNS.