The idea of using an Upstart script as suggested by Romulo Ceccon is great. However, you may not want to hide the magic inside an obscure script. It's perfectly ok to add the mount inside fstab, e.g.
LABEL=cloudimg-rootfs / ext4 defaults 0 0
# auto mount ephemeral storage (if any)
# init contents in /etc/init/mounted-local*.conf
/dev/xvdb /mnt/local1 auto defaults,nofail,nobootwait,comment=cloudconfig 0 2
/dev/xvdc /mnt/local2 auto defaults,nofail,nobootwait,comment=cloudconfig 0 2
/dev/xvdd /mnt/local3 auto defaults,nofail,nobootwait,comment=cloudconfig 0 2
/dev/xvde /mnt/local4 auto defaults,nofail,nobootwait,comment=cloudconfig 0 2
# bind /tmp to /mnt/local1, might still be on / if no ephemeral storage
/mnt/local1 /tmp none bind
And this is the Upstart script:
# File /etc/init/mounted-local1.conf
# mounted-local1 - init ephemeral storage in /mnt/local1
description "Initializes ephemeral storage in /mnt/local1"
start on mounted MOUNTPOINT=/mnt/local1
# provide defult, see /etc/init/mounted-tmp.conf for details
env MOUNTPOINT=/mnt/local1
task
script
# fix permissions if needed
test -d $MOUNTPOINT && chmod 1777 $MOUNTPOINT
# log to /var/log/upstart/mounted-local1.log
#echo "initialized $MOUNTPOINT"
end script
This way, you could create any directory structure and what not on ephemeral storage.
All that's left is mkdir -p /mnt/local{1..4}
and a restart (I wouldn't mount /tmp without as you would hide current files there).