InfoGrab Docs

Cloud Seed

요약

Cloud Seed는 Google Cloud와 협력하여 GitLab이 주도하는 오픈 소스 프로그램입니다. Cloud Seed는 Heroku와 같은 사용 편의성과 하이퍼 클라우드 유연성을 결합합니다. GitLab에서 주요 클라우드 프로바이더로 웹 애플리케이션(및 기타 워크로드)을 배포하는 것이 간단해야 한다고 믿습니다.

히스토리

Cloud Seed는 Google Cloud와 협력하여 GitLab이 주도하는 오픈 소스 프로그램입니다.

Cloud Seed는 Heroku와 같은 사용 편의성과 하이퍼 클라우드 유연성을 결합합니다. OAuth 2를 사용하여 Terraform과 인프라-코드(infrastructure-as-code) 기반의 하이퍼 클라우드에서 서비스를 프로비저닝하여 Day 2 운영을 가능하게 합니다.

목적#

GitLab에서 주요 클라우드 프로바이더로 웹 애플리케이션(및 기타 워크로드)을 배포하는 것이 간단해야 한다고 믿습니다.

이를 지원하기 위해 Cloud Seed는 GitLab에서 적합한 Google Cloud 서비스를 간단하고 직관적으로 사용할 수 있게 합니다.

Google Cloud를 선택한 이유#

또는 AWS나 Azure를 선택하지 않은 이유는?

Cloud Seed는 누구나 확장할 수 있는 오픈 소스 프로그램이며, 모든 주요 클라우드 프로바이더와 협력하기를 원합니다. Google Cloud를 선택한 이유는 그들의 팀이 이 노력에서 접근하기 쉽고, 지원적이며, 협력적이기 때문입니다.

오픈 소스 프로젝트로서 누구나 기여하고 우리의 방향을 형성할 수 있습니다.

Google Cloud Run에 배포#

GitLab 프로젝트에 웹 애플리케이션이 있는 경우, Cloud Seed를 사용하여 GitLab에서 Google Cloud로 애플리케이션을 배포하려면 다음 단계를 따릅니다:

  1. 배포 자격 증명 설정
  2. (선택 사항) 선호하는 GCP 리전 구성
  3. Cloud Run 배포 파이프라인 구성

배포 자격 증명 설정#

Cloud Seed는 GitLab 프로젝트에서 Google Cloud Platform(GCP) 서비스 계정을 생성하는 인터페이스를 제공합니다. 서비스 계정 생성 워크플로우 중에 연관된 GCP 프로젝트를 선택해야 합니다. 이 프로세스는 서비스 계정, 키 및 배포 권한을 생성합니다.

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

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

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

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

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

시크릿 관리자에 CI 변수를 저장하여 보안을 강화할 수 있습니다. 자세한 내용은 GitLab으로 시크릿 관리를 참조하세요.

선호하는 GCP 리전 구성#

배포에 대한 GCP 리전을 구성할 때 제공되는 리전 목록은 사용 가능한 모든 GCP 리전의 하위 집합입니다.

리전을 구성하려면:

  1. Project :: Infrastructure :: Google Cloud 페이지로 이동합니다.
  2. GCP 리전 구성을 선택합니다.
  3. 선호하는 GCP 리전을 선택합니다.
  4. 선택한 GCP 리전에 대한 Git 참조(예: 브랜치 또는 태그)를 연결합니다.
  5. 양식을 제출하여 GCP 리전을 구성합니다.

구성된 GCP 리전은 GitLab에 프로젝트 CI 변수로 저장됩니다. Project :: Settings :: CI 페이지에서 검토 및 관리할 수 있습니다.

Cloud Run 배포 파이프라인 구성#

파이프라인에서 Google Cloud Run 배포 작업을 구성할 수 있습니다. 이러한 파이프라인의 일반적인 사용 사례는 웹 애플리케이션의 지속적 배포입니다.

