올해 굉장히 바쁜 시간을 보내다 보니, 정말 오랜만에 블로그 포스팅을 하게 되었습니다. 이번 블로그 주제는 SaaS 버전 GitLab.com에서 2021년 5월 중순부터 시행된 CI 파이프라인 정책입니다. 이 정책은 가상화폐와 관련된 내용입니다. 어떠한 일이 있었고, GitLab은 이를 어떻게 해결했으며, GitLab 사용자에게 어떤 변화가 있는지 알아봅시다.

photo | 인포그랩 GitLab | 인포그랩 GitLab

발단

요 몇 년간 가상화폐는 식지 않는 뜨거운 감자입니다. GitLab과 CI/CD 파이프라인을 무료로 제공하는 다른 업체에서도 가상화폐에 대한 영향을 피해갈 수 없었습니다. 파이프라인을 통해서 가상화폐를 채굴하는 어뷰징 때문인데요, 이렇게 파이프라인을 어뷰징하는 사례가 많아지면서, GitLab의 리소스 및 비용에 대한 피해뿐만 아니라 성능 이슈까지도 만들었습니다. 24시간 Shared Runner를 제공하는 GitLab에게는 중요한 문제였기 때문에 SaaS 이용 고객들을 위한 새로운 정책을 만들 수 밖에 없었습니다.

계정에 신용 카드 정보 입력

우선 가장 먼저 추가된 정책으로는, 파이프라인을 사용하기 위해서는 사용자 계정에 신용카드 정보를 입력해야 합니다. 저도 최근 교육에서 새로운 계정으로 SaaS 버전에서 파이프라인 실습을 진행하려고 하는데, 신용카드 인증 전에는 파이프라인을 사용할 수 없다는 것을 알아서 참 많이 당황했었습니다.

이 정책에 대해서 간단하게 요약 하면 다음과 같습니다.

  • 2021년 5월 16일 이후에 생성된 신규 무료 사용자는 신용카드 혹은 직불 카드 정보를 추가해야 합니다.
  • 기존 사용자들 중에서도 악용사례가 있을 경우도 추가 정보를 입력해야 합니다.

다음 사용자에게는 영향을 미치지 않습니다.

  • GitLab Self Managed 사용자(설치형 GitLab 사용자)
  • Gitlab.com 유료 사용자(예: 교육, 오픈소스)
  • 2021년 5월 17일 이전에 생성된 사용자

카드를 제공하면 1달러가 결제되지만 실제로는 청구되지 않습니다.

CI minute quotas

카드 정보 입력 이외에 2021년 7월 17일 이후에 추가된 새로운 네임스페이스에 public 프로젝트는 CI 분 단위 사용 제한 정책이 추가되었습니다. 무료 사용자가 400분이 넘게 파이프라인을 돌린다면 추가 라이센스를 구입해야 사용이 가능합니다.

바뀐 점

다음으로는 위 두 정책으로 인해 SaaS 버전 Gitlab.com을 사용하면서 바뀐 점에 대해서 알아보도록 하겠습니다.

  1. 파이프라인 시간 할당량을 초과하면 Job 생성이 실패합니다.
  2. 사용자가 파이프라인 할당량을 초과하면 파이프라인이 실패합니다.
  3. API를 통한 네임스페이스 생성이 제한됩니다.
  4. 사용자가 차단되면 파이프라인이 종료됩니다.
  5. 차단된 사용자가 파이프라인을 소유한 경우 파이프라인이 실행되지 않습니다.
  6. 삭제된 계정이 실행하는 Job간의 격차를 줄입니다.
  7. 인증, 페이로드 및 엑세스 제한과 관련된 외부 파이프라인 검증 서비스를 활용합니다.
  8. 차단된 사용자가 예약된 파이프라인을 실행하지 않도록 합니다.
  9. 무료 사용자를 위한 파이프라인 시간 할당량에 public 프로젝트를 포함합니다.

사용자 옵션

그렇다면 GitLab 사용자가 선택할 수 있는 선택지는 뭐가 있을까요?

  • 신용 카드 정보를 입력하고 shared runner를 무료로 사용
  • 개인 러너를 생성하고 shared runner를 비활성화
  • 신용 카드 정보를 입력하지 않고 CI/CD 파이프라인과 관련된 기능을 사용 안함
  • self-managed GitLab 사용

링크는 계정에 신용카드 정보를 등록하는 방법입니다.

맺음말

이렇게 올해 GitLab SaaS 버전의 파이프라인과 관련된 이슈를 알아봤습니다. 아무래도 GitLab은 대부분 공짜로 제공하는 것들이 많아 이를 어뷰징하는 경우가 많은 것 같습니다. 앞으로는 이러한 어뷰징하는 것들이 줄어들어, 선량한 사용자가 피해를 받지 않고, 좀 더 나은 방향으로 기술이 발전되었으면 하는 바람입니다.

참고 문서