튜토리얼: Google Cloud 통합 설정
이 튜토리얼은 Google Cloud를 GitLab과 통합하여 Google Cloud에 직접 배포할 수 있는 방법을 보여줍니다. Google Cloud 통합을 설정하려면: 통합을 설정하려면 다음이 필요합니다: Google Cloud 사용을 보안하려면 Google Cloud IAM 통합을 설정해야 합니다.
이 튜토리얼은 Google Cloud를 GitLab과 통합하여 Google Cloud에 직접 배포할 수 있는 방법을 보여줍니다.
Google Cloud 통합을 설정하려면:
- Google Cloud IAM(Identity and Access Management)으로 사용 보안 강화
- Google Artifact Registry 리포지터리에 연결
- Google Cloud에서 CI/CD 잡을 실행하도록 GitLab Runner 설정
- CI/CD 컴포넌트로 Google Cloud에 배포
시작하기 전에#
통합을 설정하려면 다음이 필요합니다:
- Maintainer 또는 Owner 권한이 있는 GitLab 프로젝트.
- 사용하려는 Google Cloud 프로젝트에 대한 Google Cloud Owner IAM 권한.
- Google Cloud 프로젝트에 결제가 활성화되어 있어야 합니다.
- Docker 형식 및 Standard 모드의 Google Artifact Registry 리포지터리.
- Google Cloud CLI 및 Terraform 설치.
Google Cloud IAM(Identity and Access Management)으로 사용 보안 강화#
Google Cloud 사용을 보안하려면 Google Cloud IAM 통합을 설정해야 합니다. 이 단계 후에는 GitLab 그룹 또는 프로젝트가 Google Cloud에 연결됩니다. 워크로드 아이덴티티 페더레이션을 사용하여 서비스 계정 키와 관련 위험 없이 Google Cloud 리소스에 대한 권한을 처리할 수 있습니다.
- 상단 표시줄에서 Search or go to를 선택하고 그룹 또는 프로젝트를 찾습니다. 그룹에서 구성하면 기본적으로 그 안의 모든 프로젝트에 설정이 적용됩니다.
- Settings > Integrations를 선택합니다.
- Google Cloud IAM을 선택합니다.
- Guided setup을 선택하고 지침을 따릅니다.
Google Artifact Registry 리포지터리에 연결#
Google IAM 통합이 설정되었으므로 Google Artifact Registry 리포지터리에 연결할 수 있습니다. 이 단계 후에는 GitLab에서 Google Cloud 아티팩트를 볼 수 있습니다.
- GitLab 프로젝트의 왼쪽 사이드바에서 Settings > Integrations를 선택합니다.
- Google Artifact Registry를 선택합니다.
- Enable integration 아래에서 Active 체크박스를 선택합니다.
- 필드를 완성합니다:
- Google Cloud project ID: Artifact Registry 리포지터리가 있는 Google Cloud 프로젝트의 ID.
- Repository name: Artifact Registry 리포지터리의 이름.
- Repository location: Artifact Registry 리포지터리의 위치.
- Configure Google Cloud IAM policies에서 화면의 지침을 따라 Google Cloud에서 IAM 정책을 설정합니다. 이러한 정책은 GitLab 프로젝트에서 Artifact Registry 리포지터리를 사용하는 데 필요합니다.
- Save changes를 선택합니다.
- Google Cloud 아티팩트를 보려면 왼쪽 사이드바에서 Deploy > Google Artifact Registry를 선택합니다.
이후 단계에서 컨테이너 이미지를 Google Artifact Registry에 푸시합니다.
Google Cloud에서 CI/CD 잡을 실행하도록 GitLab Runner 설정#
Google Cloud에서 CI/CD 잡을 실행하도록 GitLab Runner를 설정할 수 있습니다. 이 단계 후에는 GitLab 프로젝트에 여러 잡을 동시에 실행하는 임시 러너를 만드는 러너 관리자가 있는 자동 확장 러너 플릿이 생깁니다.
- GitLab 프로젝트의 왼쪽 사이드바에서 Settings > CI/CD를 선택합니다.
- Runners 섹션을 확장합니다.
- New project runner를 선택합니다.
- 필드를 완성합니다.
- Platform 섹션에서 Google Cloud를 선택합니다.
- Tags 섹션의 Tags 필드에 러너가 실행할 수 있는 잡을 지정하는 잡 태그를 입력합니다. 이 러너에 대한 잡 태그가 없으면 Run untagged를 선택합니다.
- 선택 사항. Runner description 필드에 GitLab에 표시되는 러너 설명을 추가합니다.
- 선택 사항. Configuration 섹션에서 추가 구성을 추가합니다.
- Create runner를 선택합니다.
- Step 1: Specify environment 섹션의 필드를 완성하여 러너가 CI/CD 잡을 실행하는 Google Cloud의 환경을 지정합니다.
- Step 2: Set up GitLab Runner 아래에서 Setup instructions를 선택합니다.
- 모달의 지침을 따릅니다. Step 1은 러너를 프로비저닝할 준비가 되도록 Google Cloud 프로젝트에 대해 한 번만 수행하면 됩니다.
지침을 따른 후 러너가 온라인 상태가 되고 잡을 실행할 준비가 되는 데 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에도 푸시됩니다.
-
GitLab 프로젝트의 왼쪽 사이드바에서 Build > Pipeline editor를 선택합니다.
-
기존 구성에서 다음과 같이 컴포넌트를 추가합니다.
<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 -
설명적인 커밋 메시지를 추가합니다. Target branch는 기본 브랜치여야 합니다.
-
Commit changes를 선택합니다.
-
Build > Pipelines로 이동하여 새 파이프라인이 실행되는지 확인합니다.
-
파이프라인이 성공적으로 완료된 후 Google Artifact Registry로 복사된 컨테이너 이미지를 보려면 왼쪽 사이드바에서 Deploy > Google Artifact Registry를 선택합니다.
Google Cloud Deploy 릴리스 만들기#
파이프라인을 Google Cloud Deploy와 통합하려면 Google의 CI/CD 컴포넌트를 파이프라인에 포함합니다. 이 단계 후에는 파이프라인이 애플리케이션으로 Google Cloud Deploy 릴리스를 만듭니다.
- GitLab 프로젝트의 왼쪽 사이드바에서 Build > Pipeline editor를 선택합니다.
- 기존 구성에서 Google Cloud Deploy 컴포넌트를 추가합니다.
- 컴포넌트
inputs를 편집합니다. - 설명적인 커밋 메시지를 추가합니다. Target branch는 기본 브랜치여야 합니다.
- Commit changes를 선택합니다.
- Build > Pipelines로 이동하여 새 파이프라인이 통과하는지 확인합니다.
- 파이프라인이 성공적으로 완료된 후 릴리스를 보려면 Google Cloud 문서를 참조하세요.
완료했습니다! 이제 Google Cloud를 GitLab과 통합하고 GitLab 프로젝트가 Google Cloud에 원활하게 배포됩니다.