프로젝트 파이프라인 자체는 빌드, 테스트, 보안과 같은 여러 스테이지에 걸쳐 더 광범위한 목적을 가질 수 있습니다. 따라서 Cloud Run 배포 오퍼링은 훨씬 더 큰 파이프라인에 맞는 하나의 작업으로 패키징됩니다.

Cloud Run 배포 파이프라인을 구성하려면:

  1. Project :: Infrastructure :: Google Cloud 페이지로 이동합니다.
  2. Deployments 탭으로 이동합니다.
  3. Cloud Run에서 머지 리퀘스트를 통해 구성을 선택합니다.
  4. 변경 사항을 검토하고 제출하여 머지 리퀘스트를 생성합니다.

이렇게 하면 Cloud Run 배포 파이프라인이 있는 새 브랜치를 생성하거나(또는 기존 파이프라인에 삽입) 변경 사항과 배포 파이프라인 실행을 검토하고 메인 브랜치에 병합할 수 있는 관련 머지 리퀘스트를 생성합니다.

Cloud SQL 데이터베이스 프로비저닝#

관계형 데이터베이스 인스턴스는 Project :: Infrastructure :: 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. 데이터베이스 인스턴스 관리

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

Project :: Infrastructure :: Google Cloud 페이지에서 데이터베이스 탭을 선택합니다. 여기서 Postgres, MySQL, SQL Server 데이터베이스 인스턴스를 생성하는 세 개의 버튼을 찾을 수 있습니다.

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

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

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

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

데이터베이스 연결#

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

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

Project :: Infrastructure :: Google Cloud :: Databases의 인스턴스 목록은 Google Cloud Console로 다시 연결됩니다. 인스턴스를 선택하여 세부 정보를 보고 인스턴스를 관리합니다.

Cloud Seed에 기여#

Cloud Seed에 기여하는 몇 가지 방법이 있습니다:

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

Cloud Seed

Tier: Free, Premium, Ultimate
Offering: GitLab.com, GitLab Self-Managed, GitLab Dedicated
원문 보기
요약

Cloud Seed는 Google Cloud와 협력하여 GitLab이 주도하는 오픈 소스 프로그램입니다. Cloud Seed는 Heroku와 같은 사용 편의성과 하이퍼 클라우드 유연성을 결합합니다. GitLab에서 주요 클라우드 프로바이더로 웹 애플리케이션(및 기타 워크로드)을 배포하는 것이 간단해야 한다고 믿습니다.

히스토리

Cloud Seed는 Google Cloud와 협력하여 GitLab이 주도하는 오픈 소스 프로그램입니다.

Cloud Seed는 Heroku와 같은 사용 편의성과 하이퍼 클라우드 유연성을 결합합니다. OAuth 2를 사용하여 Terraform과 인프라-코드(infrastructure-as-code) 기반의 하이퍼 클라우드에서 서비스를 프로비저닝하여 Day 2 운영을 가능하게 합니다.

목적#

GitLab에서 주요 클라우드 프로바이더로 웹 애플리케이션(및 기타 워크로드)을 배포하는 것이 간단해야 한다고 믿습니다.

이를 지원하기 위해 Cloud Seed는 GitLab에서 적합한 Google Cloud 서비스를 간단하고 직관적으로 사용할 수 있게 합니다.

Google Cloud를 선택한 이유#

또는 AWS나 Azure를 선택하지 않은 이유는?

Cloud Seed는 누구나 확장할 수 있는 오픈 소스 프로그램이며, 모든 주요 클라우드 프로바이더와 협력하기를 원합니다. Google Cloud를 선택한 이유는 그들의 팀이 이 노력에서 접근하기 쉽고, 지원적이며, 협력적이기 때문입니다.

오픈 소스 프로젝트로서 누구나 기여하고 우리의 방향을 형성할 수 있습니다.

Google Cloud Run에 배포#

