Amazon Machine Images (AMIs) 및 Marketplace 목록
GitLab은 다음 방법을 통해 AWS 생태계를 지원합니다.
- 커뮤니티 AMI
- AWS Marketplace 목록
AMI 빌드
AMI는 정기 릴리스 프로세스의 일환으로 빌드되며 빌드 미러에서 실행되는 태그 파이프라인을 사용하고 내부적으로 Ubuntu 22.04 패키지를 사용합니다. 이들은 packer
를 사용하여 Amazon EBS
빌더로 빌드됩니다. 위에 나열된 각 커뮤니티 AMI에는 빌드 및 AMI 속성을 지정하는 packer 구성 파일과 GitLab 패키지를 설치하고 AMI의 시작 동작을 구성하는 업데이트 스크립트가 있습니다. 업데이트 스크립트는 Ubuntu 22.04 패키지를 다운로드하고 VM에 설치합니다. 또한 VM 시작 시 외부 IP 주소를 사용하여 GitLab 인스턴스를 자동으로 구성하는 cloud-init
스크립트를 설치합니다.
이러한 공개 커뮤니티 AMI 외에도 GitLab EE Premium 및 Ultimate 티어용으로 라이선스가 포함된 개인 AMI 두 개가 빌드됩니다. 이 라이선스 파일은 VM 시작시 초기 gitlab-ctl reconfigure
실행 과정에서 사용됩니다. 이러한 AMI는 AWS Marketplace 목록을 지원합니다.
AWS Marketplace에 릴리스
릴리스 프로세스 중에 AMI를 빌드하는 것 외에도 Omnibus GitLab 태그 파이프라인은 해당 AWS Marketplace 목록의 새 버전을 게시합니다. 위에서 언급한 개인 AMI는 이러한 목록을 지원하는 데 사용됩니다. 릴리스 파이프라인의 일환으로 우리는 새 버전을 게시하기 위해 변경 세트를 제출합니다. AMI 생성과는 달리 이 프로세스는 즉시 진행되지 않으며 변경 세트의 상태를 정기적으로 수동으로 확인하여 이 목록에 적용되었는지 확인해야 합니다. 이는 가급적 24시간 이후에 확인하는 것이 좋습니다.
공통 릴리스 차단 이벤트
다음 이벤트는 지난 여러 차례 발생하여 릴리스 파이프라인을 실패하게 하고 즉각적인 확인이 필요한 사항입니다.
-
공개 AMI 할당량 소진 - 할당량 부족으로 빌드가 실패하면 즉시 할당량 증가를 요청하고, 이전 버전 중 일부 AMI의 등록 취소 또는 개인 AMI화에 관해 Alliances/Product와 논의합니다. 또한 AMI 보존 정책에 대한 문제를 확인하세요.
-
AWS Marketplace 버전 제한 - AWS Marketplace에는 각 제품에 100개의 버전 제한이 있으며 이를 초과할 경우 새 버전을 게시할 수 없습니다. 그러나 이들은 보통 선택된 Distribution Build 팀 및 Alliance 팀 구성원으로 전달된 특정 이메일 계정을 통해 우리에게 이를 알리며 접근한 계정에 이메일로 알립니다. 그 때 Alliances/Product와 협력하여 이전 버전을 목록에서 제거합니다.
-
보류 중인 변경 세트로 인한 AWS Marketplace 목록 차단 - 이런 경우, 변경 세트를 수동으로 취소해야 하며, 릴리스 파이프라인의 Marketplace 릴리스 작업을 다시 시도해야 합니다. 이는
omnibus-gitlab
프로젝트의 Build mirror에 Maintainer 수준의 액세스 권한이 있는 사람이 필요합니다.