azurerm_signalr_service cost estimation
Managed real-time messaging over WebSockets. Priced per unit per day by tier, with included connections and messages per unit.
An azurerm_signalr_service provides managed real-time messaging (WebSockets, server-sent events, long polling) so you don't run your own SignalR backplane. Pricing is by capacity unit, billed per unit-day, with each tier including a fixed quota of concurrent connections and messages per unit.
The Standard tier is the common production choice at roughly $1.61/unit-day; each unit includes 1,000 concurrent connections and 1 million messages/day. Premium runs about $2.00/unit-day and adds availability-zone redundancy and autoscaling. The Free tier costs nothing but caps at 20 connections and 20k messages/day, suitable only for development.
c3x reads the sku and capacity and prices the unit-days at roughly 30.4 days/month. Messages and connections beyond the included quota are usage-based and modelled from c3x-usage.yml. The Free tier correctly estimates to zero. Scaling is by adding units, so the estimate is linear in capacity.
Terraform example
A minimal but realistic configuration that C3X can estimate.
resource "azurerm_signalr_service" "realtime" {
name = "app-realtime"
resource_group_name = azurerm_resource_group.app.name
location = "eastus"
sku {
name = "Standard_S1"
capacity = 2
}
service_mode = "Default"
}Pricing dimensions
What you actually pay for when you provision azurerm_signalr_service.
| Dimension | Unit | What's being charged |
|---|---|---|
| Service units | per unit-day | Per-unit daily rate by tier. Each Standard unit includes 1,000 concurrent connections and 1M messages/day. c3x prices capacity x ~30.4 days/month. $1.61/unit-day (Standard), $2.00 (Premium) |
| Additional messages | per million messages | Messages beyond the included per-unit quota. Usage-based; define in c3x-usage.yml. |
Sample C3X output
Example output from c3x estimate (Standard, 2 units):
azurerm_signalr_service.realtime
└─ Service units (Standard x 2) 60.8 unit-days $97.88
OVERALL TOTAL $97.88Optimization tips
Common ways to reduce azurerm_signalr_service cost without changing the workload.
Size units to peak concurrent connections
Per excess unitEach Standard unit covers 1,000 concurrent connections. Provision units for your real peak concurrency, not a round number. Over-provisioning units is the main waste.
Use the Free tier for dev and demos
100% in non-prodThe Free tier (20 connections, 20k messages/day) costs nothing and is fine for development and small demos. Reserve paid units for production.
Choose Standard over Premium unless you need AZ redundancy
~20%Premium adds zone redundancy and autoscaling at ~25% more per unit. If you don't need those, Standard delivers the same messaging at a lower per-unit rate.
FAQ
How does c3x estimate Azure SignalR cost?
It reads the sku tier and capacity and prices the unit-days at roughly 30.4 days/month. Messages beyond the per-unit included quota are usage-based and supplied in c3x-usage.yml. The Free tier estimates to zero.
What does one Standard unit include?
1,000 concurrent connections and 1 million messages per day. Scaling capacity adds units linearly, so two units double both the quota and the cost.
Is the Free tier really free?
Yes, with hard caps of 20 concurrent connections and 20,000 messages/day. c3x estimates it at zero. It's intended for development, not production traffic.
When is Premium worth the extra cost?
When you need availability-zone redundancy or autoscaling. Premium is about $2.00/unit-day vs Standard's $1.61. For most apps Standard is sufficient.
How does this compare to running SignalR myself?
Self-hosting SignalR needs a Redis backplane and your own scaled web tier. The managed service trades that operational cost for the per-unit fee, which is usually cheaper once you account for the backplane and ops time.
Related resources
Estimate this resource in your own Terraform
Free, open source, no API key. C3X parses your Terraform and shows line-item cost for every resource, including azurerm_signalr_service.