Skip to content
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
Cannot retrieve contributors at this time

EC2 Spot Price Tracker

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.

Instructions for running on Heroku

$ git clone
$ 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"

To do

  • Experiment with Rickshaw for graph drawing
  • Use D3 option interpolation: 'step-after' for staircase lines

See also