튜토리얼: Google Cloud 통합 설정

이 튜토리얼에서는 Google Cloud를 GitLab과 통합하여 Google Cloud로 직접 배포할 수 있는 방법을 보여줍니다.

Google Cloud 통합 설정 방법:

  1. Google Cloud Identity 및 Access Management (IAM)을 사용하여 사용량 보호
  2. Google Artifact Registry 리포지토리에 연결
  3. Google Cloud에서 CI/CD 작업을 실행하기 위해 GitLab 러너 설정
  4. CI/CD 구성 요소를 사용하여 Google Cloud로 배포

시작하기 전에

통합 설정을 위해 다음이 필요합니다:

  • 적어도 Maintainer 역할이 있는 GitLab 프로젝트가 있어야 합니다.
  • 사용하려는 Google Cloud 프로젝트에 Owner IAM 역할이 있어야 합니다.
  • Google Artifact Registry 리포지토리가 Docker 형식 및 표준 모드로 있어야 합니다.
  • Google Cloud CLITerraform을 설치해야 합니다.

Google Cloud Identity 및 Access Management (IAM)을 사용하여 사용량 보호

Google Cloud 사용량을 보호하려면 Google Cloud IAM 통합을 설정해야 합니다. 이 단계 이후에 GitLab 그룹이나 프로젝트가 Google Cloud와 연결됩니다. Workload Identity Federation을 사용하여 서비스 계정 키와 관련된 리스크 없이 Google Cloud 리소스의 권한을 처리할 수 있습니다.

  1. 왼쪽 사이드바에서 검색 또는 이동을 선택하고 그룹이나 프로젝트를 찾습니다. 그룹에서 이 설정을 구성하면 설정이 기본적으로 그룹 내의 모든 프로젝트에 적용됩니다.
  2. 설정 > 통합을 선택합니다.
  3. Google Cloud IAM을 선택합니다.
  4. 조종 설정을 선택하고 지시 사항에 따릅니다.

Google Artifact Registry 리포지토리에 연결

Google IAM 통합 설정이 완료되면 Google Artifact Registry 리포지토리에 연결할 수 있습니다. 이 단계 이후에 GitLab에서 Google Cloud 아티팩트를 볼 수 있습니다.

  1. GitLab 프로젝트에서 왼쪽 사이드바에서 설정 > 통합을 선택합니다.
  2. Google Artifact Registry를 선택합니다.
  3. 통합 활성화 아래에서 활성 확인란을 선택합니다.
  4. 다음 필드를 작성합니다:
    • Google Cloud 프로젝트 ID: Google Artifact Registry 리포지토리가 있는 Google Cloud 프로젝트의 ID입니다.
    • 리포지토리 이름: Artifact Registry 리포지토리의 이름입니다.
    • 리포지토리 위치: Artifact Registry 리포지토리의 위치입니다.
  5. Google Cloud IAM 정책 구성에서 온스크린 지시에 따라 GitLab에서 사용하려면 Google Cloud의 IAM 정책을 설정합니다.
  6. 변경 사항 저장을 선택합니다.
  7. Google Cloud 아티팩트를 보려면 왼쪽 사이드바에서 배포 > Google Artifact Registry를 선택합니다.

나중에는 컨테이너 이미지를 Google Artifact Registry에 푸시합니다.

GitLab 러너 설정하여 Google Cloud에서 CI/CD 작업 실행

GitLab 러너를 Google Cloud에서 CI/CD 작업을 실행하기 위해 설정할 수 있습니다. 이 단계 이후에 GitLab 프로젝트에는 러너 관리자가 동시에 여러 작업을 실행하는 임시 러너를 생성하는 오토스케일링 러너 풀이 있습니다.

  1. GitLab 프로젝트에서 왼쪽 사이드바에서 설정 > CI/CD를 선택합니다.
  2. 러너 섹션을 확장합니다.
  3. 새 프로젝트 러너를 선택합니다.
  4. 다음 필드를 작성합니다.
    • 플랫폼 섹션에서 Google Cloud를 선택합니다.
    • 태그 섹션에서 태그 필드에 러너가 실행할 작업 태그를 입력합니다. 이러한 러너에 대해 작업 태그가 없으면 태그 없는을 선택합니다.
    • 러너 설명 필드에 GitLab에 표시되는 러너 설명(선택 사항)을 추가합니다.
    • 구성 섹션에서 추가 구성을 추가합니다(선택 사항).
  5. 러너 생성을 선택합니다.
  6. 단계 1: 환경 지정 섹션의 필드를 작성하여 Google Cloud에서 러너가 CI/CD 작업을 실행하는 환경을 지정합니다.
  7. 단계 2: GitLab 러너 설정 아래에서 설정 지침을 선택합니다.
  8. 모달에서 지시 사항을 따릅니다. Google Cloud 프로젝트에 대해 단계 1을 한 번만 수행하면 러너가 프로비저닝할 준비가 되어 있습니다.

