Automated cost estimation of your Azure infrastructure made easy. Works with ARM Templates, Bicep and Terraform.
As adoption of cloud services progresses, understanding how cloud billing works becomes more and more critical for keeping everything under control. Most of the time initial infrastructure cost estimation is done only during design phase and gets neglected as development progresses. Many development teams don't have enough understanding how to calculate impact of their changes and find difficult to get an immediate feedback whether they're still withing acceptable level of money spent for their services.
Infrastructure-as-Code (IaC) makes things even more difficult - it solves the problem of cloud infrastructure treated as a separate development stream, but doesn't give you control over cost of components under your control.
ACE follows a concept of running cost as architecture fitness function. You can make it an integral part of your CICD pipeline and quickly gather information of how much you're going to spend.
- Supports 49 Azure services (~92 resource types)
- Native support for Bicep, ARM Templates and Terraform
- Detailed output containing information about cost of your infrastructure and metrics used for calculation
- Seamless integration with ARM Templates and Bicep (with a little help of Bicep CLI)
- Always fresh data thanks to direct calls to Azure Retail API
- Native tool experience - no third-party services / proxies, everything relies on componenets delivered and used by Microsoft
- Multi-option authentication based on
Azure.Identity
package - project automatically uses cached credentials from the running environment (supports Azure CLI / Environment credentials / Managed Identity and more) - Allows you to validate your deployment before it happens - if the template you used is invalid, an error with detailed information is returned
- Support for both Incremental / Complete deployment modes (see
Usage
section) - Displaying delta describing difference between your current estimated cost and after changes are applied
- An option to stop CICD process if estimations exceed given limit (see
Usage
section) - Supports passing parameters along with your template (including
.bicepparam
files) - Handles extension resources as long as they're correctly configured (i.e. define
scope
parameter) - Works with both individually defined resources and nested resources
- Supports 17 different currencies
- Allows for generating output as an artifact for further processing
- Ability to consume custom usage patterns for enhancing calculations
- Multiple deployment scopes support (resource group / subscription / management group / tenant)
Check wiki for detailed information about installation, usage and available features
ACE comes with a dedicated GitHub Action for your worflows for easy integration. See this repository for more information.
Services not listed are considered TBD. Below list represents the latest commit available, which isn't always aligned with the most recent release.
Service | Support level | Terraform support | More information |
---|---|---|---|
Active Directory B2C | Not Supported | Not Supported | - |
Active Directory Domain Services | Not Supported | Not Supported | - |
Advanced Data Security | Not Supported | Not Supported | - |
Advanced Threat Protection | Not Supported | Not Supported | - |
AKS | Stable | Supported | Supports only VMSS agent pools |
APIM | Stable | Supported | - |
App Configuration | Stable | Supported | - |
Application Gateway | Stable | Supported | - |
Application Insights | Stable | Supported | Supports classic mode, doesn't support Enteprise Nodes and Multi-step Web Test |
Analysis Services | Stable | Supported | - |
ASR | Stable | Supported | Doesn't support recovery to customer-owned sites |
Automation Account | Stable | Supported | Supports Process Automation only |
Azure App Service | Stable | Supported | Supports Azure App Service Plans (without Isolated tiers) and Azure Functions (Consumption / Premium / App Service Plan) |
Azure Firewall | Stable | Not Supported | - |
Availability Set | Stable | Not Supported | - |
Backup | Stable | Not Supported | - |
Bastion | Stable | Not Supported | - |
Bot Service | Stable | Not Supported | - |
Chaos Studio | Stable | Not Supported | - |
Cognitive Search | In development | Not Supported | Doesn't support Document Cracking / Semantic Search / Custom Entity Skills Text Records |
Confidential Ledger | Stable | Not Supported | - |
Container Apps | Stable | Not Supported | - |
Container Registry | Stable | Supported | - |
Cosmos DB | In development | Not Supported | Supports only single-region writes with manual throughput provisioning |
Data Factory | In Development | Not Supported | Doesn't support IR and SSIS |
Event Hub | Stable | Not Supported | - |
Event Grid | Stable | Not Supported | - |
Health Bot | Stable | Not Supported | - |
Key Vault | Stable | Not Supported | Doesn't support Azure Dedicated HSM |
Log Analytics | In development | Not Supported | Estimations doesn't include commitment tiers & logs retention |
Logic Apps | In development | Not Supported | Doesn't support ISE scale units |
Maria DB | Stable | Not Supported | - |
Monitor | In development | Not Supported | Alerts estimations doesn't include frequency / metrics count |
Network Interface | Stable | Not Supported | - |
Network Security Group | Stable | Not Supported | - |
PostgreSQL | Stable | Not Supported | Doesn't include Hyperscale being part of Cosmos DB |
Public IP Address | Stable | Not Supported | - |
Public IP Address Prefixes | Stable | Not Supported | - |
Redis | Stable | Not Supported | - |
Sentinel | In development | Not Supported | Estimations doesn't include commitment tiers |
Service Bus | Stable | Not Supported | Doesn't support Hybrid Connections and WCF Relay |
SignalR | Stable | Not Supported | - |
SQL Database | Stable | Not Supported | - |
SQL Server Elastic Pools | Stable | Not Supported | - |
Static Web App | Stable | Not Supported | - |
Storage Account | In development | Not Supported | Supports only StorageV2 (without File Service & Data Lake Storage) |
Stream Analytics | Stable | Not Supported | Stream Analytics on Edge requires separate estimation |
Time Series | Stable | Not Supported | - |
Virtual Machine | Stable | Not Supported | Supports Ax, Bx and Dx VM families |
VMSS | Stable | Not Supported | Supports the same VM families as Virtual Machines |
Virtual Network | Stable | Supported | - |
VPN Gateway | Stable | Not Supported | - |
Contributions are more than welcome!
- TOC generator - https://ecotrust-canada.github.io/markdown-toc/
- MVP.css - https://github.com/andybrewer/mvp/