正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

GitLabコンポーネントにクラウドサービスを使用する

  • プラン: Free、Premium、Ultimate
  • 提供形態: GitLab Self-Managed

PostgreSQL、Redis/Valkey、およびオブジェクトストレージを自身で管理する代わりに、マネージドクラウドプロバイダーサービスを使用できます。

GitLab Helmチャートを使用するクラウドネイティブデプロイの場合、外部のPostgreSQLおよびRedis/Valkeyサービスが必要です。これらのコンポーネントはバンドルされていません。

マネージドクラウドPostgreSQLを使用する

サポートされているバージョンを実行している外部PostgreSQLサービスを使用します。セットアップ手順については、外部PostgreSQLデータベースの使用を参照してください。

完全なPostgreSQLデプロイのみがサポートされています。PostgreSQLワイヤプロトコルを実装しているが完全なPostgreSQLデプロイではないサービス(Amazon AuroraGoogle 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レプリケーションが必要です。すべてのマネージドデータベースサービスがこれをサポートしているわけではありません。

既知の制限事項:

コネクションプーリング

ワークロードが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 RedisAzure Managed Redisのいずれも、Redis 7.2またはサポート対象のValkeyバージョンを提供していません。Azureデプロイの場合、RedisまたはValkeyを仮想マシン上で自己管理してください。

大規模な環境では、キャッシュ用と永続データ用に別々のRedisインスタンスを実行します。Redisはシングルスレッドであり、単一の共有インスタンスではスケール時にボトルネックとなります。

マネージドクラウドオブジェクトストレージを使用する

S3互換のオブジェクトストレージサービスを使用します。テスト済みのプロバイダーと設定の詳細の全リストについては、オブジェクトストレージを参照してください。