A practical guide to running OpenSearch on Google Cloud Platform - from self-managed deployments on GKE and Compute Engine to managed services from Aiven, Instaclustr, and Bonsai.
Google Cloud Platform does not offer a native managed OpenSearch service. Unlike AWS with Amazon OpenSearch Service, GCP has no first-party equivalent. You will either run it yourself on GKE or Compute Engine, or pay Aiven, Instaclustr, or Bonsai to do it. Here is how to pick.
This guide covers self-managed clusters on GKE and Compute Engine, managed services from third-party providers, and the architecture decisions that matter regardless of which route you pick.
Why Run OpenSearch on Google Cloud?
Teams running workloads on GCP often need search, log analytics, or observability capabilities that OpenSearch provides. Moving data cross-cloud to AWS just to use Amazon OpenSearch Service introduces latency, egress costs, and compliance headaches. Running OpenSearch within GCP keeps your data close to the applications that produce and consume it.
Committed-use discounts on Compute Engine take a large cut out of the bill for the memory-heavy machine types OpenSearch nodes want (see cost optimization below). If your organization already uses BigQuery, Dataflow, or Pub/Sub, running OpenSearch alongside them avoids the operational complexity of multi-cloud data pipelines.
Self-Managed OpenSearch on GKE
Google Kubernetes Engine is the most common way to run self-managed OpenSearch on GCP. The OpenSearch Kubernetes Operator and the official Helm charts both support GKE as a deployment target.
Using the OpenSearch Kubernetes Operator
The operator handles provisioning, rolling upgrades, scaling, certificate management, and security configuration. Install it via Helm:
helm repo add opensearch-operator https://opensearch-project.github.io/opensearch-k8s-operator/
helm install opensearch-operator opensearch-operator/opensearch-operator
Then define your cluster through a custom resource. The operator is migrating its API group from opensearch.opster.io to opensearch.org; both work today but the old group is deprecated, so use the new one and check it against the operator version you install. Operator 3.0.0 supports OpenSearch 2.19.2 through the current 3.x line; pin the latest 3.x (3.8.0 as of August 2026) unless you have a reason to stay on the 2.19.x maintenance line.
apiVersion: opensearch.org/v1
kind: OpenSearchCluster
metadata:
name: my-cluster
spec:
general:
version: 3.8.0
setVMMaxMapCount: true
serviceName: my-cluster
dashboards:
enable: true
version: 3.8.0
replicas: 1
nodePools:
- component: masters
replicas: 3
roles:
- cluster_manager
resources:
requests:
memory: 4Gi
cpu: "1"
persistence:
emptyDir: {}
- component: data
replicas: 3
roles:
- data
resources:
requests:
memory: 8Gi
cpu: "2"
persistence:
pvc:
storageClass: premium-rwo
accessModes:
- ReadWriteOnce
storage: 100Gi
GKE-Specific Considerations
vm.max_map_count: OpenSearch requires vm.max_map_count=262144. The operator's setVMMaxMapCount: true adds a privileged init container to set this. On GKE Standard clusters, this works out of the box. On GKE Autopilot, privileged containers and unsafe sysctls are rejected, so neither the init container nor a privileged DaemonSet will run. Use a custom ComputeClass (GKE 1.30.3-gke.1451000 or later) with linuxNodeConfig.sysctls: {vm.max_map_count: "262144"} under nodePoolAutoCreation, and set setVMMaxMapCount: false in the CR; Elastic's ECK docs show the exact ComputeClass shape and it applies unchanged to OpenSearch. On older Autopilot versions, run OpenSearch on a Standard cluster.
Storage classes: Use premium-rwo (SSD-backed Persistent Disks) for data nodes. The default standard-rwo uses balanced persistent disks, which may bottleneck under heavy indexing. Both built-in classes already use volumeBindingMode: WaitForFirstConsumer, so disks land in the pod's zone; set it yourself only on a custom StorageClass. For read-heavy workloads with large indices, create a StorageClass with type: hyperdisk-balanced for higher IOPS. Note that Hyperdisk-only machine families (N4, C4) cannot use premium-rwo at all.
Node pools: Dedicate a GKE node pool to OpenSearch using taints and tolerations. Use n2-highmem or n2d-highmem machine types - OpenSearch nodes benefit from high memory-to-CPU ratios. A n2-highmem-8 (8 vCPU, 64 GB RAM) is a good starting point for production data nodes.
Pod disruption budgets: Define PDBs to prevent Kubernetes from evicting too many OpenSearch pods during node upgrades. The operator creates these automatically, but verify the settings match your availability requirements.
Self-Managed OpenSearch on Compute Engine
For teams that prefer VMs over Kubernetes, Compute Engine provides a straightforward deployment path. This approach gives you full control over the operating system, JVM settings, and network configuration.
Use n2-highmem instances with local SSD or Persistent SSD. A typical three-node production cluster might use n2-highmem-8 instances with 500 GB pd-ssd each. Deploy nodes across three zones in a single region for fault tolerance.
Key configuration steps:
- Set
vm.max_map_count=262144in/etc/sysctl.conf - Configure a dedicated data disk mounted at
/var/lib/opensearch - Set up an internal passthrough Network Load Balancer for client traffic
- Use instance groups with health checks for automated recovery
On VMs you patch the OS, script backups, and run upgrades yourself. For teams without Kubernetes expertise, this can be simpler. For teams already running GKE, the overhead of managing individual VMs rarely makes sense.
Managed OpenSearch Services on GCP
| Provider | Deployment Model | GCP Regions | Starting Price | Who it suits |
|---|---|---|---|---|
| Aiven | Fully managed, Aiven-hosted | 26 GCP regions | $40/mo (Developer tier) | Teams that want one Marketplace bill and already use Aiven for Kafka or PostgreSQL |
| Instaclustr | Managed, your account or theirs | Multiple GCP regions | Calculator on their site | Regulated industries that need the compliance paperwork and a 99.999% SLA option |
| Bonsai | BYOC (your GCP account) | Your chosen region | Contact sales | Teams that must keep infrastructure inside their own GCP account |
Aiven for OpenSearch
Aiven provides fully managed OpenSearch on GCP, available directly through the Google Cloud Marketplace. This means consolidated billing through your GCP invoice - one bill instead of two. Aiven manages the cluster lifecycle: provisioning, patching, backups, and failover. Their multi-cloud capability means you can replicate data between GCP and AWS or Azure clusters if needed.
Aiven tracks upstream OpenSearch versions closely and offers a 99.99% uptime SLA. The Developer tier is $40/month for a single 2 vCPU / 4 GB node with 30 GB of storage; production plans start higher. For teams already using Aiven for Kafka or PostgreSQL on GCP, adding OpenSearch to the same management plane reduces operational surface. It is the one we point most small and mid-size GCP teams at first.
Instaclustr (NetApp)
Instaclustr runs managed OpenSearch on GCP using n2-highmem instances. Available through the GCP Marketplace in a "Run In Instaclustr Account" model, with a "Run In Your Own Account" option also available. Their enterprise SLA reaches 99.999%, higher than most competitors. Compliance claims include SOC2, ISO 27001, ISO 27018, PCI-DSS, HIPAA, and GDPR, which is what makes it the pick for regulated workloads. Pricing sits behind a calculator on their site rather than a public rate card.
Bonsai
Bonsai takes a Bring Your Own Cloud approach. They deploy OpenSearch infrastructure into your GCP account, connected via VPC peering. You pay GCP for compute and storage, and Bonsai for management. This model gives you full visibility into the underlying infrastructure and lets you use committed-use discounts on the GCP side.
Architecture Decisions for OpenSearch on GCP
Regardless of deployment method, several architecture decisions are specific to GCP.
Networking: Use Private Service Connect or VPC peering to keep OpenSearch traffic off the public internet. If your clients are in multiple VPCs, Shared VPC simplifies connectivity. For GKE deployments, use private clusters with authorized networks.
Backups: OpenSearch snapshots should target a Google Cloud Storage (GCS) bucket. Install the repository-gcs plugin on every node (bin/opensearch-plugin install repository-gcs, or add it to pluginsList in the operator CR); it is not bundled with the distribution. From OpenSearch 2.12 the plugin supports Application Default Credentials, so a GKE Workload Identity binding on the OpenSearch service account is enough and no key file goes in the keystore. On older versions you still need a credentials_file in the keystore.
Monitoring: Export OpenSearch metrics to Google Cloud Monitoring using the Prometheus exporter plugin, or deploy a dedicated monitoring stack (Prometheus + Grafana) alongside your cluster. For log-based monitoring, ship OpenSearch logs to Cloud Logging via Fluent Bit.
Cost optimization: Use resource-based committed-use discounts for predictable workloads: up to 55% on N2/N2D (up to 70% on M-series memory-optimized), with 3-year terms at the top of the range. Sustained-use discounts cap at 20% for N2/N2D and do not apply to newer families or to Autopilot, so do not count on them. For GKE, enable cluster autoscaler on non-OpenSearch node pools but keep OpenSearch nodes on a fixed-size pool to avoid disruptive scaling.
Summary
Our default for a GCP team with Kubernetes experience is GKE Standard with the OpenSearch Operator: n2-highmem nodes, premium-rwo storage, Workload Identity for GCS snapshots, and a CUD on the node pool. Teams without that experience, or with fewer than a handful of nodes, are usually better off on Aiven until the bill justifies running it themselves; regulated workloads that need the compliance paperwork go to Instaclustr, and Bonsai covers the case where infrastructure must stay in your own account. Compute Engine VMs are the fallback when Kubernetes is off the table.
Running OpenSearch on Google Cloud or planning a deployment? Our OpenSearch consulting services cover architecture design, Kubernetes Operator deployment, and ongoing optimization across GCP, AWS, Azure, and on-prem environments.