Resolved

Azure Free Trial restrictions forced use of expensive VMs for AKS

Azure
AKS
Kubernetes
DevOps
Cost Optimization
Cloud Infrastructure
Terraform
VM

Free Trial subscription restricted access to affordable VMs, requiring costly DC-series alternatives for Kubernetes clusters. Budget overrun due to lack of quota adjustments or access to cost-effective SKUs.

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:

  1. Complete Kubernetes Stack: AKS, FluxCD, and policy enforcement tools.
  2. Enterprise-Grade Infrastructure: RBAC, network policies, and audit logging.
  3. Infrastructure Work: Deployment of 38 Azure resources.

Cost Mitigation Strategies

To minimize long-term expenses, the team implemented:

  1. Strict Time-Boxing: Limited project duration to 2-4 weeks.
  2. Infrastructure Teardown: Scheduled terraform destroy commands to decommission resources post-project.
  3. 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)

  1. Pay-As-You-Go Upgrade: Rejected due to risk of uncontrolled cost escalation.
  2. Alternative Cloud Providers: Rejected due to migration complexity and time constraints.
  3. 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.