doc/install/cloud-services.md
{{< details >}}
{{< /details >}}
Instead of managing PostgreSQL, Redis/Valkey, and object storage yourself, you can use managed cloud provider services for them.
[!note] For cloud-native deployments using the GitLab Helm chart, external PostgreSQL and Redis/Valkey services are required. These components are not bundled in the chart.
Use an external PostgreSQL service running a supported version. For setup instructions, see using an external PostgreSQL database.
Only full PostgreSQL deployments are supported. Services that implement the PostgreSQL wire protocol but are not full PostgreSQL deployments, such as Amazon Aurora and Google AlloyDB, are incompatible with GitLab.
Services known to work include:
For larger environments, enable
database load balancing with read replicas.
Match replica counts to those used in equivalent Linux package deployments.
When using read replicas, ensure all replica nodes have hot_standby_feedback = on to prevent
replication lag buildup.
For GCP Cloud SQL in larger environments, use the Enterprise Plus edition for optimal performance.
[!note] GCP Cloud SQL does not support
statement_timeoutas a database flag. Set it per database or user instead:ALTER DATABASE gitlab SET statement_timeout = '60s';
GitLab Geo requires cross-region PostgreSQL replication between the primary and secondary sites. Not all managed database services support this.
Known limitations:
If your workload requires additional connection pooling beyond what PostgreSQL handles directly, deploy your own PgBouncer instance.
[!note] The GitLab-bundled PgBouncer only works with the bundled PostgreSQL and cannot be used with external database services.
The following provider-managed pooling solutions are not recommended:
Use an external Redis or Valkey service running a supported version. For setup instructions, see Redis as a managed service.
The service must support:
[!note] Serverless Redis and Valkey variants are not supported.
Services known to work include:
[!note] On AWS, use ElastiCache for Valkey 7.2. ElastiCache for Redis 7.2 is not available on AWS. ElastiCache for Redis 7.1 is built on Redis 7.0 OSS and is not recommended for new deployments. Neither Azure Cache for Redis nor Azure Managed Redis currently offer Redis 7.2 or a supported Valkey version. For Azure deployments, self-manage Redis or Valkey on a virtual machine.
For larger environments, run separate Redis instances for cache and persistent data. Redis is single-threaded and a single shared instance becomes a bottleneck at scale.
Use any S3-compatible object storage service. For the full list of tested providers and configuration details, see object storage.