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