AWS에서 GitLab 인스턴스 프로비저닝

AWS에서 GitLab 인스턴스 설치를 위한 인프라스트럭처 코드 사용 가능

GitLab Environment Toolkit (GET)은 의견이 담긴 Terraform 및 Ansible 스크립트 모음입니다. 이러한 스크립트는 선택한 클라우드 제공 업체에서 Linux 패키지 또는 클라우드 네이티브 하이브리드 환경을 배포하는 데 도움이 되며 GitLab 개발자들이 GitLab Dedicated (예: )에 사용합니다.

GitLab Environment Toolkit을 사용하여 AWS에 클라우드 네이티브 하이브리드 환경을 배포할 수 있습니다. 그러나 필수는 아니며 모든 유효한 순열을 지원하지는 않을 수 있습니다. 하지만 스크립트는 제시된 상태 그대로 사용할 수 있으며 필요에 맞게 조정할 수 있습니다.

두 가지 및 세 가지 존 고가용성

GitLab 참조 아키텍처는 일반적으로 세 가지 존의 중복성을 장려하지만, AWS 웰 아키텍처 틀에서는 두 가지 존의 중복성을 고려합니다. 각각의 구현은 최종 구성에 대한 자체 고가용성 요구 사항을 무게잡아 두 가지 및 세 가지 존 구성의 비용을 따져야 합니다.

Gitaly Cluster는 동기화된 노드 간의 강력한 일관성을 구현하기 위해 일관성 투표 시스템을 사용합니다. 구현된 가용성 영역의 수에 관계없이 클러스터 내에는 항상 적어도 세 개의 Gitaly 및 세 개의 Praefect 노드가 있어야 하며 노드 수가 짝수인 경우 발생하는 투표 막힘을 피해야 합니다.

모든 GitLab 구현에 적합한 AWS PaaS

Linux 패키지 또는 클라우드 네이티브 하이브리드 구현을 사용하는 모든 구현에 대해 다음 GitLab 서비스 역할을 AWS 서비스 (PaaS)가 수행할 수 있습니다. 인스턴스 규모에 따라 사전 구성된 크기가 필요한 PaaS 솔루션은 인스턴스별 크기 Bill of Materials 목록에도 나열됩니다. 특정 크기가 필요하지 않은 PaaS는 BOM 목록에서 반복되지 않습니다 (예: AWS 인증 관리자).

이러한 서비스는 GitLab에서 테스트되었습니다.

로그 집계, 외부 이메일과 같은 일부 서비스는 GitLab에서 구체적으로 지정되지 않지만 제공되는 경우에는 언급되었습니다.

GitLab 서비스 AWS PaaS (테스트 완료)
참조 아키텍처에서 언급된 테스트된 PaaS  
PostgreSQL 데이터베이스 Amazon RDS PostgreSQL
Redis 캐싱 Redis ElastiCache
Gitaly 클러스터 (Git 저장소 저장소)
(Praefect 및 PostgreSQL 포함)
ASG 및 인스턴스
Git 저장소 저장소 이외의 모든 GitLab 저장소
(S3 호환인 Git-LFS 포함)
AWS S3
   
보조 서비스를 위한 테스트된 PaaS  
프런트 엔드 부하 분산 AWS ELB
내부 부하 분산 AWS ELB
외부 이메일 서비스 AWS Simple Email Service (SES)
인증 기관 및 관리 AWS Certificate Manager (ACM)
DNS AWS Route53 (테스트 완료)
GitLab 및 인프라스트럭처 로그 집계 AWS CloudWatch Logs
인프라스트럭처 성능 지표 AWS CloudWatch Metrics
   
보조 서비스 및 구성  
GitLab을 위한 Prometheus AWS EKS (클라우드 네이티브 전용)
GitLab을 위한 Grafana AWS EKS (클라우드 네이티브 전용)
암호화 (전송 중/정적) AWS KMS
프로비저닝용 보안 저장 AWS Secrets Manager
프로비저닝용 구성 데이터 AWS Parameter Store
자동 크기 조정 쿠버네티스 EKS 자동 크기 조정 에이전트