Skip to main content

Azure resource topology

Aucert runs on Azure (Founders Hub credits, ~$5K). The architecture is cloud-agnostic — only Terraform contains cloud-specific code.

Resource groups

Resource groupPurposeTerraform tier
aucert-foundation-rgShared infra: VNet, AKS, ACR, Key Vault, Storage, Internal PG, DNSfoundation/
aucert-dev-rgDev environment: Product PG, Redisenvironments/dev/
aucert-tfstate-rgTerraform remote state (manual)N/A

Network topology

VNet aucert-vnet (10.0.0.0/16) in aucert-foundation-rg:

SubnetCIDRPurpose
aks-subnet10.0.0.0/22AKS node pool (1024 IPs)
postgres-subnet10.0.4.0/24Product PG (delegated, cross-RG)
redis-subnet10.0.5.0/24Redis Private Endpoint (cross-RG)
keyvault-subnet10.0.6.0/24Key Vault private endpoints
internal-platform-subnet10.0.7.0/24Internal Platform PG (delegated)
prod-subnet10.0.8.0/24Future production PG (Month 4-6)

Reserved (not created): Staging 10.1.0.0/16, Production 10.2.0.0/16.

Compute

  • AKS cluster: aucert-aks, 2x Standard_D2s_v6, K8s 1.32, Azure CNI
  • ACR: aucertacr41e0x5 (Basic SKU, ~$5/mo)
  • Namespaces: internal-platform (active), aucert-dev (planned), ingress (planned)

Data tier

InstanceRGTierDatabases
aucert-internal-pgfoundation-rgBurstable B2s, PG 16plane_db, astra_db, internal_shared_db
aucertdev-product-pgdev-rgBurstable B2s, PG 16aucert (dev)
aucertdev-redis-41e0x5dev-rgBasic C0, TLS 6380Shared (DB index per env)

External access

  • Cloudflare Tunnel: Outbound-only, no public IP on AKS
  • Cloudflare Access: Google OAuth, @aucert.ai only
  • Domain: aucert.dev for internal tools (plane.aucert.dev, astra.aucert.dev)

What's next