Go HCL Makefile Shell
Switch branches/tags
Nothing to show
Latest commit 053135e Dec 14, 2017 @xlr-8 xlr-8 Merge pull request #175 from kartik894/master
Added normal/aggressive policies to optimize cost by bidding based on spot prices
Permalink
Failed to load latest commit information.
.github Add a code contribution checklist (#124) Aug 18, 2017
cloudformation Spot bids: Allow different policies to optimize costs Dec 13, 2017
core Spot bids: Allow different policies to optimize costs Dec 13, 2017
terraform Spot bids: Allow different policies to optimize costs Dec 13, 2017
.codeclimate.yml Configure codeclimate integration, add a bunch of github repo badges Jul 23, 2016
.editorconfig Fix new codeclimate issues Mar 19, 2017
.gitignore Pass LDFLAGS to the upstream version of Makefile.lambda (#136) Aug 29, 2017
.travis.yml Use Go 1.9 in TravisCI (#132) Aug 27, 2017
CHANGELOG.md Changelog update. Dec 31, 2016
CONTRIBUTING.md Add a code contribution checklist (#124) Aug 18, 2017
CUSTOM_BUILDS.md Document the maintaining of forks Mar 29, 2017
FAQ.md Fixed typo (#162) Nov 22, 2017
LICENSE Add license notices Jul 19, 2016
Makefile ci: add lint rule and update help message Dec 3, 2017
README.md Add branch to README.md (#184) Dec 9, 2017
START.md Spot bids: Allow different policies to optimize costs Dec 13, 2017
TECHNICAL_DETAILS.md Mention both Terraform and CloudFormation in the installation instruc… Feb 22, 2017
THIRDPARTY Use CloudFormation for creating the Event Generator Aug 20, 2016
autospotting Spot bids: Allow different policies to optimize costs Dec 13, 2017
autospotting.go Spot bids: Allow different policies to optimize costs Dec 13, 2017
expiration.go minor fix to refer argument (#161) Nov 21, 2017
expiration_date.sh Implement expiration of nightly builds Oct 21, 2017
logo.png Documentation updates Feb 21, 2017

README.md

AutoSpotting

BuildStatus GoReportCard CoverageStatus CodeClimate IssueCount ChatOnGitter

A simple and easy to use tool designed to significantly lower your Amazon AWS costs by automating the use of spot instances.

Savings

How does it work?

When installed and enabled on an existing on-demand AutoScaling group, AutoSpotting clones one of your on-demand instances from the group with a spot instance that is cheaper, at least as large (automatically considering memory, CPU cores and disk volumes) and configured identically to it. Once the new spot instance is ready, it is attached to the group and an on-demand instance is detached and terminated, to keep the group at constant capacity.

It continuously applies this process, across all enabled groups from all regions, gradually replacing your on-demand instances with much cheaper spot instances. For your peace of mind, you can also configure it to keep running a configurable number of on-demand instances, given as percentage or absolute number.

Your groups will then monitor and use these spot instances just like they would do with your on-demand instances. They will automatically join your load balancer and start receiving traffic once passing the health checks.

The installation takes just a few minutes and the existing groups can be enabled and configured individually by using a few additional tags.

This can be seen in action below, you can click to expand the animation:

Workflow

Read here for more information and implementation details.

Frequently asked questions about the project are answered in the FAQ, please read this first before asking for support.

If you have additional questions not covered there, they can be easily added to the crowdsourced source of the FAQ and we'll do our best to answer them either there or on Gitter.

Getting Started

Just like in the above animation, it's as easy as launching a CloudFormation (or Terraform) stack and setting the spot-enabled tag on the AutoScaling groups where you want it enabled to true.

For more detailed information you can read this document

Launch

Note: this installs the latest nightly build, generated automatically from the code after each commit. Even though it's generally stable, it is meant to be used for evaluation purposes and is not recommended for production use. It expires after two months from the date in which the binary was built and comes with no support or warranty.

Stable, carefully tested and supported builds are available from the original author for a fee. Using these builds you are also helping the further development of the software. Please get in touch on gitter if you are interested in purchasing a stable build.

Compiling and Installing

Even though it's recommended to use the provided stable binaries, in case you have some special needs, you can tweak the software, then build and run your customized binaries which for example can be configured not to expire.

More details are available here

Contributing

This project was developed by volunteers in their own spare time. If you find it useful please consider contributing to its development, any help would be greatly appreciated.

You can do it by trying it out and giving feedback, reporting bugs, writing code, improving the documentation, assigning someone to work on it for a few hours a week, spreading the word or simply contacting us and telling about your setup.

Non-trivial code should be submitted according to the contribution guidelines

Support

Community support is available on the gitter chat room on a best effort basis, and people may help you solve issues with the nightly/evaluation binaries.

For the stable AutoSpotting builds, the main author also offers enterprise-grade support and will do as much as possible to help you out with any issues you may have. In addition, custom feature development as well as AWS-related consulting are available for a fee. For more information feel free to get in touch on gitter.

Users

Autospotting is already used by hundreds of individuals and companies around the world, such as:

Uninstall

You just need to remove the AutoSpotting CloudFormation or Terraform stack.

The groups will eventually revert to the original state once the spot market price fluctuations terminate all the spot instances. In some cases this may take months, so you can also terminate them sooner yourself.

Fine-grained control on a per group level can be achieved by removing or setting the spot-enabled tag to any other value. AutoSpotting only touches groups where this tag is set to true.

License

This software is distributed under the terms of the MIT license.