Quando você solicita uma instância spot, a Amazon exige que o userdat esteja no formato base64. Exemplo:
aws ec2 request-spot-instances \
--spot-price 0.01 \
--instance-count 2 \
--launch-specification \
"{ \
\"ImageId\":\"ami-a6926dce\", \
\"InstanceType\":\"m3.medium\", \
\"KeyName\":\"test-key\", \
\"SecurityGroups\": [\"test-sg\"], \
\"UserData\":\"'base64 userdata.sh'\" \
}"
Mais informações em: Solicitar instâncias spot
Exemplo é de: Pequena Dica: Como usar o AWS CLI para iniciar instâncias Spot com UserData