msahin
msahin

Reputation: 1760

AWS EC2 User Data doesn't work after modifying it

Note: There are no asked questions about modifying EC2 instance user data.

my case: I added the user data below at EC2 first launch, and it worked perfectly.

#! /bin/bash
cd ~
echo "Test" > index.html
python -m SimpleHTTPServer 80

After launching the instance, in order to modify the user data I stopped the instance, changed the user data, and restarted the instance. But this time the scripts are not working.

#! /bin/bash
cd ~
echo "Test2" > index.html
python -m SimpleHTTPServer 80

I don't understand why the modified user data didn't work.

Upvotes: 4

Views: 9328

Answers (3)

jtautry
jtautry

Reputation: 11

For Windows instances just add <persist>true</persist> in the user data.

https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-windows-user-data.html

Upvotes: 1

Chris Williams
Chris Williams

Reputation: 35188

By default user data is only run on first boot (except instances using instance store volumes)

If you want to remove one time use the below info:

As per the answer from: https://serverfault.com/questions/797482/how-to-make-ec2-user-data-script-run-again-on-startup

rm /var/lib/cloud/instances/*/sem/config_scripts_user

Or

rm /var/lib/cloud/instance/sem/config_scripts_user

Upvotes: 4

jarmod
jarmod

Reputation: 78653

To quote User data and shell scripts:

By default, user data scripts and cloud-init directives run only during the boot cycle when you first launch an instance. You can update your configuration to ensure that your user data scripts and cloud-init directives run every time you restart your instance. For more information, see How can I execute user data with every restart of my EC2 instance? in the AWS Knowledge Center.

Upvotes: 6

Related Questions