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

AWSでのGitLabインスタンスのプロビジョニング

AWSでのGitLabインスタンスのインストールに使用可能なInfrastructure as Code

GitLab Environment Toolkit(GET)は、明確な設計思想に基づいたTerraformおよびAnsibleのスクリプト群です。これらのスクリプトは、選択したクラウドプロバイダー上でLinuxパッケージまたはクラウドネイティブハイブリッド環境をデプロイする際に役立ち、GitLabデベロッパーがGitLab Dedicated(例)で使用します。

GitLab Environment Toolkitを使用して、AWS上にクラウドネイティブハイブリッド環境をデプロイできます。ただし必須ではなく、すべての有効な組み合わせをサポートしているとは限りません。なお、スクリプトは現状のまま提供されており、必要に応じて調整できます。

2つと3つのゾーンの高可用性

GitLabのリファレンスアーキテクチャは一般的に3つのゾーンの冗長性を推奨していますが、AWS Well Architectedフレームワークでは、2つのゾーンの冗長性をAWS Well Architectedと見なしています。個々の実装では、最終的な設定のために、2つと3つのゾーンの構成のコストを、独自の高可用性要件に照らして検討する必要があります。

Gitalyクラスター(Praefect)は、整合性投票システムを使用して、同期されたノード間で強力な整合性を実装します。実装されている可用性ゾーンの数に関係なく、ノードの数が偶数であることによって引き起こされる投票の行き詰まりを回避するために、クラスターには常に最小3つのGitalyと3つのPraefectノードが必要です。

すべてのGitLab実装に対応できるAWS PaaS

Linuxパッケージまたはクラウドネイティブハイブリッド実装を使用した両方の実装では、以下のGitLabサービスロールは、AWSサービス(PaaS)で実行できます。インスタンスのスケールに基づいて事前構成されたサイズ設定を必要とするPaaSソリューションは、インスタンスごとのサイズの部品表リストにも記載されます。特定のサイズ設定を必要としないPaaSは、BOMリストに繰り返されません(たとえば、AWS Certificate Authority)。

これらのサービスは、GitLabでテストされています。

ログ集計、送信メールなど、一部のサービスはGitLabによって指定されていませんが、提供されている場合は記載されています。

GitLabサービスAWS PaaS(テスト済み)
参照アーキテクチャで言及されているテスト済みのPaaS
PostgreSQL Database(PostgreSQLデータベース)Amazon RDS PostgreSQL
Redis Caching(Redisキャッシュ)ElastiCache
Gitaly Cluster (Git Repository Storage)(Gitalyクラスター(Gitリポジトリストレージ))
(PraefectおよびPostgreSQLを含む)
ASGとインスタンス
All GitLab storages besides Git Repository Storage(Gitリポジトリストレージ以外のすべてのGitLabストレージ)
(S3互換のGit-LFSを含む)
AWS S3
補足サービス用にテストされたPaaS
Front End Load Balancing(フロントエンドロードバランシング)AWS ELB
Internal Load Balancing(内部ロードバランシング)AWS ELB
Outbound Email Services(送信メールサービス)AWS Simple Email Service(SES)
Certificate Authority and Management(Certificate Authorityと管理)AWS Certificate Authority(ACM)
DNSAWS Route53(テスト済み)
GitLab and Infrastructure Log Aggregation(GitLabおよびインフラストラクチャログ集計)AWS CloudWatch Logs
Infrastructure Performance Metrics(インフラストラクチャのパフォーマンスメトリクス)AWS CloudWatch Metrics
補足的なサービスと設定
Prometheus for GitLabAWS EKS(クラウドネイティブのみ)
Grafana for GitLabAWS EKS(クラウドネイティブのみ)
Encryption (In Transit / At Rest)(暗号化(転送時 / 保存時))AWS KMS
Secrets Storage for Provisioning(プロビジョニングのシークレットストレージ)AWS Secrets Manager
Configuration Data for Provisioning(プロビジョニングの設定データ)AWS Parameter Store
AutoScaling Kubernetes(オートスケールKubernetes)EKSオートスケールエージェント