Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
cristim authored Mar 2, 2023
1 parent 2712dce commit 3ed34c8
Showing 1 changed file with 43 additions and 35 deletions.
78 changes: 43 additions & 35 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,37 +1,57 @@
# LeanerCloud GUI - Spot Savings Estimator GUI application.

# Spot Savings Estimator

Welcome to the LeanerCloud AWS Spot cost savings estimation tool!

This tool allows you to estimate the cost savings you can achieve in your AWS account by converting your AutoScaling Groups to Spot instances.
This is a native desktop application that allows you to estimate the cost savings you can achieve in your AWS account by converting your AutoScaling Groups to Spot instances.

You can select various scenarios, such as to keep some of your instances as OnDemand in each group (maybe covered by Reserved Instances or Savings Plans),
You can simulate various scenarios, such as to keep some of your instances as OnDemand in each group (maybe covered by Reserved Instances or Savings Plans),
or only convert some of your AutoScaling Groups to Spot as part of a gradual rollout.

You may use any mechanism to adopt Spot, such as converting the configuration yourself group by group as per what you defined in this tool.
You may use any mechanism to adopt Spot, such as applying the configuration yourself group by group as per your simulation.

But for more convenience you may use [AutoSpotting](AutoSpotting.io), our state of the art cost optimization engine for Spot.

## Integration with AutoSpotting

For your convenience, you can also use [AutoSpotting](AutoSpotting.io), our state of the art cost optimization engine for Spot.
Spot Savings Estimator can be executed independent of AutoSpotting for cost savings simulation/estimation purposes.

AutoSpotting is tightly integrated with
this cost savings estimator, so you can apply this configuration with a single click, by tagging your ASGs as expected by AutoSpotting.
But AutoSpotting allows you to apply the simulation with a single click for minimal time and effort spent, and also in the end getting a more reliable setup.

### About AutoSpotting

AutoSpotting allows you to adopt Spot instances with all the Spot best practices recommended by AWS:
- wide diversification over multiple instance types
- wide diversification over multiple instance types.
- uses a capacity optimized allocation strategy to reduce the frequency of Spot interruptions.

In addition, AutoSpotting also prioritizes for lower cost instances from newer generations and implements a reliable failover to on-demand instances when running out of Spot capacity, which the native ASGs won't do.

### How the integration with AutoSpotting works

In addition, AutoSpotting also prioritizes for lower cost instances from newer generations and implements a reliable failover to on-demand instances when running out of Spot capacity.
AutoSpotting uses tags as configuration mechanism, and most of the times it works without requiring configuration changes on your OnDemand AutoScaling groups, as long as they fit its main requirements/recommendations:
- Use Launch Template/Configuration without instance type overrides
- Span across all AZs from the region

In most situations AutoSpotting doesn't require any configuration changes to your AutoScaling Groups, but uses the existing launch template or launch configuration.
The Savings Estimator can conveniently create the AutoSpotting configuration tags with a single click, so that AutoSpotting will implement the simulated scenario without the need for additional configuration changes.

### Applying the simulation with AutoSpotting

You can create the AutoSpotting configuration tags by clicking the "Generate AutoSpotting configuration" button on the bottom right corner in the Savings view.

These configurations will be persisted as tags on your ASGs, but nothing else will happen until AutoSpotting is installed in the AWS account.

The latest version of AutoSpotting is available on the [AWS Marketplace](https://aws.amazon.com/marketplace/pp/prodview-6uj4pruhgmun6), and you will need to follow these installation instructions to install it:
- Continue to Subscribe/Configuration/Launch
- Install AutoSpotting using either CloudFormation or Terraform from the "Launch this software" view.

You may just use the default parameters and adjust them later if needed.

Once AutoSpotting is installed, any settings created as ASG tags through Savings Estimator will be gradually applied on your AutoScaling groups.

For more details about AutoSpotting, see [AutoSpotting.io](AutoSpotting.io).

## Demo

[![LeanerCloud GUI Demo](https://user-images.githubusercontent.com/95209/222153916-9400f0ea-ff9e-44e6-b14d-e85d5713289b.png)](https://youtu.be/VXfCOXXtLwA)

(click play the demo video on YouTube)
[![Savings Estimator Demo](https://yt-embed.live/embed?v=VXfCOXXtLwA)](https://youtu.be/VXfCOXXtLwA "Savings Estimator demo")

## Precompiled Binaries

Expand All @@ -41,15 +61,14 @@ On Linux you may need to make them executable after you download them, and it's

## Install from source code

On any other OS you should be able to install it from source if you have Go installed:
On any OS you should be able to build and install it from source if you have Go installed:

`go install github.com/LeanerCloud/savings-estimator@latest`

## Credential management

- It assumes you have some AWS credentials configured in the Configuration view, either as profiles or pasted access key/secret.
- The profile configuration is persisted across runs in the Fyne config path (macOS: ~/Library/Preferences/fyne, Linux or BSD: ~/.config/fyne, Windows: ~\AppData\Roaming\fyne), together with some additional settings.
- The pasted access key and secret is ephemeral and only used for the curent run.
- It assumes you have some AWS credentials configured in the Configuration view, either as profiles sourced from the AWS CLI/SDK config file, or use a access key/secret for one-off execution.
- The selected profile configuration is persisted across runs in the Fyne config path, but pasted access key and secrets are ephemeral and only used for the curent run.

## Required IAM permissions

Expand All @@ -63,34 +82,23 @@ ec2:DescribeImages
ec2:DescribeInstances
```

## Dependency on AutoSpotting

`savings-estimator` can be executed independent of AutoSpotting for cost savings simulation/estimation and configuration purposes.
These configurations will be persisted as tags on your ASGs, but nothing else will happen unless AutoSpotting is installed in the AWS account.

The latest version of AutoSpotting is available on the [AWS Marketplace](https://aws.amazon.com/marketplace/pp/prodview-6uj4pruhgmun6), and you will need to follow the installation instructions:
- Continue to Subscribe/Configuration/Launch
- Install AutoSpotting using either CloudFormation or Terraform from the "Launch this software" view

Once AutoSpotting is installed, any settings created as ASG tags through `savings-estimator` will be gradually applied on your AutoScaling groups.

## Local development

`go run .`

## Contributions

## Future plans
Any contributions are welcome throuth the usual GitHub mechanisms (Issues, Pull Requests, Discussions, etc.)

- Play nicely with your Reserved Instances and Savings Plans coverage
- Integrate it with our EBS Optimizer tool for similarly optimizing EBS volumes.
## Future plans

Please refer to our public [roadmap](https://github.com/orgs/LeanerCloud/projects/1).

## License

This tool is available under the AGPL-3 Open Source license.
This software is available under the AGPL-3 Open Source license.


--
## Credits

This tool is proudly written in Go using the [fyne](fyne.io) GUI toolkit.
Savings Estimator is proudly written in Go using the [fyne](fyne.io) GUI toolkit and leverages a lot of OSS code under the hood. Thanks to all those maintainers for their hard work!

0 comments on commit 3ed34c8

Please sign in to comment.