This application collects and displays prices for EC2 spot instances over time. It's written in Python using the Tornado web framework.
-
The daemon
ec2price collector
grabs spot price data from the EC2 API using botocore and stores it in DynamoDB. -
The web interface
ec2price web
displays graphs of the data using NVD3.js.
$ git clone https://github.com/grosskur/ec2price.git
$ cd ec2price
$ heroku create your-ec2price
$ heroku config:set TABLE_PREFIX=$(uuidgen | cut -c 1-8 | tr 'A-Z' 'a-z')
$ heroku config:set COOKIE_SECRET=$(head /dev/urandom | base64 | cut -c 1-40)
$ heroku config:set AWS_ACCESS_KEY_ID=...
$ heroku config:set AWS_SECRET_ACCESS_KEY=...
$ git push heroku master
$ heroku ps:scale web=1
$ heroku addons:add scheduler
$ heroku addons:open scheduler # Add hourly job: "scripts/ec2price collector --once"
- Experiment with Rickshaw for graph drawing
- Use D3 option
interpolation: 'step-after'
for staircase lines