NBD, 9P, CIFS/Samba, Ceph 네트워크 파일 시스템 사용

이 페이지에서는 Cloud Run에서 NBD, 9P, CIFS/Samba, Ceph 네트워크 파일 시스템을 사용하는 방법을 설명합니다.

Cloud Run에서 NFS, Filestore 또는 Cloud Storage FUSE를 사용하는 경우 다음 페이지를 참조하세요.

NBD, 9P, CIFS/Samba, Ceph 네트워크 파일 시스템을 사용하여 Cloud Run에서 여러 컨테이너 및 서비스 간에 데이터를 공유하고 유지할 수 있습니다. 이 기능은 Cloud Run 2세대 실행 환경에서만 사용할 수 있습니다.

이러한 파일 시스템을 사용하여 Cloud Run 서비스에서 파일을 읽고 써야 하는 경우 몇 가지 옵션이 있습니다.

  • 인스턴스의 수명 기간 이후에 데이터를 유지할 필요가 없는 경우 기본 제공 메모리 파일 시스템을 사용할 수 있습니다.
  • 인스턴스 수명 기간 이후에 데이터를 유지해야 하고 표준 파일 시스템 시맨틱스를 사용하려면 Cloud Run에서 NDB, 9P, CIFS/Samba, Ceph 네트워크 파일 시스템을 사용하세요.
  • 인스턴스 수명 기간 이후에 데이터를 유지해야 하고 표준 파일 시스템 시맨틱스가 필요하지 않은 경우 가장 간단한 옵션은 Cloud Storage 클라이언트 라이브러리를 사용하는 것입니다. 동시에 여러 인스턴스의 데이터에 액세스해야 하는 경우에도 유용한 옵션입니다.

제한사항

Cloud Run에서 NDB, 9P, CIFS/Samba, Ceph 네트워크 파일 시스템을 사용하는 경우 다음 고려사항이 적용됩니다.

  • Cloud Run에 배포할 때 2세대 실행 환경을 지정해야 합니다.

  • Cloud Run은 많은 수의 인스턴스로 빠르게 확장되도록 설계되었습니다. 그러나 대부분의 네트워크 파일 시스템은 많은 클라이언트에서 동시에 사용하도록 설계되지 않았습니다. 최대 인스턴스 기능을 사용하여 Cloud Run 인스턴스 수를 제한하는 것이 좋습니다.

네트워크 파일 시스템 설정

아직 파일 서버를 설정하지 않은 경우 Compute Engine의 파일 서버 솔루션 가이드에 따라 요구사항에 맞는 파일 시스템을 선택하고 설정하세요. 기존 파일 서버를 사용하는 경우 VPC 네트워크에서 액세스할 수 있는지 확인하세요.

서버리스 VPC 액세스 커넥터 구성

서버리스 VPC 액세스 커넥터를 사용하여 Cloud Run 서비스를 네트워크 파일 시스템이 실행 중인 VPC 네트워크에 연결해야 합니다.

동일한 VPC 네트워크에 서버리스 VPC 액세스 커넥터를 만들어 Cloud Run 서비스에 연결하려면 VPC 네트워크에 연결 페이지의 안내를 따르세요.

Cloud Run 서비스에서 파일 시스템 마운트

네트워크 파일 시스템을 마운트하려면 다음 안내를 따르세요.

  1. 다음 예시를 사용하여 필요에 따라 변수를 교체해 애플리케이션을 시작하고 Dockerfile의 마운트 지점을 지정하는 시작 스크립트를 정의합니다.

    • NBD의 경우

       echo "mounting ext4 image via NBD"
       nbd-client -L -name image IP_ADDRESS DEVICE_NAME
       mount DEVICE_NAME MOUNT_POINT_DIRECTORY

    • NBD를 통한 PD-SSD의 경우

       echo "mounting PD-SSD via NBD"
       nbd-client -L -name disk IP_ADDRESS DEVICE_NAME
       mount DEVICE_NAME MOUNT_POINT_DIRECTORY

    • 9P의 경우

       echo "mounting 9p export"
       mount -t 9p -o trans=tcp,aname=/mnt/diod,version=9p2000.L,uname=root,access=user IP_ADDRESS MOUNT_POINT_DIRECTORY

    • SMB의 경우

       echo "mounting SMB public share"
       mount -t cifs -ousername=USERNAME,password=PASSWORD,ip=IP_ADDRESS //FILESHARE_NAME MOUNT_POINT_DIRECTORY
       echo "mounts completed"

  2. Dockerfile로 환경 구성을 정의합니다. RUN을 사용하여 NBD의 nbd-client와 같이 필요한 시스템 패키지를 추가로 지정합니다. CMD를 사용하여 이미지를 실행할 때 실행할 명령어(시작 스크립트 run.sh)를 지정하고 init 프로세스 바이너리를 지정하는 ENTRYPOINT의 기본 인수를 제공합니다.

Cloud Run 서비스 코드에서 네트워크 파일 시스템에 액세스

서비스 코드에서 네트워크 파일 시스템에 액세스하려면 평소와 같이 파일 읽기 및 쓰기 작업을 사용합니다.

컨테이너화 및 배포

Cloud Run 서비스 코드가 완료되면 일반적으로 Cloud Run 서비스에서와 마찬가지로 컨테이너화배포를 수행하고 2세대 실행 환경을 지정합니다.

다음 단계