I am trying to schedule my python script in AWS, however I don't want the instances to be running all the time. So, trying to automate the process of:
- Start the EC2 instance on a specific time
- Run the python script within it
- Stop the EC2 instance once the job is completed.
I cannot run this script directly as a Lambda function because the script does some parallel processing which requires more RAM, so choosing a bigger AWS instance rather than writing it as a lambda function. Also, don't want this instance to be running all the time as it is expensive.
So far, I followed Automatic starting and stopping of AWS EC2 instances with Lambda and CloudWatch · matoski.com and created a Lambda function to start and stop the instance at specific time, however I couldn't find a way to run the python script once the instance is started.
Can anyone point me in the right direction?
MY application runs an instance @ 13:39 UST everyday and self shuts down after processing is complete. It uses below
Cloud watch Event/rules config
This triggers an instance which has a cron running to execute Python script
@reboot python /home/Init.py
Once script completes, python job shuts down itself using below snippet