Existing cloud cost management products focus on post-bill analysis and target finance and management teams via charting dashboards. We built one of these back in 2013. They are all missing an important piece - the people who are responsible for purchasing cloud resources are not shown costs upfront, so they don’t know how much the resources will cost before launching them. We want to make cloud costs simpler to understand for developers and DevOps so they can make better decisions, which we believe will lead to more cost-efficient systems.
In 2011 Ali and Hassan started a cloud cost forecasting company based on Ali’s PhD research. They applied to YC and got through to the interview round. RightScale acquired them in 2012. I read about their YC interview experience on HN, reached out and ended up joining them. We went on to form the team that built RightScale’s cloud cost management product (now called Flexera Optima).
In our most recent startup (which failed) we were launching cloud stacks for users on-demand and we wanted a way to work out the cost of each. We hacked together something by building a GraphQL-based cloud pricing API and a CLI that parsed our Terraform code and output a cost breakdown.
We released the code on GitHub as Infracost and discovered that others had similar problems. We got requests to support more cloud services and integrate it into pull requests. At the moment, Infracost supports Terraform for AWS and Google Cloud (we’re adding new resources every week). It can be integrated into GitHub, GitLab, CircleCI, Bitbucket and Atlantis, or can be used anywhere through the CLI. In the future we plan to add support for more cloud vendors and infrastructure-as-code tools (Azure, CloudFormation, Pulumi, etc).
We now spend a lot of our days trawling through the cloud pricing pages working out how pricing works for different cloud services. We’re grateful for the contributors who have helped us with this. AWS currently has over 2 million price points and this is constantly increasing. Users are requesting better support for usage-based services like data transfer, S3 and Lambda. Currently we allow for usage estimates to be passed into the tool, and are looking at other methods, i.e. based on last month’s actual usage. We’ve also learned, the hard way, the importance of UX in CLI and workflow tools.
So far we are seeing a few use-cases for Infracost. Some enterprise users have integrated it into their “self-service” cloud catalog to set cost expectations before provisioning. Other users have integrated it into their CI pipeline as a safety net to catch unexpected costs. And some users are running it at design time to compare options and model usage.
We’ve talked to Sid Sijbrandij (CEO of GitLab), and Ian Tien (CEO of Mattermost) about when and how to monetize. Currently we are thinking about a buyer-based open core approach, in which the individual contributor edition will always be free, and enterprise paid features will include multi-team support, management reports and private cloud support.
We’d really appreciate it if you try it out and give us feedback. You can check out the repo at https://github.com/infracost/infracost. We’d love your thoughts on our approach, and anything that has worked, or hasn’t worked for you when it comes to managing cloud costs.