클라우드 시드

Tier: Free, Premium, Ultimate Offering: GitLab.com, Self-managed, GitLab Dedicated
  • 깃랩 15.4에서 google_cloud라는 플래그로 도입되었습니다. 기본적으로 비활성화 상태입니다.
  • 깃랩 15.5에서 자체 관리형 및 GitLab.com에서 활성화되었습니다.

클라우드 시드는 깃랩 인큐베이션 엔지니어링Google Cloud와 협력하여 이끌고 있는 오픈 소스 프로그램입니다.

클라우드 시드는 헤로쿠와 같은 사용 편의성을 하이퍼 클라우드 유연성으로 결합합니다. 이를 위해 OAuth 2를 사용하여 Terraform 및 인프라스트럭처-애스-코드의 기반에서 하이퍼 클라우드에서 서비스를 제공하여 2일차 운영을 가능케 합니다.

목적

우리는 깃랩에서 주요 클라우드 제공업체로 웹 애플리케이션(및 기타 작업 부하)를 배포하는 것이 매우 간단하다고 믿습니다.

이 노력을 지원하기 위해 클라우드 시드는 깃랩에서 적절한 Google Cloud 서비스를 소비하는 것을 간단하고 직관적으로 만듭니다.

왜 구글 클라우드를 선택했나요

아니면 왜 AWS 또는 Azure가 아닌가요?

클라우드 시드는 누구나 확장할 수 있는 오픈 소스 프로그램이며, 우리는 모든 중요한 클라우드 제공자와 함께 작업하고 싶습니다. 구글 클라우드와 협력적이고 지원적인 팀으로 이 노력에 참여하기를 선택했습니다.

오픈 소스 프로젝트로, 누구나 기여할 수 있고 우리의 방향을 결정할 수 있습니다.

구글 클라우드 런으로 배포

깃랩 프로젝트에 웹 애플리케이션이 준비되면, 클라우드 시드를 사용하여 깃랩에서 구글 클라우드로 응용 프로그램을 배포하는 단계를 따르세요:

  1. 배포 자격 증명 설정
  2. (선택) 기본 GCP 지역 구성
  3. 클라우드 런 배포 파이프라인 구성

배포 자격 증명 설정

클라우드 시드는 깃랩 프로젝트에서 구글 클라우드 플랫폼(GCP) 서비스 계정을 생성하는 인터페이스를 제공합니다. 서비스 계정 생성 워크플로우 중에는 해당 GCP 프로젝트를 선택해야 합니다. 이 프로세스는 서비스 계정, 키 및 배포 권한을 생성합니다.

서비스 계정을 생성하려면:

  1. 프로젝트 :: 인프라스트럭처 :: Google Cloud 페이지로 이동합니다.
  2. 서비스 계정 생성을 선택합니다.
  3. Google OAuth 2 워크플로우를 따르고 깃랩을 승인합니다.
  4. GCP 프로젝트를 선택합니다.
  5. 선택한 GCP 프로젝트에 대한 Git 참조(브랜치 또는 태그 같은 것)를 연결합니다.
  6. 서비스 계정을 생성하려면 양식을 제출합니다.

생성된 서비스 계정, 서비스 계정 키 및 관련 GCP 프로젝트 ID는 깃랩에서 프로젝트 CI 변수로 저장됩니다. 이를 프로젝트 :: 설정 :: CI 페이지에서 검토하고 관리할 수 있습니다.

생성된 서비스 계정에는 다음 역할이 있습니다:

  • roles/iam.serviceAccountUser
  • roles/artifactregistry.admin
  • roles/cloudbuild.builds.builder
  • roles/run.admin
  • roles/storage.admin
  • roles/cloudsql.client
  • roles/browser

시큐리티를 향상시키려면 CI 변수를 시크릿 매니저에 저장할 수 있습니다. 자세한 내용은 깃랩에서의 시크릿 관리를 참조하세요.

기본 GCP 지역 구성

배포를 위해 GCP 지역을 구성할 때, 제공되는 지역 목록은 사용 가능한 모든 GCP 지역의 부분 집합입니다.

지역을 구성하려면:

  1. 프로젝트 :: 인프라스트럭처 :: Google Cloud 페이지로 이동합니다.
  2. GCP 지역 구성을 선택합니다.
  3. 선호하는 GCP 지역을 선택합니다.
  4. 선택한 GCP 지역에 대한 Git 참조(브랜치 또는 태그 같은 것)를 연결합니다.
  5. 양식을 제출하여 GCP 지역을 구성합니다.

구성된 GCP 지역은 깃랩에서 프로젝트 CI 변수로 저장됩니다. 이를 프로젝트 :: 설정 :: CI 페이지에서 검토하고 관리할 수 있습니다.

