Stop and start your instance
You can stop and start your instance if it has an Amazon EBS volume as its root device. The instance retains its instance ID, but can change as described in the Overview section.
When you stop an instance, we shut it down. We don't charge usage for a stopped instance, or data transfer fees, but we do charge for the storage for any Amazon EBS volumes. Each time you start a stopped instance we charge a minimum of one minute for usage. After one minute, we charge only for the seconds you use. For example, if you run an instance for 20 seconds and then stop it, we charge for a full one minute. If you run an instance for 3 minutes and 40 seconds, we charge for exactly 3 minutes and 40 seconds of usage.
While the instance is stopped, you can treat its root volume like any other volume, and modify it (for example, repair file system problems or update software). You just detach the volume from the stopped instance, attach it to a running instance, make your changes, detach it from the running instance, and then reattach it to the stopped instance. Make sure that you reattach it using the storage device name that's specified as the root device in the block device mapping for the instance.
If you decide that you no longer need an instance, you can terminate it. As soon as the
state of an instance changes to shutting-down
or terminated
, we
stop charging for that instance. For more information, see Terminate your instance. If you'd rather
hibernate the instance, see Hibernate your On-Demand Windows instance. For more
information, see Differences between reboot, stop, hibernate, and
terminate.
Contents
Overview
You can modify the following attributes of an instance only when it is stopped:
-
Instance type
-
User data
-
Kernel
-
RAM disk
If you try to modify these attributes while the instance is running, Amazon EC2 returns the
IncorrectInstanceState
error.
What happens when you stop an instance
When you stop an EC2 instance by using the StopInstances API (for example, by choosing Instance state, Stop instance in the Amazon EC2 console, or by using the stop-instances Amazon CLI command), the following is registered at the OS level:
-
The API request sends a button press event to the guest.
-
Various system services are stopped as a result of the button press event. Graceful shutdown is triggered by the ACPI shutdown button press event from the hypervisor.
-
ACPI shutdown is initiated.
-
The instance shuts down when the graceful shutdown process exits. There is no configurable OS shutdown time.
-
If the instance OS does not shut down cleanly within a few minutes, a hard shutdown is performed.
-
The instance stops running.
-
The instance status changes to
stopping
and thenstopped
. -
(Auto Scaling group) If your instance is in an Auto Scaling group, the Amazon EC2 Auto Scaling service marks the stopped instance as unhealthy, and might terminate it and launch a replacement instance. For more information, see Health checks for Auto Scaling instances in the Amazon EC2 Auto Scaling User Guide.
-
(Windows) When you stop and start a Windows instance, the EC2Config service performs tasks on the instance, such as changing the drive letters for any attached Amazon EBS volumes. For more information about these defaults and how you can change them, see Configure a Windows instance using the EC2Config service.
-
(ClassicLink) When you stop a ClassicLink instance, it's unlinked from the VPC to which it was linked. You must link the instance to the VPC again after starting it. For more information about ClassicLink, see ClassicLink.
By default, when you initiate a shutdown from an Amazon EBS-backed instance, the instance stops. You can change this behavior so that it terminates instead. For more information, see Change the instance initiated shutdown behavior.
When you stop an instance, the following is lost:
-
Data stored in the RAM.
-
Data stored in the instance store volumes.
-
The public IPv4 address that Amazon EC2 automatically assigned to the instance on launch or start. (To retain a public IPv4 address that never changes, you can associate an Elastic IP address with your instance.)
-
(EC2-Classic) With EC2-Classic, Elastic IP addresses are dissociated from your instance. For more information, see EC2-Classic.
When you stop an instance, the following persists:
-
Data stored in the Amazon EBS volumes. The EBS volumes remain attached to the instance.
-
Private IPv4 addresses.
-
IPv6 addresses.
-
Elastic IP addresses associated with the instance. Note that when the instance is stopped, we start charging you for the associated Elastic IP addresses.
For more information, see Differences between reboot, stop, hibernate, and terminate.
What happens when you start an instance
When you start an EC2 instance by using the StartInstances API (for example, by choosing Instance state, Start instance in the Amazon EC2 console, or by using the start-instances Amazon CLI command), the following happens:
-
In most cases, the instance is migrated to a new underlying host computer (though in some cases, it remains on the current host).
-
Amazon EC2 assigns a new public IPv4 address to the instance if the instance is configured to receive a public IPv4 address. (To retain a public IPv4 address that never changes, you can associate an Elastic IP address with your instance.)
For more information, see Differences between reboot, stop, hibernate, and terminate.
Stop and start your instances
You can stop and start your Amazon EBS-backed instance using the console or the command line.
To run a controlled fault injection experiment
You can use Amazon Fault Injection Simulator to test how your application responds when your instance is stopped and started. For more information, see the Amazon Fault Injection Simulator User Guide.
Stop and start your instances on a schedule
You can schedule the stopping and starting of your EC2 instances. The following are two options for configuring this process.
Use Instance Scheduler on Amazon
You can use Instance Scheduler on Amazon to automate the starting and stopping of
EC2 instances. For more information, see How do I
use Instance Scheduler with CloudFormation to schedule EC2 instances?
Use Amazon Lambda and an Amazon EventBridge rule
You can use Lambda and an EventBridge rule to stop and start your instances on a schedule.
For more information, see How do I
stop and start Amazon EC2 instances at regular intervals using Lambda?
Enable stop protection
By default, you can stop your instance using the Amazon EC2 console, command line interface, or API. To prevent your instance from being accidentally stopped, you can enable stop protection for the instance. Stop protection also protects your instance from accidental termination.
The DisableApiStop
attribute controls whether the instance can be stopped using
the Amazon EC2 console, Amazon CLI, or API. You can set the value of this attribute when you
launch the instance, while the instance is running, or while the instance is
stopped.
The DisableApiStop
attribute does not prevent you from stopping an
instance by initiating shutdown from the instance (using an operating system command for
system shutdown).
Considerations
-
Enabling stop protection does not prevent Amazon from stopping the instance when the instance has a scheduled event that stops the instance.
-
Stop protection not only prevents your instance from being accidentally stopped, but also from accidental termination when using the console, Amazon CLI, or API. However, it does not automatically change the
DisableApiTermination
attribute. Note that when theDisableApiStop
attribute is set to false, theDisableApiTermination
attribute is used to determine if the instance can be terminated using the console, Amazon CLI, or API. -
Enabling stop protection does not prevent Amazon EC2 Auto Scaling from terminating an instance when the instance is unhealthy or during scale-in events.
-
You cannot enable stop protection for instance store-backed instances.
-
You cannot enable stop protection for Spot Instances.
-
The Amazon EC2 API follows an eventual consistency model when you enable or disable stop protection. For more information, see Eventual consistency
in the Amazon EC2 API Reference.
Enable stop protection for an instance at launch
You can enable stop protection for an instance when launching the instance using one of the following methods.
Enable stop protection for a running or stopped instance
You can enable stop protection for an instance while the instance is running or stopped using one of the following methods.
Disable stop protection for a running or stopped instance
You can disable stop protection for a running or stopped instance using one of the following methods.
Modify a stopped instance
You can change the instance type, user data, and EBS-optimization attributes of a
stopped instance using the Amazon Web Services Management Console or the command line interface. You can't use
the Amazon Web Services Management Console to modify the DeleteOnTermination
, kernel, or RAM disk
attributes.
To modify an instance attribute
-
To change the instance type, see Change the instance type.
-
To change the user data for your instance, see Work with instance user data.
-
To enable or disable EBS–optimization for your instance, see Modifying EBS–Optimization.
-
To change the
DeleteOnTermination
attribute of the root volume for your instance, see Update the block device mapping of a running instance. You are not required to stop the instance to change this attribute.
To modify an instance attribute using the command line
You can use one of the following commands. For more information about these command line interfaces see Access Amazon EC2.
-
modify-instance-attribute (Amazon CLI)
-
Edit-EC2InstanceAttribute (Amazon Tools for Windows PowerShell)
Find all running and stopped instances
You can find all your running and stopped instances across all Amazon Web Services Regions on a single page in Amazon EC2 Global View. This is especially useful for taking inventory and finding forgotten instances. For information about how to use Global View, see List and filter resources across Regions using Amazon EC2 Global View.
Troubleshoot stopping your instance
If you have stopped your Amazon EBS-backed instance and it appears "stuck" in the
stopping
state, you can forcibly stop it. For more information, see
Troubleshoot stopping your
instance.