서비스를 위한 Cloud Storage 볼륨 마운트

이 페이지에서는 Cloud Run 볼륨 마운트를 사용하여 Cloud Storage 버킷을 스토리지 볼륨으로 마운트하는 방법을 보여줍니다.

Cloud Run에서 버킷을 볼륨으로 마운트하면 버킷 콘텐츠가 컨테이너 파일 시스템에 파일로 제공되므로, 표준 파일 시스템 작업 및 라이브러리를 사용하여 해당 파일 시스템에 액세스할 수 있습니다.

제한사항

Cloud Run은 이 볼륨 마운트에 Cloud Storage FUSE를 사용합니다. 따라서 Cloud Storage 버킷을 볼륨으로 마운트할 때 유의해야 할 몇 가지 사항이 있습니다.

  • Cloud Storage FUSE는 같은 파일에 여러 번의 쓰기(파일 잠금)에 대한 동시 실행 제어를 제공하지 않습니다. 파일 여러 개를 쓰기 위해 파일을 바꾸려고 하면 마지막 쓰기만 성공하고 이전의 모든 쓰기는 손실됩니다.
  • Cloud Storage FUSE는 완전히 POSIX 규격 파일 시스템이 아닙니다. 자세한 내용은 Cloud Storage FUSE 문서를 참조하세요.

시작하기 전에

볼륨으로 마운트할 Cloud Storage 버킷이 필요합니다.

Cloud Storage 버킷에 대한 IAM 액세스 제어

Cloud Run 서비스의 서비스 IDIAM으로 보호되는 Cloud Storage 버킷에 대해 인증합니다.

구성된 서비스 계정에 파일 액세스에 필요한 권한이 있는지 확인합니다.

Cloud Storage 볼륨 마운트

여러 마운트 경로에 여러 버킷을 마운트할 수 있습니다. 컨테이너 간에 동일하거나 다른 마운트 경로를 사용하여 한 컨테이너를 두 개 이상의 컨테이너에 마운트할 수도 있습니다.

여러 컨테이너를 사용하는 경우 먼저 볼륨을 지정한 후 각 컨테이너의 볼륨 마운트를 지정합니다.

콘솔

  1. Google Cloud 콘솔에서 Cloud Run으로 이동합니다.

    Cloud Run으로 이동

  2. 배포할 새 서비스를 구성하려면 서비스 만들기를 클릭합니다. 기존 서비스를 구성하는 경우 서비스를 클릭한 후 새 버전 수정 및 배포를 클릭합니다.

  3. 새 서비스를 구성하는 경우 원하는 대로 초기 서비스 설정 페이지를 작성한 후 컨테이너, 볼륨, 네트워킹, 보안을 클릭하여 서비스 구성 페이지를 펼칩니다.

  4. 볼륨 탭을 클릭합니다.

    이미지

    • 볼륨에서 다음과 같이 합니다.
      • 볼륨 추가를 클릭합니다.
      • 볼륨 유형 드롭다운에서 Cloud Storage 버킷을 볼륨 유형으로 선택합니다.
      • 볼륨 이름 필드에 볼륨에 사용하려는 이름을 입력합니다.
      • 볼륨에 사용할 Cloud Storage 버킷을 찾아서 선택하거나 원하는 경우 새 버킷을 만듭니다.
      • 버킷을 읽기 전용으로 설정하려면 '읽기 전용' 체크박스를 선택합니다.
      • 완료를 클릭합니다.
      • 컨테이너 탭을 클릭합니다.
      • 볼륨 마운트 탭을 클릭합니다.
      • 볼륨 마운트를 클릭합니다.
      • 메뉴에서 스토리지 볼륨을 선택합니다.
      • 볼륨을 마운트할 경로를 지정합니다.
      • 완료를 클릭합니다.
  5. 만들기 또는 배포를 클릭합니다.

명령줄

