Amazon Machine Images (AMIs) 및 Marketplace 목록

GitLab은 다음 방법을 통해 AWS 생태계를 지원합니다.

  1. 커뮤니티 AMI
    1. GitLab CE - amd64 및 arm64
    2. GitLab EE (Unlicensed) - amd64 및 arm64
  2. AWS Marketplace 목록
    1. GitLab Premium Self-Managed 및 Duo Pro (라이선스)
    2. GitLab Ultimate Self-Managed 및 Duo Pro (라이선스)

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시간 이후에 확인하는 것이 좋습니다.

공통 릴리스 차단 이벤트

다음 이벤트는 지난 여러 차례 발생하여 릴리스 파이프라인을 실패하게 하고 즉각적인 확인이 필요한 사항입니다.

  1. 공개 AMI 할당량 소진 - 할당량 부족으로 빌드가 실패하면 즉시 할당량 증가를 요청하고, 이전 버전 중 일부 AMI의 등록 취소 또는 개인 AMI화에 관해 Alliances/Product와 논의합니다. 또한 AMI 보존 정책에 대한 문제를 확인하세요.

  2. AWS Marketplace 버전 제한 - AWS Marketplace에는 각 제품에 100개의 버전 제한이 있으며 이를 초과할 경우 새 버전을 게시할 수 없습니다. 그러나 이들은 보통 선택된 Distribution Build 팀 및 Alliance 팀 구성원으로 전달된 특정 이메일 계정을 통해 우리에게 이를 알리며 접근한 계정에 이메일로 알립니다. 그 때 Alliances/Product와 협력하여 이전 버전을 목록에서 제거합니다.

  3. 보류 중인 변경 세트로 인한 AWS Marketplace 목록 차단 - 이런 경우, 변경 세트를 수동으로 취소해야 하며, 릴리스 파이프라인의 Marketplace 릴리스 작업을 다시 시도해야 합니다. 이는 omnibus-gitlab 프로젝트의 Build mirror에 Maintainer 수준의 액세스 권한이 있는 사람이 필요합니다.