Cloud Build를 사용하여 Cloud Run에 컨테이너화된 애플리케이션 배포

이 페이지에서는 Cloud Build를 사용하여 Cloud Run에 컨테이너식 애플리케이션을 배포하는 방법을 보여줍니다.


Cloud Shell 편집기에서 이 태스크의 단계별 안내를 직접 수행하려면 둘러보기를 클릭합니다.

둘러보기


시작하기 전에

  1. Google Cloud 계정에 로그인합니다. Google Cloud를 처음 사용하는 경우 계정을 만들고 Google 제품의 실제 성능을 평가해 보세요. 신규 고객에게는 워크로드를 실행, 테스트, 배포하는 데 사용할 수 있는 $300의 무료 크레딧이 제공됩니다.
  2. Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.

    프로젝트 선택기로 이동

  3. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  4. API Cloud Build, Cloud Run, Artifact Registry, and Compute Engine 사용 설정

    API 사용 설정

  5. Google Cloud CLI를 설치합니다.
  6. gcloud CLI를 초기화하려면 다음 명령어를 실행합니다.

    gcloud init
  7. Google Cloud Console의 프로젝트 선택기 페이지에서 Google Cloud 프로젝트를 선택하거나 만듭니다.

    프로젝트 선택기로 이동

  8. Google Cloud 프로젝트에 결제가 사용 설정되어 있는지 확인합니다.

  9. API Cloud Build, Cloud Run, Artifact Registry, and Compute Engine 사용 설정

    API 사용 설정

  10. Google Cloud CLI를 설치합니다.
  11. gcloud CLI를 초기화하려면 다음 명령어를 실행합니다.

    gcloud init

권한 부여

Cloud Run에 이미지를 배포하려면 Cloud Build에 Cloud Run 관리자IAM 서비스 계정 사용자 권한이 필요합니다.

  1. 터미널 창을 엽니다.

  2. 프로젝트 ID와 프로젝트 번호를 저장할 환경 변수를 설정합니다.

    PROJECT_ID=$(gcloud config list --format='value(core.project)')
    PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format='value(projectNumber)')
    
  3. Cloud Build 서비스 계정에 Cloud Run 관리자 역할을 부여합니다.

    gcloud projects add-iam-policy-binding $PROJECT_ID \
        --member=serviceAccount:$PROJECT_NUMBER@cloudbuild.gserviceaccount.com \
        --role=roles/run.admin
    
  4. Cloud Run 런타임 서비스 계정의 Cloud Build 서비스 계정에 IAM 서비스 계정 사용자 역할을 부여합니다.

    gcloud iam service-accounts add-iam-policy-binding \
        $PROJECT_NUMBER-compute@developer.gserviceaccount.com \
        --member=serviceAccount:$PROJECT_NUMBER@cloudbuild.gserviceaccount.com \
        --role=roles/iam.serviceAccountUser
    

사전 빌드된 이미지 배포

Artifact Registry에 저장된 사전 빌드된 이미지를 Cloud Run에 배포하도록 Cloud Build를 구성할 수 있습니다.

사전 빌드된 이미지를 배포하려면 다음 안내를 따르세요.

  1. 터미널 창을 엽니다(열려 있지 않은 경우).

  2. helloworld라는 이름의 새 디렉터리를 만들고 디렉터리로 이동합니다.

    mkdir helloworld
    cd helloworld
    
  3. 다음 콘텐츠로 cloudbuild.yaml라는 파일을 만듭니다. 이 파일은 Cloud Build 구성 파일입니다. 여기에는 cloudrunservice라는 Cloud Run 서비스에서 이름이 us-docker.pkg.dev/cloudrun/container/hello인 이미지를 배포하기 위한 Cloud Build 지침이 포함되어 있습니다.

    steps:
    - name: 'gcr.io/cloud-builders/gcloud'
      script: |
        gcloud run deploy cloudrunservice --image us-docker.pkg.dev/cloudrun/container/hello --region us-central1 --platform managed --allow-unauthenticated
  4. 다음 명령어를 실행하여 이미지를 배포합니다.

    gcloud builds submit --region=us-west2 --config cloudbuild.yaml
    

빌드가 완료되면 다음과 비슷한 출력이 표시됩니다.

DONE
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

ID                                    CREATE_TIME                DURATION  SOURCE                                                                                            IMAGES  STATUS
784653b2-f00e-4c4b-9f5f-96a5f115bef4  2020-01-23T14:53:13+00:00  23S       gs://cloudrunqs-project_cloudbuild/source/1579791193.217726-ea20e1c787fb4784b19fb1273d032df2.tgz  -       SUCCESS

hello 이미지를 Cloud Run에 배포했습니다.

배포된 이미지 실행

  1. Google Cloud Console에서 Cloud Run 페이지를 엽니다.

    Cloud Run 페이지 열기

  2. 프로젝트를 선택하고 열기를 클릭합니다.

    Cloud Run 서비스 페이지가 표시됩니다.

  3. 테이블에서 이름이 cloudrunservice인 행을 찾고 cloudrunservice를 클릭합니다.

    cloudrunservice서비스 세부정보 페이지가 표시됩니다.

  4. cloudrunservice에 배포한 이미지를 실행하려면 URL을 클릭합니다.

    Cloud Run 서비스 세부정보 페이지 스크린샷

다음 단계