Spotr simplifies launching, snapshotting and destroying AWS spot instances.
It's designed for users wanting to use a spot instance as a development box, and persist the state in between sessions.
First, install the library from pip or clone this git repository and install locally:
$ pip install spotr
$ pip install -e .
python -m build
Next, set up credentials and region (in ~/.aws/config
):
[default]
aws_access_key_id = YOUR_KEY
aws_secret_access_key = YOUR_SECRET
region=us-west-1
Then, launch an instance using:
$ spotr launch --type p2.xlarge --max-bid .30 --ami ami-4bf20033
List your running spotr instances with:
$ spotr list
When you're done working, you can save the current state (take a snapshot) using:
$ spotr snapshot
And then to terminate the instance:
$ spotr destroy
Next time you launch an instance, leave out the --ami tag and you'll restore the most recent snapshot taken with spotr.
$ spotr launch --type p2.xlarge --max-bid .30
You can specify default configurations in ~/.spotr/config
:
[config]
max_bid=.30
type=p2.xlarge
ebs_optimized=true
security_group_id=sg-XXXXXXXXXXXXXXX
ami=ami-XXXXXXXXXXXXXXXX
us-west-2a_subnet_id=subnet-XXXXXXXX
us-west-2b_subnet_id=subnet-XXXXXXXX
us-west-2c_subnet_id=subnet-XXXXXXXX
us-west-2d_subnet_id=subnet-XXXXXXXX
iam_instance_profile_arn=arn:aws:iam::XXXXXXXX:instance-profile/instance-profile-role
hosted_zone_id=XXXXXXXXXXX
record_name=subdomain.example.com
user_data=#cloud-config
runcmd:
- [ sh, -c, "/bin/bash /opt/dosomethinguseful.sh" ]