클라우드 런 배포 파이프라인 구성

파이프라인에서 구글 클라우드 런 배포 작업을 구성할 수 있습니다. 이러한 파이프라인의 전형적인 사용 사례는 웹 애플리케이션의 지속적인 배포입니다.

프로젝트 파이프라인 자체는 빌드, 테스트 및 보안과 같은 여러 단계에 걸친 더 넓은 목적을 가질 수 있습니다. 따라서 클라우드 런 배포 제공은 훨씬 큰 파이프라인에 맞춰진 하나의 작업으로 제공됩니다.

클라우드 런 배포 파이프라인을 구성하려면:

  1. 프로젝트 :: 인프라스트럭처 :: Google Cloud 페이지로 이동합니다.
  2. 배포 탭으로 이동합니다.
  3. Cloud Run에서 합병 요청을 통해 구성을 선택합니다.
  4. 변경 사항을 검토하고 합병 요청을 생성하려면 제출합니다.

이렇게 하면 클라우드 런 배포 파이프라인이 있는 새 브랜치가 생성되고 (또는 기존 파이프라인에 삽입됩니다) 변경 사항 및 배포 파이프라인 실행을 검토하고 본 브랜치로 병합할 수 있는 관련 합병 요청이 작성됩니다.

클라우드 SQL 데이터베이스 프로비저닝

관계형 데이터베이스 인스턴스는 프로젝트 :: 인프라 :: Google Cloud 페이지에서 프로비저닝할 수 있습니다. Cloud SQL은 데이터베이스 인스턴스를 프로비저닝하는 데 사용되는 기본 Google Cloud 서비스입니다.

다음 데이터베이스 및 버전이 지원됩니다:

  • PostgreSQL: 14, 13, 12, 11, 10 및 9.6
  • MySQL: 8.0, 5.7 및 5.6
  • SQL Server
    • 2019: Standard, Enterprise, Express, 및 Web
    • 2017: Standard, Enterprise, Express, 및 Web

Google Cloud의 가격이 적용됩니다. Cloud SQL 가격 페이지를 참조하십시오.

  1. 데이터베이스 인스턴스 생성
  2. 백그라운드 워커를 통한 데이터베이스 설정
  3. 데이터베이스에 연결
  4. 데이터베이스 인스턴스 관리

데이터베이스 인스턴스 생성

프로젝트 :: 인프라 :: Google Cloud 페이지에서 데이터베이스 탭을 선택합니다. 여기에서 포스트그레스, MySQL 및 SQL Server 데이터베이스 인스턴스를 생성할 수 있는 세 가지 버튼이 있습니다.

데이터베이스 인스턴스 생성 양식에는 GCP 프로젝트, Git ref(브랜치 또는 태그), 데이터베이스 버전 및 머신 유형에 대한 필드가 있습니다. 제출하면 데이터베이스 인스턴스가 생성되며 데이터베이스 설정이 백그라운드 작업으로 대기열에 추가됩니다.

백그라운드 워커를 통한 데이터베이스 설정

데이터베이스 인스턴스가 성공적으로 생성되면 백그라운드 워커가 다음 작업을 수행합니다:

  • 데이터베이스 사용자 생성
  • 데이터베이스 스키마 생성
  • 프로젝트의 CI/CD 변수에 데이터베이스 세부정보 저장

데이터베이스에 연결

데이터베이스 인스턴스 설정이 완료되면 데이터베이스 연결 세부정보가 프로젝트 변수로 사용할 수 있습니다. 이러한 정보는 프로젝트 :: 설정 :: CI 페이지를 통해 관리할 수 있으며 해당 환경에서 실행되는 파이프라인에서 사용할 수 있습니다.

데이터베이스 인스턴스 관리

프로젝트 :: 인프라 :: Google Cloud :: 데이터베이스의 인스턴스 목록을 클릭하면 Google Cloud 콘솔로 이동합니다. 인스턴스를 선택하여 세부정보를 확인하고 인스턴스를 관리할 수 있습니다.

클라우드 시드에 기여

다음과 같은 여러 방법으로 클라우드 시드에 기여할 수 있습니다:

  • 클라우드 시드를 사용하고 피드백을 공유합니다.
  • Ruby on Rails 또는 Vue.js에 익숙하다면, 개발자로서 GitLab에 기여하는 것을 고려해 보세요.
    • 클라우드 시드의 많은 부분은 GitLab 코드베이스의 내부 모듈입니다.
  • GitLab 파이프라인에 익숙하다면, Cloud Seed 라이브러리 프로젝트에 기여하는 것을 고려해 보세요.