참고: 여기서는 gcloud beta run services update 명령어를 보여주지만 다음과 같이 매개변수와 함께 gcloud beta run deploy 명령어를 사용할 수 있습니다.

  • 볼륨을 추가하고 마운트하려면 다음 명령어를 실행합니다.

    gcloud beta run services update SERVICE \
    --execution-environment gen2 \
    --add-volume name=VOLUME_NAME,type=cloud-storage,bucket=BUCKET_NAME \
    --add-volume-mount volume=VOLUME_NAME,mount-path=MOUNT_PATH

    다음과 같이 바꿉니다.

    • SERVICE를 서비스 이름으로 바꿉니다.
    • MOUNT_PATH: 볼륨을 마운트할 상대 경로(예: /cache)
    • VOLUME_NAME: 볼륨에 사용할 이름. VOLUME_NAME 값은 볼륨을 볼륨 마운트에 매핑하는 데 사용됩니다.
    • BUCKET_NAME: Cloud Storage 버킷 이름
  • 볼륨을 읽기 전용 볼륨으로 마운트하려면 다음 명령어를 실행합니다.

--add-volume=name=VOLUME_NAME,type=cloud-storage,bucket=BUCKET_NAME,readonly=true
  • 여러 컨테이너를 사용하는 경우 먼저 볼륨을 지정한 후 각 컨테이너의 볼륨 마운트를 지정합니다.

    gcloud beta run services update SERVICE \
    --add-volume name=VOLUME_NAME,type=cloud-storage,bucket=BUCKET_NAME \
    --container CONTAINER_1 \
    --add-volume-mount volume=VOLUME_NAME,mount-path=MOUNT_PATH \
    --container CONTAINER_2 \
    --add-volume-mount volume=VOLUME_NAME,mount-path=MOUNT_PATH2

YAML

YAML 형식으로 정리된 결과를 생성하는 gcloud run services describe --format export 명령어를 사용하면 기존 서비스 구성을 다운로드해서 볼 수 있습니다. 그런 다음 아래 설명된 필드를 수정하고 gcloud run services replace 명령어를 사용하여 수정된 YAML을 업로드할 수 있습니다. 설명된 대로 필드만 수정해야 합니다.

  1. 구성을 보고 다운로드하려면 다음을 실행합니다.

    gcloud run services describe SERVICE --format export > service.yaml
  2. 필요에 따라 업데이트합니다.

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
      annotations:
        run.googleapis.com/launch-stage: BETA
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/execution-environment: gen2
        spec:
          containers:
          - image: IMAGE_URL
            volumeMounts:
            - name: VOLUME_NAME
              mountPath: MOUNT_PATH
          volumes:
          - name: VOLUME_NAME
            csi:
              driver: gcsfuse.run.googleapis.com
              readOnly: IS_READ_ONLY
              volumeAttributes:
                bucketName: BUCKET_NAME

    다음과 같이 바꿉니다.

    • IMAGE_URL: 컨테이너 이미지에 대한 참조(예: us-docker.pkg.dev/cloudrun/container/hello:latest). Artifact Registry를 사용하는 경우 저장소 REPO_NAME이 이미 생성되어 있어야 합니다. URL의 형식은 LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG입니다.
    • MOUNT_PATH: 볼륨을 마운트할 상대 경로(예: /cache)
    • VOLUME_NAME: 볼륨에 사용할 이름. VOLUME_NAME 값은 볼륨을 볼륨 마운트에 매핑하는 데 사용됩니다.
    • IS_READ_ONLYTrue로 지정하여 볼륨을 읽기 전용으로 설정하거나 False로 지정하여 쓰기를 허용합니다.
    • BUCKET_NAME: Cloud Storage 버킷의 이름
  3. 다음 명령어를 사용하여 서비스를 새 구성으로 바꿉니다.

    gcloud run services replace service.yaml

볼륨 마운트 설정 보기

Cloud Run 서비스의 현재 볼륨 마운트 설정을 보려면 다음과 같이 합니다.

콘솔

  1. Google Cloud 콘솔에서 Cloud Run으로 이동합니다.

    Cloud Run으로 이동

  2. 관심이 있는 서비스를 클릭하여 서비스 세부정보 페이지를 엽니다.

  3. 버전 탭을 클릭합니다.

  4. 볼륨 마운트 설정이 오른쪽 세부정보 패널의 볼륨 탭에 표시됩니다.

명령줄

  1. 다음 명령어를 사용하세요.

    gcloud run services describe SERVICE
  2. 반환된 구성에서 볼륨 마운트 설정을 찾습니다.