EC2 startup on schedule
Solution 1:
You can now do this with Amazon OpsWorks. After you've set up the main stuff, just make a new instance and set its scaling type to "time-based" (you can't change this for some reason once the instance has been made):
Now, just click on the "Instances > Time-Based" category and setup the schedule:
Solution 2:
Given your constraints, the desired functionality is unfortunately not covered by the two dedicated automation mechanisms available as AWS Products & Services right now:
- Auto Scaling - is a web service designed to automatically launch or terminate Amazon Elastic Compute Cloud (Amazon EC2) instances based on user-defined policies, schedules, and health checks.
- AWS CloudFormation - gives developers and systems administrators an easy way to create and manage a collection of related AWS resources, provisioning and updating them in an orderly and predictable fashion.
While starting/stopping/rebooting an instance conceptually falls into the manage category of the latter, it is not available like so (which incidentally is the reason we provide a separate Task specifically for this functionality within the meanwhile deprecated Bamboo AWS Plugin and its successor Tasks For AWS).
Consequently the approaches outlined in my answer to How to turn on/off cloud instances during office hours are still applicable, albeit with the additional constraint that you would need to find a provider hosting your script or continuous integration solution for free:
Hosting scripts has e.g. been possible for quite a while already by means of those cron job providers.
Given the current explosion in Platform as a Service (PaaS) solutions there are quite some providers, that will allow you to do host scripts and/or continuous integration solutions one way or another as well.
Obviously you'll need to verify, whether using the free tiers available for purposes like this is acceptable according to the respective Terms of Use of a provider in question.