CloudEstimate

Size Keycloak on Google Cloud

Extra Small — up to 25 peak logins per second

Monthly cost

$126.30

Annual cost

$1,516/year

Line-item breakdown

Compute $92.30
Storage $34.00
Other $0.00

Components provisioned

Role Instance vCPU GB RAM Storage
Keycloak 1 × n2-standard-2 2 8 100 GB
Database 1 × n2-standard-2 2 8 100 GB

Why this sizing

This Extra Small Keycloak deployment supports up to 25 peak logins per second, utilizing two n2-standard-2 instances, each with 2 vCPUs and 8 GB RAM. The primary cost driver is compute, accounting for the entire $0.03 monthly cost. This configuration disables high availability, meaning there is no redundancy for the Keycloak service.

Export

Share the current URL or copy the launch Terraform baseline.

Google Cloud Terraform baseline
terraform {
  required_version = ">= 1.6.0"

  required_providers {
    google = {
      source  = "hashicorp/google"
      version = "~> 6.0"
    }
  }
}

variable "project_id" {
  description = "Google Cloud project ID for this deployment."
  type        = string
  default     = "replace-with-project-id"
}

provider "google" {
  project = var.project_id
  region  = "us-central1"
  zone    = "us-central1-a"
}

# Generated for Google Cloud from the current estimate state.

resource "google_compute_disk" "keycloak_1_data" {
  count = 1
  name  = "keycloak-keycloak-1-data-${count.index + 1}"
  type  = "pd-ssd"
  zone  = "us-central1-a"
  size  = 100
}

resource "google_compute_instance" "keycloak_1" {
  count        = 1
  name         = "keycloak-keycloak-1-${count.index + 1}"
  machine_type = "n2-standard-2"
  zone         = "us-central1-a"

  boot_disk {
    initialize_params {
      image = "projects/debian-cloud/global/images/family/debian-12"
      size  = 50
      type  = "pd-balanced"
    }
  }

  network_interface {
    network = "default"
    access_config {}
  }
  attached_disk {
    source = google_compute_disk.keycloak_1_data[count.index].id
    mode   = "READ_WRITE"
  }

  labels = {
    app  = "keycloak"
    role = "keycloak"
  }
}


resource "google_compute_disk" "database_2_data" {
  count = 1
  name  = "keycloak-database-2-data-${count.index + 1}"
  type  = "pd-ssd"
  zone  = "us-central1-a"
  size  = 100
}

resource "google_compute_instance" "database_2" {
  count        = 1
  name         = "keycloak-database-2-${count.index + 1}"
  machine_type = "n2-standard-2"
  zone         = "us-central1-a"

  boot_disk {
    initialize_params {
      image = "projects/debian-cloud/global/images/family/debian-12"
      size  = 50
      type  = "pd-balanced"
    }
  }

  network_interface {
    network = "default"
    access_config {}
  }
  attached_disk {
    source = google_compute_disk.database_2_data[count.index].id
    mode   = "READ_WRITE"
  }

  labels = {
    app  = "keycloak"
    role = "database"
  }
}

Related views

Sources

Reference architecture: Keycloak for single-node-small, version Keycloak current high-availability sizing guidance, retrieved April 13, 2026.

https://www.keycloak.org/high-availability/single-cluster/concepts-memory-and-cpu-sizing

Pricing: Google Cloud pricing snapshot, retrieved May 6, 2026.

Commercial pricing only. GovCloud, sovereign cloud, and discounts beyond those shown are not modelled.

Not included in this estimate

  • Vendor licensing and support
  • Professional services
  • Network egress
  • Compliance controls
  • Backup storage
  • Monitoring

Based on Keycloak's official HA sizing concepts and translated into VM-based planning inputs for self-managed deployments.

Estimate excludes external IdPs, SMTP, user federation backends, separate caching infrastructure, and license costs for any commercial database choice.

Other workloads on Google Cloud