GitLab 프로젝트에 웹 애플리케이션이 있는 경우, Cloud Seed를 사용하여 GitLab에서 Google Cloud로 애플리케이션을 배포하려면 다음 단계를 따릅니다:

  1. 배포 자격 증명 설정
  2. (선택 사항) 선호하는 GCP 리전 구성
  3. Cloud Run 배포 파이프라인 구성

배포 자격 증명 설정#

Cloud Seed는 GitLab 프로젝트에서 Google Cloud Platform(GCP) 서비스 계정을 생성하는 인터페이스를 제공합니다. 서비스 계정 생성 워크플로우 중에 연관된 GCP 프로젝트를 선택해야 합니다. 이 프로세스는 서비스 계정, 키 및 배포 권한을 생성합니다.

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

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

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

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

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

시크릿 관리자에 CI 변수를 저장하여 보안을 강화할 수 있습니다. 자세한 내용은 GitLab으로 시크릿 관리를 참조하세요.

선호하는 GCP 리전 구성#

배포에 대한 GCP 리전을 구성할 때 제공되는 리전 목록은 사용 가능한 모든 GCP 리전의 하위 집합입니다.

리전을 구성하려면:

  1. Project :: Infrastructure :: Google Cloud 페이지로 이동합니다.
  2. GCP 리전 구성을 선택합니다.
  3. 선호하는 GCP 리전을 선택합니다.
  4. 선택한 GCP 리전에 대한 Git 참조(예: 브랜치 또는 태그)를 연결합니다.
  5. 양식을 제출하여 GCP 리전을 구성합니다.

구성된 GCP 리전은 GitLab에 프로젝트 CI 변수로 저장됩니다. Project :: Settings :: CI 페이지에서 검토 및 관리할 수 있습니다.

Cloud Run 배포 파이프라인 구성#

파이프라인에서 Google Cloud Run 배포 작업을 구성할 수 있습니다. 이러한 파이프라인의 일반적인 사용 사례는 웹 애플리케이션의 지속적 배포입니다.

프로젝트 파이프라인 자체는 빌드, 테스트, 보안과 같은 여러 스테이지에 걸쳐 더 광범위한 목적을 가질 수 있습니다. 따라서 Cloud Run 배포 오퍼링은 훨씬 더 큰 파이프라인에 맞는 하나의 작업으로 패키징됩니다.

Cloud Run 배포 파이프라인을 구성하려면:

  1. Project :: Infrastructure :: Google Cloud 페이지로 이동합니다.
  2. Deployments 탭으로 이동합니다.
  3. Cloud Run에서 머지 리퀘스트를 통해 구성을 선택합니다.
  4. 변경 사항을 검토하고 제출하여 머지 리퀘스트를 생성합니다.

이렇게 하면 Cloud Run 배포 파이프라인이 있는 새 브랜치를 생성하거나(또는 기존 파이프라인에 삽입) 변경 사항과 배포 파이프라인 실행을 검토하고 메인 브랜치에 병합할 수 있는 관련 머지 리퀘스트를 생성합니다.

Cloud SQL 데이터베이스 프로비저닝#

관계형 데이터베이스 인스턴스는 Project :: Infrastructure :: 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. 데이터베이스 인스턴스 관리

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

Project :: Infrastructure :: Google Cloud 페이지에서 데이터베이스 탭을 선택합니다. 여기서 Postgres, MySQL, SQL Server 데이터베이스 인스턴스를 생성하는 세 개의 버튼을 찾을 수 있습니다.

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

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

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

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

데이터베이스 연결#

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

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

Project :: Infrastructure :: Google Cloud :: Databases의 인스턴스 목록은 Google Cloud Console로 다시 연결됩니다. 인스턴스를 선택하여 세부 정보를 보고 인스턴스를 관리합니다.

Cloud Seed에 기여#

Cloud Seed에 기여하는 몇 가지 방법이 있습니다:

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