AttachVolume
Attaches an EBS volume to a running or stopped instance and exposes it to the instance with the specified device name.
Encrypted EBS volumes must be attached to instances that support Amazon EBS encryption. For more information, see Amazon EBS encryption in the Amazon EBS User Guide.
After you attach an EBS volume, you must make it available. For more information, see Make an EBS volume available for use.
If a volume has an AWS Marketplace product code:
-
The volume can be attached only to a stopped instance.
-
AWS Marketplace product codes are copied from the volume to the instance.
-
You must be subscribed to the product.
-
The instance type and operating system of the instance must support the product. For example, you can't detach a volume from a Windows instance and attach it to a Linux instance.
For more information, see Attach an Amazon EBS volume to an instance in the Amazon EBS User Guide.
Request Parameters
The following parameters are for this specific action. For more information about required and optional parameters that are common to all actions, see Common Query Parameters.
- Device
-
The device name (for example,
/dev/sdh
orxvdh
).Type: String
Required: Yes
- DryRun
-
Checks whether you have the required permissions for the action, without actually making the request, and provides an error response. If you have the required permissions, the error response is
DryRunOperation
. Otherwise, it isUnauthorizedOperation
.Type: Boolean
Required: No
- InstanceId
-
The ID of the instance.
Type: String
Required: Yes
- VolumeId
-
The ID of the EBS volume. The volume and instance must be within the same Availability Zone.
Type: String
Required: Yes
Response Elements
The following elements are returned by the service.
- associatedResource
-
The ARN of the Amazon ECS or Fargate task to which the volume is attached.
Type: String
- attachTime
-
The time stamp when the attachment initiated.
Type: Timestamp
- deleteOnTermination
-
Indicates whether the EBS volume is deleted on instance termination.
Type: Boolean
- device
-
The device name.
If the volume is attached to a Fargate task, this parameter returns
null
.Type: String
- instanceId
-
The ID of the instance.
If the volume is attached to a Fargate task, this parameter returns
null
.Type: String
- instanceOwningService
-
The service principal of AWS service that owns the underlying instance to which the volume is attached.
This parameter is returned only for volumes that are attached to Fargate tasks.
Type: String
- requestId
-
The ID of the request.
Type: String
- status
-
The attachment state of the volume.
Type: String
Valid Values:
attaching | attached | detaching | detached | busy
- volumeId
-
The ID of the volume.
Type: String
Errors
For information about the errors that are common to all actions, see Common client error codes.
Examples
Example 1
This example request attaches the volume with the ID
vol-1234567890abcdef0
to the instance with the ID
i-1234567890abcdef0
and exposes it as /dev/sdh
.
Sample Request
https://ec2.amazonaws.com/?Action=AttachVolume
&VolumeId=vol-1234567890abcdef0
&InstanceId=i-1234567890abcdef0
&Device=/dev/sdh
&AUTHPARAMS
Sample Response
<AttachVolumeResponse xmlns="http://ec2.amazonaws.com/doc/2016-11-15/">
<requestId>59dbff89-35bd-4eac-99ed-be587EXAMPLE</requestId>
<volumeId>vol-1234567890abcdef0</volumeId>
<instanceId>i-1234567890abcdef0</instanceId>
<device>/dev/sdh</device>
<status>attaching</status>
<attachTime>YYYY-MM-DDTHH:MM:SS.000Z</attachTime>
</AttachVolumeResponse>
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following: