GitLabコンポーネントにクラウドサービスを使用する
- プラン: Free、Premium、Ultimate
- 提供形態: GitLab Self-Managed
PostgreSQL、Redis/Valkey、およびオブジェクトストレージを自身で管理する代わりに、マネージドクラウドプロバイダーサービスを使用できます。
GitLab Helmチャートを使用するクラウドネイティブデプロイの場合、外部のPostgreSQLおよびRedis/Valkeyサービスが必要です。これらのコンポーネントはバンドルされていません。
マネージドクラウドPostgreSQLを使用する
サポートされているバージョンを実行している外部PostgreSQLサービスを使用します。セットアップ手順については、外部PostgreSQLデータベースの使用を参照してください。
完全なPostgreSQLデプロイのみがサポートされています。PostgreSQLワイヤプロトコルを実装しているが完全なPostgreSQLデプロイではないサービス(Amazon AuroraやGoogle AlloyDBなど)は、GitLabと互換性がありません。
動作が確認されているサービスには以下が含まれます:
パフォーマンスと高可用性
大規模な環境では、データベースロードバランシングをリードレプリカと共に有効にします。レプリカの数を、同等のLinuxパッケージデプロイで使用されているものと一致させます。リードレプリカを使用する場合、すべてのレプリカノードにhot_standby_feedback = onが設定されていることを確認し、レプリケーションラグの蓄積を防ぎます。
大規模な環境のGCP Cloud SQLでは、最適なパフォーマンスを得るためにEnterprise Plusエディションを使用してください。
GCP Cloud SQLは、データベースフラグとしてのstatement_timeoutをサポートしていません。代わりにデータベースまたはユーザーごとに設定してください: ALTER DATABASE gitlab SET statement_timeout = '60s';
GitLab Geo
GitLab Geoには、プライマリサイトとセカンダリサイト間でのクロスリージョンPostgreSQLレプリケーションが必要です。すべてのマネージドデータベースサービスがこれをサポートしているわけではありません。
既知の制限事項:
- Amazon RDS Multi-AZ DBクラスター: クロスリージョンレプリケーションはサポートされていません。代わりに、クロスリージョンリードレプリカを備えた標準のRDS Multi-AZ DBインスタンスを使用してください。
- GCP Cloud SQL: Geoのリードレプリカは、同じVPCおよび同じGCPプロジェクト内でのみ作成できます。異なるプロジェクトのセカンダリサイトの場合、Cloud SQLは直接レプリカを作成できません。PostgreSQL論理レプリケーションを手動で設定し、その後にGitLab Geo外部PostgreSQLセットアップに従ってください。
コネクションプーリング
ワークロードがPostgreSQLで直接処理される以上の追加のコネクションプーリングを必要とする場合は、独自のPgBouncerインスタンスをデプロイしてください。
GitLabにバンドルされたPgBouncerは、バンドルされたPostgreSQLでのみ動作し、外部データベースサービスでは使用できません。
次のプロバイダーマネージドプーリングソリューションは推奨されません:
- AWS RDS Proxy: GitLabでの使用は検証されていません。
- Azure Database for PostgreSQL PgBouncer: シングルスレッドで限られた可観測性です。負荷がかかった状態ではボトルネックを引き起こす可能性があります。
マネージドクラウドRedisおよびValkeyを使用する
サポートされているバージョンを実行している外部RedisまたはValkeyサービスを使用します。セットアップ手順については、マネージドサービスとしてのRedisを参照してください。
サービスは以下をサポートしている必要があります:
- スタンドアロン(プライマリとレプリカ)モードであり、Redisクラスターモードではありません。
- レプリケーションによる高可用性
- 設定可能なエビクションポリシー
Serverless RedisおよびValkeyのバリアントはサポートされていません。
動作が確認されているサービスには以下が含まれます:
AWSでは、Valkey 7.2用のElastiCacheを使用してください。Redis 7.2用のElastiCacheはAWSでは利用できません。Redis 7.1用のElastiCacheはRedis 7.0 OSS上に構築されており、新規デプロイには推奨されません。現在、Azure Cache for RedisとAzure Managed Redisのいずれも、Redis 7.2またはサポート対象のValkeyバージョンを提供していません。Azureデプロイの場合、RedisまたはValkeyを仮想マシン上で自己管理してください。
大規模な環境では、キャッシュ用と永続データ用に別々のRedisインスタンスを実行します。Redisはシングルスレッドであり、単一の共有インスタンスではスケール時にボトルネックとなります。
マネージドクラウドオブジェクトストレージを使用する
S3互換のオブジェクトストレージサービスを使用します。テスト済みのプロバイダーと設定の詳細の全リストについては、オブジェクトストレージを参照してください。