Troubleshoot Amazon EC2 instance stop issues
If your Amazon EBS-backed instance appears stuck in the stopping
state, the issue
might be with the underlying host computer.
To resolve the issue, follow these steps:
-
Force stop the instance
Use the Amazon EC2 console or the AWS CLI to force stop the instance. For the
steps, see Force stop an instance.
The instance will first attempt a graceful shutdown, which includes flushing file
system caches and metadata. If the graceful shutdown fails to complete within the
timeout period, the instance shuts down forcibly without flushing the file system
caches and metadata.
-
After force stop
Perform file system check and repair procedures.
Performing these procedures is crucial because a forced stop prevents flushing
of file system caches and metadata.
-
If force stop fails
If, after 10 minutes, the instance has not stopped, do the following:
-
Post a request for help on AWS re:Post. To help expedite a resolution, include the instance
ID, and describe the steps that you've already taken.
-
Alternatively, if you have a support plan, create a technical support case
in the Support Center.
-
While waiting for assistance, you can create a replacement instance if
needed. For the steps, see (Optional) Create a replacement instance.
There is no cost for instance usage while an instance is in the stopping
state or in any other state except running
. You are only charged for instance
usage when an instance is in the running
state.
Force stop an instance
You can force an instance to stop. If, after 10 minutes, the instance has not stopped,
post a request for help on AWS re:Post. To help expedite
a resolution, include the instance ID, and describe the steps that you've already taken.
Alternatively, if you have a support plan, create a technical support case in the Support Center.
You can force an instance to stop using the console only while the instance is in
the stopping
state. You can force an instance to stop using the AWS CLI
while the instance is in any state, except shutting-down
and
terminated
.
- Console
-
To force stop the instance
Open the Amazon EC2 console at
https://console.aws.amazon.com/ec2/.
-
In the navigation pane, choose Instances and
select the stuck instance.
-
Choose Instance state, Force stop
instance, Stop.
Note that Force stop instance is only
available in the console if your instance is in the
stopping
state. If your instance is in another
state (except shutting-down
and
terminated
) you can use the AWS CLI to force stop your
instance.
- AWS CLI
-
To force stop the instance
Use the stop-instances command with the --force
option.
aws ec2 stop-instances \
--instance-ids i-1234567890abcdef0
\
--force
- PowerShell
-
To force stop the instance
Use the Stop-EC2Instance
cmdlet and set -Enforce
to true
.
Stop-EC2Instance `
-InstanceId i-1234567890abcdef0
`
-Enforce $true
(Optional) Create a replacement instance
While you are waiting for assistance from AWS re:Post or the Support Center, you can create a replacement instance if needed. Create an AMI
from the stuck instance, and launch a new instance using the new AMI.
You can create a replacement instance if the stuck instance produces system status checks only, as
instance status checks will result in the AMI copying over an exact replica of the
broken operating system. After you've confirmed the status message, create the AMI
and launch a new instance using the new AMI.
- Console
-
To create a replacement instance using the console
Open the Amazon EC2 console at
https://console.aws.amazon.com/ec2/.
-
In the navigation pane, choose Instances and
select the stuck instance.
-
Choose Actions, Image and
templates, Create image.
-
On the Create image page, do the
following:
-
Enter a name and description for the AMI.
-
Clear Reboot instance.
-
Choose Create image.
For more information, see Create an AMI from an instance.
-
Launch a new instance from the AMI and verify that the new
instance is working.
-
Select the stuck instance, and choose
Actions, Instance state,
Terminate (delete) instance. If the
instance also gets stuck terminating, Amazon EC2 automatically forces it
to terminate within a few hours.
If you are unable to create an AMI from the instance as described in the previous
procedure, you can set up a replacement instance as follows:
(Alternate) To create a replacement instance using the console
-
Select the instance and choose Description,
Block devices. Select each volume and make note of its
volume ID. Be sure to note which volume is the root volume.
-
In the navigation pane, choose Volumes. Select each
volume for the instance, and choose Actions,
Create Snapshot.
-
In the navigation pane, choose Snapshots. Select the
snapshot that you just created, and choose Actions,
Create Volume.
-
Launch an instance with the same operating system as the stuck instance. Note
the volume ID and device name of its root volume.
-
In the navigation pane, choose Instances, select the
instance that you just launched, and choose Instance state,
Stop instance.
-
In the navigation pane, choose Volumes, select the root
volume of the stopped instance, and choose Actions,
Detach Volume.
-
Select the root volume that you created from the stuck instance, choose
Actions, Attach Volume, and attach
it to the new instance as its root volume (using the device name that you made
note of). Attach any additional non-root volumes to the instance.
-
In the navigation pane, choose Instances and select the
replacement instance. Choose Instance state,
Start instance. Verify that the instance is
working.
-
Select the stuck instance, choose Instance state,
Terminate (delete) instance. If the instance also gets
stuck terminating, Amazon EC2 automatically forces it to terminate within a few
hours.
- AWS CLI
-
To create a replacement instance using the AWS CLI
-
Create an AMI from the stuck instance using the create-image
command with the --no-reboot
option.
aws ec2 create-image \
--instance-id i-1234567890abcdef0
\
--name "my-replacement-ami
" \
--description ""AMI for replacement instance
" \
--no-reboot
-
Launch a new instance from the AMI that you just created, using the
run-instances
command.
-
Verify that the new instance is working.
-
(Optional) Terminate the stuck instance using the terminate-instances command.
aws ec2 terminate-instances --instance-ids i-1234567890abcdef0
- PowerShell
-
To create a replacement instance using the AWS CLI
-
Create an AMI from the stuck instance using the
New-EC2Image
cmdlet and set -NoReboot
to true
.
New-EC2Image `
-InstanceId i-1234567890abcdef0
`
-Name "my-replacement-ami" `
-Description "AMI for replacement instance" `
-NoReboot $true
-
Launch a new instance from the AMI that you just created, using the
New-EC2Instance
cmdlet.
-
Verify that the new instance is working.
-
(Optional) Terminate the stuck instance using the
Remove-EC2Instance
cmdlet.
Remove-EC2Instance -InstanceId i-1234567890abcdef0