have an instance store volume(faster/cheaper) which we would like to create a volume(mkfs) when the instance is stopped and started via systemd. Is the best way for this is to have a shell script and have a systemd service call this?
It's not 100% clear to me what you want to achieve. Are you looking to instantiate (mkfs) a disk when an EC2 instance is created/booted? If that is the case, you should look into Cloud-init to mkfs and mount your disks.