TPU VM을 Cloud Storage 버킷에 연결

이 페이지에서는 Cloud Storage를 머신러닝 데이터 및 학습 출력을 저장하는 옵션으로 소개하고 TPU VM에 Cloud Storage의 데이터 객체에 대한 액세스 권한을 부여하는 방법을 설명합니다.

시작하기 전에

Cloud Storage 버킷에 액세스하려면 TPU VM에 연결된 서비스 계정이 필요합니다. TPU VM을 만들 때 서비스 계정을 지정하지 않으면 Compute Engine 기본 서비스 계정을 사용합니다.

TPU용 프로젝트를 설정하고 TPU VM 인스턴스를 만들려면 다음 안내를 따르세요. Google Cloud

  1. TPU용 프로젝트 설정 Google Cloud
  2. Compute Engine을 사용하여 TPU VM 인스턴스 만들기

Cloud Storage에 데이터 쓰기

콘솔

  1. Google Cloud 콘솔에서 Cloud Storage 페이지로 이동합니다.

    Cloud Storage 페이지로 이동

  2. 다음 옵션을 지정하여 새 버킷을 만듭니다.

    • 원하는 고유한 이름
    • 기본 스토리지 클래스: Standard
    • 위치: TPU VM을 만든 리전. 리전 및 TPU 가용성에 대한 자세한 내용은 TPU 리전 및 영역을 참조하세요.

CLI

  1. gcloud storage buckets create 명령어를 사용하여 Cloud Storage 버킷을 만듭니다.

    gcloud storage buckets create gs://BUCKET_NAME --location REGION
    

    다음 자리표시자를 바꿉니다.

    • BUCKET_NAME은 만들려는 버킷의 이름입니다.
    • REGION은 TPU VM을 만든 리전입니다. 리전 및 TPU 가용성에 대한 자세한 내용은 TPU 리전 및 영역을 참조하세요.
  2. gcloud storage cp 명령어를 사용하여 Cloud Storage 버킷에 파일을 작성합니다.

    gcloud storage cp -r LOCAL_DATA_DIR gs://BUCKET_NAME
    

    다음 자리표시자를 바꿉니다.

    • LOCAL_DATA_DIR은 데이터의 로컬 경로입니다. 예를 들면 $HOME/your-data입니다.
    • BUCKET_NAME은 쓰려는 버킷의 이름입니다.

TPU VM에 Cloud Storage 액세스 권한 부여

TPU VM에 Cloud Storage 객체에 대한 읽기/쓰기 액세스 권한을 부여해야 합니다. 이렇게 하려면 TPU VM에 연결된 서비스 계정에 필요한 액세스 권한을 부여해야 합니다. 다음 섹션에서는 연결된 서비스 계정을 찾고 필요한 액세스 권한을 부여하는 방법을 보여줍니다.

연결된 서비스 계정 승인

연결된 서비스 계정을 승인하는 데 권장되는 방법은 세분화된 액세스 제어 목록 (ACL)을 사용하는 것입니다. IAM 권한을 사용하여 다양한 권한을 부여할 수도 있습니다.

TPU VM에 세분화된 ACL 사용 (권장)

Cloud Storage에 학습 데이터를 저장하는 경우 연결된 서비스 계정에 버킷에 대한 읽기/쓰기 권한이 있어야 합니다.

콘솔

  1. 소유한 버킷을 보려면 Cloud Storage 브라우저 페이지로 이동합니다.

    Cloud Storage 브라우저로 이동

  2. ACL을 수정할 버킷을 선택합니다.

  3. 권한 탭을 선택합니다.

  4. 액세스 권한 부여 를 선택하여 새 권한을 추가하고 새 주 구성원 편집 상자에 전체 서비스 계정 이름을 입력합니다.

  5. 이 버킷에서 읽기 를 수행하려면 리소스에서 읽을 연결된 서비스 계정을 승인해야 합니다. 서비스 계정에 Storage Legacy > Storage Legacy Bucket Reader 역할을 부여하여 이를 수행합니다.

  6. 이 버킷에 쓰기 를 수행하려면 리소스에 쓸 연결된 서비스 계정을 승인해야 합니다. 서비스 계정에 Storage Legacy > Storage Legacy Bucket Writer 역할을 부여하여 이를 수행합니다.

