Skip to content

EC2  >  Operations  >  modify_volume

modify_volume

Operation

modify_volume async

modify_volume(input: ModifyVolumeInput, plugins: list[Plugin] | None = None) -> ModifyVolumeOutput

You can modify several parameters of an existing EBS volume, including volume size, volume type, and IOPS capacity. If your EBS volume is attached to a current-generation EC2 instance type, you might be able to apply these changes without stopping the instance or detaching the volume from it. For more information about modifying EBS volumes, see Amazon EBS Elastic Volumes in the Amazon EBS User Guide.

When you complete a resize operation on your volume, you need to extend the volume's file-system size to take advantage of the new storage capacity. For more information, see Extend the file system.

For more information, see Monitor the progress of volume modifications in the Amazon EBS User Guide.

With previous-generation instance types, resizing an EBS volume might require detaching and reattaching the volume or stopping and restarting the instance.

After you initiate a volume modification, you must wait for that modification to reach the completed state before you can initiate another modification for the same volume. You can modify a volume up to four times within a rolling 24-hour period, as long as the volume is in the in-use or available state, and all previous modifications for that volume are completed. If you exceed this limit, you get an error message that indicates when you can perform your next modification.

Parameters:

Name Type Description Default
input ModifyVolumeInput

An instance of ModifyVolumeInput.

required
plugins list[Plugin] | None

A list of callables that modify the configuration dynamically. Changes made by these plugins only apply for the duration of the operation execution and will not affect any other operation invocations.

None

Returns:

Type Description
ModifyVolumeOutput

An instance of ModifyVolumeOutput.

Input

ModifyVolumeInput dataclass

Bases: _SerdeShape

Dataclass for ModifyVolumeInput structure.

Attributes

dry_run class-attribute instance-attribute
dry_run: bool | None = ...

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 is UnauthorizedOperation.

iops class-attribute instance-attribute
iops: int | None = ...

The target IOPS rate of the volume. This parameter is valid only for gp3, io1, and io2 volumes.

The following are the supported values for each volume type:

  • gp3: 3,000 - 80,000 IOPS

  • io1: 100 - 64,000 IOPS

  • io2: 100 - 256,000 IOPS

Note

Instances built on the Nitro System can support up to 256,000 IOPS. Other instances can support up to 32,000 IOPS.

Default: The existing value is retained if you keep the same volume type. If you change the volume type to io1, io2, or gp3, the default is 3,000.

multi_attach_enabled class-attribute instance-attribute
multi_attach_enabled: bool | None = ...

Specifies whether to enable Amazon EBS Multi-Attach. If you enable Multi-Attach, you can attach the volume to up to 16 Nitro-based instances in the same Availability Zone. This parameter is supported with io1 and io2 volumes only. For more information, see Amazon EBS Multi-Attach in the Amazon EBS User Guide.

size class-attribute instance-attribute
size: int | None = ...

The target size of the volume, in GiB. The target volume size must be greater than or equal to the existing size of the volume.

The following are the supported volumes sizes for each volume type:

  • gp2: 1 - 16,384 GiB

  • gp3: 1 - 65,536 GiB

  • io1: 4 - 16,384 GiB

  • io2: 4 - 65,536 GiB

  • st1 and sc1: 125 - 16,384 GiB

  • standard: 1 - 1024 GiB

Default: The existing size is retained.

throughput class-attribute instance-attribute
throughput: int | None = ...

The target throughput of the volume, in MiB/s. This parameter is valid only for gp3 volumes. The maximum value is 2,000.

Default: The existing value is retained if the source and target volume type is gp3. Otherwise, the default value is 125.

Valid Range: Minimum value of 125. Maximum value of 2,000.

volume_id class-attribute instance-attribute
volume_id: str | None = ...

The ID of the volume.

volume_type class-attribute instance-attribute
volume_type: str | None = ...

The target EBS volume type of the volume. For more information, see Amazon EBS volume types in the Amazon EBS User Guide.

Default: The existing type is retained.

Output

ModifyVolumeOutput dataclass

Bases: _SerdeShape

Dataclass for ModifyVolumeOutput structure.

Attributes

response_metadata class-attribute instance-attribute
response_metadata: ResponseMetadata = ...

Metadata about the response that produced this output. Use this to recover the request identifiers a service's support team needs in order to investigate a call. Members of the metadata are individually optional.

volume_modification class-attribute instance-attribute
volume_modification: VolumeModification | None = ...

Information about the volume modification.