지시 사항을 따른 후에는 러너가 온라인 상태가 되고 작업을 실행할 준비가 되기까지 1분이 걸릴 수 있습니다.

CI/CD 구성 요소를 사용하여 Google Cloud로 배포

개발에 대한 최선의 방법은 일관성을 유지하기 위해 CI/CD 구성 요소와 같은 구문을 재사용하는 것입니다.

GitLab 및 Google의 구성 요소 라이브러리를 사용하여 GitLab 프로젝트를 Google Cloud 리소스와 상호 작용할 수 있습니다. Google의 CI/CD 구성 요소를 참조하세요.

컨테이너 이미지를 Google Artifact Registry로 복사

시작하기 전에 컨테이너 이미지를 빌드하고 GitLab 컨테이너 레지스트리에 푸시하는 작업을 수행하는 작동하는 CI/CD 구성이 있어야 합니다.

GitLab 컨테이너 레지스트리에서 Google Artifact Registry로 컨테이너 이미지를 복사하려면 파이프라인에 Google의 CI/CD 구성 요소를 포함하세요. 이 단계 이후에는 GitLab 컨테이너 레지스트리에 새 컨테이너 이미지를 푸시하면 Google Artifact Registry에도 해당 이미지가 푸시됩니다.

  1. GitLab 프로젝트에서 왼쪽 사이드바에서 빌드 > 파이프라인 편집기를 선택합니다.
  2. 기존 구성에서 다음과 같이 구성을 추가합니다.
    • <your_stage>를 사용하는 단계로 변경합니다. 이미지가 빌드되고 GitLab 컨테이너 레지스트리에 푸시된 후여야 합니다.
    include:
      - component: gitlab.com/google-gitlab-components/artifact-registry/upload-artifact-registry@main
        inputs:
          stage: <your_stage>
          source: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA
          target: $GOOGLE_ARTIFACT_REGISTRY_REPOSITORY_LOCATION-docker.pkg.dev/$GOOGLE_ARTIFACT_REGISTRY_PROJECT_ID/$GOOGLE_ARTIFACT_REGISTRY_REPOSITORY_NAME/$CI_PROJECT_NAME:$CI_COMMIT_SHORT_SHA
    
  3. 설명 커밋 메시지를 추가합니다. 대상 브랜치는 기본 브랜치여야 합니다.
  4. 변경 사항 커밋을 선택합니다.
  5. 빌드 > 파이프라인으로 이동하여 새 파이프라인이 실행되는지 확인합니다.
  6. 파이프라인이 성공적으로 완료되면 Google Artifact Registry에 복사된 컨테이너 이미지를 보려면 왼쪽 사이드바에서 배포 > Google Artifact Registry를 선택합니다.

구글 클라우드 배포 릴리즈 생성

파이프라인을 구글 클라우드 배포와 통합하려면 파이프라인에 구글의 CI/CD 구성 요소를 포함하십시오. 이 단계 이후에 파이프라인은 애플리케이션과 함께 구글 클라우드 배포 릴리스를 생성합니다.

  1. GitLab 프로젝트에서 왼쪽 사이드바에서 Build > Pipeline editor를 선택합니다.
  2. 기존 구성에 구글 클라우드 배포 구성 요소를 추가합니다.
  3. inputs 구성을 편집합니다.
  4. 설명적인 커밋 메시지를 추가합니다. 대상 브랜치는 기본 브랜치여야 합니다.
  5. 변경 사항 커밋을 선택합니다.
  6. Build > 파이프라인으로 이동하여 새 파이프라인이 성공적으로 통과되었는지 확인합니다.
  7. 파이프라인이 성공적으로 완료된 후, 릴리스를 보려면 구글 클라우드 설명서를 참조하세요.

그리고 여기까지입니다! 이제 구글 클라우드를 GitLab과 통합했으며, GitLab 프로젝트가 원활하게 구글 클라우드로 배포됩니다.

관련 주제