Apache Kafka via Confluent Platform
Self-managed Apache Kafka deployed with Confluent Platform for event streaming, durable logs, and integration pipelines.
Extra Small — up to 25 peak logins per second
Monthly cost
$126.30
Annual cost
$1,516/year
| Compute | $92.30 |
| Storage | $34.00 |
| Other | $0.00 |
| Role | Instance | vCPU | GB RAM | Storage |
|---|---|---|---|---|
| Keycloak | 1 × n2-standard-2 | 2 | 8 | 100 GB |
| Database | 1 × n2-standard-2 | 2 | 8 | 100 GB |
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.
Share the current URL or copy the launch 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"
}
}
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.
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.
Self-managed Apache Kafka deployed with Confluent Platform for event streaming, durable logs, and integration pipelines.
Self-hosted CockroachDB for resilient SQL workloads that need distributed transactions and scale-out storage.
Self-managed Confluence Data Center for enterprise documentation, knowledge bases, and collaborative editing.