{"id":20251613,"url":"https://github.com/leanercloud/savings-estimator","last_synced_at":"2025-10-24T06:44:09.908Z","repository":{"id":92700566,"uuid":"607752037","full_name":"LeanerCloud/savings-estimator","owner":"LeanerCloud","description":"Desktop application for Windows, Mac and Linux that can be used to estimate your Spot savings and optionally prepare configuration for our AutoSpotting Spot optimization engine.","archived":false,"fork":false,"pushed_at":"2024-05-20T12:54:53.000Z","size":171,"stargazers_count":32,"open_issues_count":0,"forks_count":6,"subscribers_count":4,"default_branch":"main","last_synced_at":"2025-04-10T23:13:35.938Z","etag":null,"topics":["aws","cost-optimization","finops","golang-application","gui-application","tooling"],"latest_commit_sha":null,"homepage":"https://leanercloud.com","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LeanerCloud.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING/fyne.io/fyne/v2/LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-02-28T15:54:53.000Z","updated_at":"2025-01-12T15:48:36.000Z","dependencies_parsed_at":null,"dependency_job_id":"fbf6a3e3-6228-4731-9032-41bd3ec30e90","html_url":"https://github.com/LeanerCloud/savings-estimator","commit_stats":{"total_commits":44,"total_committers":2,"mean_commits":22.0,"dds":"0.36363636363636365","last_synced_commit":"54f7b1bd38022656361aa1d7c3e6aa4bd03f7b50"},"previous_names":["leanercloud/leaner-cloud-gui"],"tags_count":15,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LeanerCloud%2Fsavings-estimator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LeanerCloud%2Fsavings-estimator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LeanerCloud%2Fsavings-estimator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LeanerCloud%2Fsavings-estimator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LeanerCloud","download_url":"https://codeload.github.com/LeanerCloud/savings-estimator/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248312135,"owners_count":21082638,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","cost-optimization","finops","golang-application","gui-application","tooling"],"created_at":"2024-11-14T10:11:25.517Z","updated_at":"2025-10-24T06:44:09.815Z","avatar_url":"https://github.com/LeanerCloud.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Spot Savings Estimator\n\nWelcome to the LeanerCloud AWS Spot cost savings estimation tool!\n\nThis is a native desktop application that allows you to estimate the cost\nsavings you can achieve in your AWS account by converting your AutoScaling\nGroups to Spot instances.\n\nYou can simulate various scenarios, such as to keep some of your instances as\nOnDemand in each group (maybe covered by Reserved Instances or Savings Plans),\nor only convert some of your AutoScaling Groups to Spot as part of a gradual\nrollout.\n\n## Demo\n\n[Demo](https://www.youtube.com/watch?v=VXfCOXXtLwA)\n\nAnd here's a screenshot from that demo:\n\n![Screenshot](https://github.com/LeanerCloud/savings-estimator/assets/95209/897a2fb4-2838-401a-bac0-53b67b1eb77d)\n\n\n\n## Precompiled Binaries\n\nBinaries for Windows, Mac and Linux are available at\n[Releases](https://github.com/LeanerCloud/savings-estimator/releases).\n\nFor macOS, the binaries get reported as damaged because they are not signed with a developer certificate.\nAfter extracting the app file from the archive you need to approve the app file by running the below command, then drag it to the Applications folder in Finder.\n\n```shell\nsudo xattr -r -d com.apple.quarantine savings-estimator.app       \n```\n\nOn Linux you may want to extract the binary in one of the directories listed in the `PATH` variable.\n\n## Install from source code\n\nOn any OS you should be able to build and install it from source if you have Go\ninstalled:\n\n`go install github.com/LeanerCloud/savings-estimator@latest`\n\nThen of Unix-like systems you can run it from `$HOME/go/bin/savings-estimator`\nor just `savings-estimator` if `$HOME/go/bin` is already in your PATH.\n\nOn Windows you should similarly find it in `%USERPROFILE%\\go\\bin\\savings-estimator.exe`\n\n## Credential management\n\n- It assumes you have some AWS credentials configured in the Configuration\nview, either as profiles sourced from the AWS CLI/SDK config file, or use a\naccess key/secret for one-off execution. - The selected profile configuration\nis persisted across runs in the Fyne config path, but pasted access key and\nsecrets are ephemeral and only used for the curent run.\n\n## Required IAM permissions\n\nIt's recommended to use an IAM role with limited permissions.\n\nThe only permissions required at the moment are listed below, but these are\nsubject to change over time as new features are implemented which may require\nmore permissions:\n\n```text\nautoscaling:CreateOrUpdateTags\nautoscaling:DescribeAutoScalingGroups\nec2:DescribeImages\nec2:DescribeInstances\n```\n\nYou can also use our CloudFomation [template](/cloudformation/template.yaml) to\ncreate a role with these permissions, and then assume it using the following\nsnippet added to your `.aws/config`:\n\n```ini\n[profile SavingsEstimator]\nrole_arn = arn:aws:iam::ACCOUNT_ID:role/NAME_OF_THE_ROLE # You can see it in the CloudFormation stack outputs.\nsource_profile = default # or any other profile from the same AWS account\n```\n\n## Integration with AutoSpotting\n\nSpot Savings Estimator can be executed independent of AutoSpotting for cost\nsavings simulation/estimation purposes, maybe to evaluate the opportunity for\nyour particular setup.\n\nYou may then use any mechanism to adopt Spot, such as applying the\nconfiguration yourself group by group as per your simulation.\n\nBut for more convenience you may use [AutoSpotting](AutoSpotting.io), our state\nof the art cost optimization engine for Spot.\n\nAutoSpotting allows you to apply the scenario you simulated with a single click\nfor minimal time and effort spent, and also in the end getting a more reliable\nsetup.\n\n### About AutoSpotting\n\nAutoSpotting allows you to adopt Spot instances with all the Spot best\npractices recommended by AWS:\n\n- wide diversification over multiple instance types.\n- uses a capacity optimized allocation strategy to reduce the frequency of\n  Spot interruptions.\n\nIn addition, AutoSpotting also prioritizes for lower cost instances from newer\ngenerations and implements a reliable failover to on-demand instances when\nrunning out of Spot capacity, which the native ASGs won't do.\n\n### How the integration with AutoSpotting works\n\nAutoSpotting uses tags as configuration mechanism, and most of the times it\nworks without requiring configuration changes on your OnDemand AutoScaling\ngroups, as long as they fit its main requirements/recommendations:\n\n- Use Launch Template/Configuration without instance type overrides\n- Span across all AZs from the region\n\nThe Savings Estimator can conveniently create the AutoSpotting configuration\ntags with a single click, so that AutoSpotting will implement the simulated\nscenario without the need for additional configuration changes.\n\n### Applying the simulation with AutoSpotting\n\nYou can create the AutoSpotting configuration tags by clicking the \"Generate\nAutoSpotting configuration\" button on the bottom right corner in the Savings\nview.\n\nThese configurations will be persisted as tags on your ASGs, but nothing else\nwill happen until AutoSpotting is installed in the AWS account.\n\nThe latest version of AutoSpotting is available on the\n[AWS Marketplace](https://aws.amazon.com/marketplace/pp/prodview-6uj4pruhgmun6),\nand you will need to follow these installation instructions to install it:\n\n- Continue to Subscribe/Configuration/Launch\n- Install AutoSpotting using either CloudFormation or Terraform from the\n  \"Launch this software\" view.\n\nYou may just use the default parameters and adjust them later if needed.\n\nOnce AutoSpotting is installed, any settings created as ASG tags through\nSavings Estimator will be gradually applied on your AutoScaling groups.\n\nFor more details about AutoSpotting, see [AutoSpotting.io](AutoSpotting.io).\n\n## Local development\n\nYou need to have Go installed, then it's as easy as running\n\n`go run .`\n\n## Known issues\n\n- The Fyne GUI library we use requires a graphics card with support for\n  OpenGL 2.x,. Unfortunately VMs and cloud computing instances typically\n  lack the required GPU drivers and will fail to run the Savings Estimator\n  As a workaround you may get it work using\n  [mesa-dist-win](https://github.com/pal1000/mesa-dist-win#installation-and-usage),\n  which offers OpenGL drivers with software rendering support.\n\n## Contributions\n\nAny contributions are welcome through the usual GitHub mechanisms (Issues, Pull\nRequests, Discussions, etc.)\n\n## Future plans\n\nPlease refer to our public [roadmap](https://github.com/orgs/LeanerCloud/projects/1).\n\n## License\n\nThis software is available under the AGPL-3 Open Source license.\n\n## Credits\n\nSavings Estimator is proudly written in Go using the [fyne](fyne.io) GUI\ntoolkit and leverages a lot of OSS code under the hood. Thanks to everyone tho\nworked on those projects for their hard work!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleanercloud%2Fsavings-estimator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fleanercloud%2Fsavings-estimator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fleanercloud%2Fsavings-estimator/lists"}