Issue
An Azure Free Trial subscription blocked access to cost-effective VM families (e.g., B-series, D-series), forcing the use of 8x more expensive confidential computing VMs (e.g., DC-series) for AKS clusters. This resulted in a budget overrun, as the subscription policy prevented quota adjustments or access to affordable VM sizes, despite attempts to resolve the issue.
Culprit
Subscription Policy Restrictions
Azure Free Trial intentionally restricts access to budget-friendly VM families to prevent abuse. This led to errors when attempting to provision Standard_B2s VMs, which are typically priced at $15/month, due to a NotAvailableForSubscription policy.
Quota Adjustment Limitations
Manual requests to increase quotas for Standard_B-series vCPUs were automatically rejected, as Free Trial subscriptions are not eligible for quota modifications. The platform enforced this restriction without providing alternative solutions.
Limited VM Options
The only available VM options were significantly more expensive alternatives:
- DC-series VMs (e.g., DC2ads_v5): Priced at $120/month for equivalent resources.
- G-series and M-series VMs: Offered at even higher costs, exceeding $150/month and $1,000/month, respectively.
Solution
Temporary Cost Acceptance
To proceed with the project—a banking-grade DevOps demonstration environment with FluxCD, GitOps policies, and multi-stage CI/CD pipelines—the team accepted the higher cost of DC-series VMs for a time-boxed period of 2-4 weeks. This decision preserved the following:
- Complete Kubernetes Stack: AKS, FluxCD, and policy enforcement tools.
- Enterprise-Grade Infrastructure: RBAC, network policies, and audit logging.
- Infrastructure Work: Deployment of 38 Azure resources.
Cost Mitigation Strategies
To minimize long-term expenses, the team implemented:
- Strict Time-Boxing: Limited project duration to 2-4 weeks.
- Infrastructure Teardown: Scheduled
terraform destroycommands to decommission resources post-project. - Justified Tradeoffs: Documented the educational and technical value of the project as justification for the elevated costs.
Preserved Configuration
- AKS Control Plane: Utilized the free tier to reduce costs.
- Azure Container Registry (ACR) Standard: Priced at $20/month for webhook-based FluxCD automation.
- Azure OpenAI: Used for embeddings, costing $35/month.
- Networking: Standard VNet, Key Vault, and Private DNS services at $25/month.
Explored Workarounds (Not Feasible)
- Pay-As-You-Go Upgrade: Rejected due to risk of uncontrolled cost escalation.
- Alternative Cloud Providers: Rejected due to migration complexity and time constraints.
- Serverless Alternatives: Rejected as they eliminated Kubernetes learning objectives.
Key Considerations
The decision to use expensive VMs was made to ensure the project’s technical goals—particularly Kubernetes and DevOps practices—were met within the constraints of a Free Trial. The temporary nature of the project and scheduled teardown mitigated financial risks.