CLI

  1. 이 버킷에서 읽기 를 수행하려면 연결된 서비스 계정에 읽기 권한을 부여합니다.

     gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME --member=serviceAccount:SERVICE_ACCOUNT --role=roles/storage.objectViewer
    

    다음 자리표시자를 바꿉니다.

    • BUCKET_NAME은 읽으려는 버킷의 이름입니다.
    • SERVICE_ACCOUNT는 TPU VM에 연결된 서비스 계정의 이름입니다.
  2. 이 버킷에 쓰기 를 수행하려면 연결된 서비스 계정에 쓰기 권한을 부여합니다.

     gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME --member=serviceAccount:SERVICE_ACCOUNT --role=roles/storage.objectCreator
    

    다음 자리표시자를 바꿉니다.

    • BUCKET_NAME은 쓰려는 버킷의 이름입니다.
    • SERVICE_ACCOUNT는 TPU VM에 연결된 서비스 계정의 이름입니다.

TPU VM에 대한 IAM 권한 사용 (대체 방법)

각 버킷에 액세스 권한을 명시적으로 부여하는 대신 다양한 권한을 부여하려면 TPU VM에 연결된 서비스 계정에 Identity Access Management (IAM) 스토리지 관리자 역할을 부여하면 됩니다.

  1. IAM으로 이동

  2. 액세스 권한 부여 버튼을 클릭하여 프로젝트에 주 구성원을 추가합니다.

  3. 주 구성원 필드에 연결된 서비스 계정의 이름을 입력합니다.

  4. 역할 드롭다운 목록을 클릭합니다.

  5. 다음 역할을 사용 설정합니다.

    • 프로젝트 > 뷰어

    • 스토리지 > 스토리지 관리자

Cloud Storage FUSE

Cloud Storage FUSE를 사용하면 Cloud Storage 버킷을 로컬 파일 시스템으로 마운트하고 액세스할 수 있습니다. 이렇게 하면 애플리케이션이 표준 파일 시스템 시맨틱스를 사용하여 버킷의 객체를 읽고 쓸 수 있습니다.

Cloud Storage FUSE 작동 방식에 대한 자세한 내용과 Cloud Storage FUSE 작업이 Cloud Storage 작업에 매핑되는 방식에 대한 설명은 Cloud Storage FUSE 문서를 참조하세요. `gcsfuse` CLI를 설치하고 GitHub에서 버킷을 마운트하는 방법 등 Cloud Storage FUSE 사용 방법에 대한 추가 정보를 확인할 수 있습니다.

정리

  1. 아직 연결 해제하지 않은 경우 TPU VM에서 연결을 해제합니다.

    exit
    
  2. Cloud Shell 또는 터미널에서 TPU VM을 삭제합니다.

    gcloud compute instances delete TPU_NAME --zone=ZONE
    

    다음 자리표시자를 바꿉니다.

    • TPU_NAME: 만든 TPU VM의 이름입니다.
    • ZONE: TPU VM이 생성된 영역입니다.
  3. gcloud compute instances list를 실행하여 VM이 삭제되었는지 확인합니다. 삭제하는 데 몇 분 정도 걸릴 수 있습니다.

    gcloud compute instances list --zone=ZONE
    

    ZONE을 TPU VM이 생성된 영역으로 바꿉니다.

    응답에 TPU 인스턴스가 나열되지 않으면 삭제된 것입니다.

  4. 다음 명령어를 실행하여 Cloud Storage 버킷과 해당 콘텐츠를 삭제하고 BUCKET_NAME을 만든 버킷의 이름으로 바꿉니다.

    gcloud storage rm --recursive gs://BUCKET_NAME
    

    다음 자리표시자를 바꿉니다.

    • BUCKET_NAME: 삭제하려는 버킷의 이름입니다.

다음 단계