Sunday, October 9, 2022

[SOLVED] Attaching an EBS volume to AWS Batch Compute Environments

Issue

I want to set up AWS Batch running few python scripts to do some batch operations on file fetched from S3 and post processing they need to be saved to a volume.

For this I want to configure compute environments in AWS batch.

I wish to use spot instances but i need my EBS volume to be there even after instance is terminated and if new instance is spin up it has to mount same volume as used before.


Solution

Create a instance-template, provide a bootstrap script, for the mentioned case something like:

sudo mkdir -p /<any directory name where volume will be mounted eg: dir>

aws ec2 attach-volume --volume-id <volume_id> --instance-id $(wget -q -O - http://169.254.169.254/latest/meta-data/instance-id) --device /dev/sdf

sudo mount /dev/sdf /<above mentioned dir rg :dir>

in AWS batch definition, use the above template to launch your ec2 machine.



Answered By - ANUBHAV GUPTA
Answer Checked By - Willingham (WPSolving Volunteer)