StopInstancesCommand

Stops an Amazon EBS-backed instance. For more information, see Stop and start Amazon EC2 instances  in the Amazon EC2 User Guide.

When you stop an instance, we shut it down. You can restart your instance at any time.

You can use the Stop operation together with the Hibernate parameter to hibernate an instance if the instance is enabled for hibernation  and meets the hibernation prerequisites . Stopping an instance doesn't preserve data stored in RAM, while hibernation does. If hibernation fails, a normal shutdown occurs. For more information, see Hibernate your Amazon EC2 instance  in the Amazon EC2 User Guide.

If your instance appears stuck in the stopping state, there might be an issue with the underlying host computer. You can use the Stop operation together with the Force parameter to force stop your instance. For more information, see Troubleshoot Amazon EC2 instance stop issues  in the Amazon EC2 User Guide.

Stopping and hibernating an instance differs from rebooting or terminating it. For example, a stopped or hibernated instance retains its root volume and any data volumes, unlike terminated instances where these volumes are automatically deleted. For more information about the differences between stopping, hibernating, rebooting, and terminating instances, see Amazon EC2 instance state changes  in the Amazon EC2 User Guide.

We don't charge for instance usage or data transfer fees when an instance is stopped. However, the root volume and any data volumes remain and continue to persist your data, and you're charged for volume usage. Every time you start your instance, Amazon EC2 charges a one-minute minimum for instance usage, followed by per-second billing.

You can't stop or hibernate instance store-backed instances.

Example Syntax

Use a bare-bones client and the command you need to make an API call.

import { EC2Client, StopInstancesCommand } from "@aws-sdk/client-ec2"; // ES Modules import
// const { EC2Client, StopInstancesCommand } = require("@aws-sdk/client-ec2"); // CommonJS import
const client = new EC2Client(config);
const input = { // StopInstancesRequest
  InstanceIds: [ // InstanceIdStringList // required
    "STRING_VALUE",
  ],
  Hibernate: true || false,
  DryRun: true || false,
  Force: true || false,
};
const command = new StopInstancesCommand(input);
const response = await client.send(command);
// { // StopInstancesResult
//   StoppingInstances: [ // InstanceStateChangeList
//     { // InstanceStateChange
//       InstanceId: "STRING_VALUE",
//       CurrentState: { // InstanceState
//         Code: Number("int"),
//         Name: "pending" || "running" || "shutting-down" || "terminated" || "stopping" || "stopped",
//       },
//       PreviousState: {
//         Code: Number("int"),
//         Name: "pending" || "running" || "shutting-down" || "terminated" || "stopping" || "stopped",
//       },
//     },
//   ],
// };

Example Usage

 There was an error loading the code editor. Retry

StopInstancesCommand Input

See StopInstancesCommandInput for more details

Parameter
Type
Description
InstanceIds
Required
string[] | undefined

The IDs of the instances.

DryRun
boolean | undefined

Checks whether you have the required permissions for the operation, without actually making the request, and provides an error response. If you have the required permissions, the error response is DryRunOperation. Otherwise, it is UnauthorizedOperation.

Force
boolean | undefined

Forces the instance to stop. 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 using this option, you must perform file system check and repair procedures. This option is not recommended for Windows instances. For more information, see Troubleshoot Amazon EC2 instance stop issues  in the Amazon EC2 User Guide.

Default: false

Hibernate
boolean | undefined

Hibernates the instance if the instance was enabled for hibernation at launch. If the instance cannot hibernate successfully, a normal shutdown occurs. For more information, see Hibernate your instance  in the Amazon EC2 User Guide.

Default: false

StopInstancesCommand Output

Parameter
Type
Description
$metadata
Required
ResponseMetadata
Metadata pertaining to this request.
StoppingInstances
InstanceStateChange[] | undefined

Information about the stopped instances.

Throws

Name
Fault
Details
EC2ServiceException
Base exception class for all service exceptions from EC2 service.