I'd like to dynamically mount and unmount an EBS volumes to a running AWS instance using a script and was wondering whether this is achievable, both on linux and windows instances, and if so, what is the expected duration of such operation.
Using AWS CLI and Bourne shell script.
Attaches an EBS volume to a running or stopped instance and exposes it to the instance with the specified device name.
aws ec2 attach-volume --volume-id vol-1234567890abcdef0 --instance-id i-01474ef662b89480 --device /dev/sdf
Detaches an EBS volume from an instance. Make sure to unmount any file systems on the device within your operating system before detaching the volume.
aws ec2 detach-volume --volume-id vol-1234567890abcdef0
Use Python and Boto3 which has APIs to attach and detach volumes.
Attaches an EBS volume to a running or stopped instance and exposes it to the instance with the specified device name.
import boto3
client = boto3.client('ec2')
response = client.attach_volume(
DryRun=True|False,
VolumeId='string',
InstanceId='string',
Device='string'
)
Detaches an EBS volume from an instance. Make sure to unmount any file systems on the device within your operating system before detaching the volume.
response = client.detach_volume(
DryRun=True|False,
VolumeId='string',
InstanceId='string',
Device='string',
Force=True|False
)