Cloud Storage 작업

AI Platform Training은 AI Platform Training 프로젝트에 액세스할 수 있는 권한이 부여된 Cloud Storage 위치에서 데이터를 읽습니다. 이 페이지에서는 AI Platform Training으로 Cloud Storage를 사용하는 방법을 간단히 안내합니다.

개요

AI Platform Training 서비스의 다음과 같은 기능에서 Cloud Storage를 사용해야 하거나 사용이 권장됩니다.

  • 학습 애플리케이션과 커스텀 종속 항목을 스테이징합니다.
  • 테이블 형식 또는 이미지 데이터와 같은 학습 입력 데이터를 저장합니다.
  • 학습 출력 데이터를 저장합니다.

리전 고려사항

AI Platform Training에 사용할 Cloud Storage 버킷을 만들 때 다음을 수행해야 합니다.

  • 버킷을 멀티 리전 값이 아닌 특정 컴퓨팅 리전에 할당해야 합니다.
  • 학습 작업을 실행하는 위치와 동일한 리전을 사용해야 합니다.

자세한 내용은 AI Platform Training에 사용 가능한 리전을 참조하세요.

Cloud Storage 버킷 설정

이 섹션에서는 새 버킷을 만드는 방법을 설명합니다. 기존 버킷을 사용할 수도 있지만 해당 버킷이 AI Platform 작업을 실행하려는 리전과 동일한 리전에 있어야 합니다. 또한 해당 버킷이 AI Platform Training을 실행하는 데 사용 중인 프로젝트에 속하지 않는 경우 명시적으로 AI Platform Training 서비스 계정에 대한 액세스 권한을 부여해야 합니다.

  1. 새 버킷의 이름을 지정합니다. 이름은 Cloud Storage의 모든 버킷에서 중복되지 않아야 합니다.

    BUCKET_NAME="YOUR_BUCKET_NAME"

    예를 들어 프로젝트 이름에 -aiplatform을 추가하여 사용합니다.

    PROJECT_ID=$(gcloud config list project --format "value(core.project)")
    BUCKET_NAME=${PROJECT_ID}-aiplatform
  2. 만든 버킷 이름을 확인합니다.

    echo $BUCKET_NAME
  3. 버킷 리전을 선택하고 REGION 환경 변수를 설정합니다.

    AI Platform Training 작업을 실행할 리전과 동일한 리전을 사용합니다. AI Platform Training 서비스에 사용 가능한 리전을 참조하세요.

    예를 들어 다음 코드는 REGION을 생성하고 us-central1로 설정합니다.

    REGION=us-central1
  4. 새 버킷을 만듭니다.

    gsutil mb -l $REGION gs://$BUCKET_NAME

버킷의 모델 구성

버킷에 폴더 구조를 구성하면 모델을 여러 번 반복할 수 있습니다.

  • 저장된 모델 각각을 버킷 내 별도의 디렉토리에 배치합니다.
  • 버킷의 디렉터리 이름에는 타임스탬프를 사용하는 것이 좋습니다.

예를 들어 gs://your-bucket/your-model-DATE1/your-saved-model-file과 비슷한 구조에 첫 번째 모델을 배치할 수 있습니다. 이후에 모델을 반복할 때마다 디렉터리 이름으로 업데이트된 타임스탬프(gs://your-bucket/your-model-DATE2/your-saved-model-file 등)를 사용합니다.

학습 도중 Cloud Storage 액세스

Google Cloud Storage용 Python 클라이언트, TensorFlow의 tf.io.gfile.GFile 모듈 또는 pandas 0.24.0 이상 등 학습 코드의 Cloud Storage에서 데이터를 읽을 수 있는 Python 모듈을 사용합니다. AI Platform Training에서 인증을 처리합니다.

다른 프로젝트의 Cloud Storage 버킷 사용

이 섹션에서는 AI Platform Training이 프로젝트에 액세스할 수 있도록 Cloud Storage 버킷을 프로젝트 외부에서 구성하는 방법을 설명합니다.

AI Platform Training을 사용 중인 동일한 프로젝트에서 Cloud Storage 버킷을 설정한 경우 AI Platform Training 서비스 계정에는 이미 Cloud Storage 버킷에 액세스하는 데 필요한 권한이 있는 것입니다.

이 안내는 다음 사례에 적용됩니다.

  • 대규모 데이터세트를 여러 프로젝트에서 공유하는 등 프로젝트에서 버킷을 사용할 수 없는 경우
  • AI Platform Training에서 여러 버킷을 사용하고 있어 각 버킷마다 개별적으로 AI Platform Training 서비스 계정에 대한 액세스 권한을 부여해야 하는 경우

1단계: 클라우드 프로젝트에서 필요한 정보 가져오기

Console

  1. Google Cloud 콘솔에서 IAM 페이지를 엽니다.

    IAM 페이지 열기

  2. IAM 페이지에는 프로젝트에 액세스할 수 있는 모든 주 구성원 목록이 관련 역할과 함께 표시됩니다. AI Platform Training 프로젝트에는 서비스 계정이 여러 개 있습니다. 목록에서 Cloud ML 서비스 에이전트 역할이 할당된 서비스 계정을 찾은 다음 서비스 계정 ID를 복사합니다. 서비스 계정 ID는 다음과 비슷하게 표시됩니다.

    'service-111111111111@cloud-ml.google.com.iam.gserviceaccount.com'

    다음 단계에서 이 서비스 계정 ID를 Google Cloud 콘솔의 다른 페이지에 붙여넣어야 합니다.

명령줄

이 섹션의 단계에서는 프로젝트의 AI Platform Training 서비스 계정에 대한 액세스 제어를 변경하기 위해 Google Cloud 프로젝트의 정보를 가져옵니다. 이 값은 나중에 환경 변수에 사용되므로 저장해야 합니다.

  1. 선택한 프로젝트에 Google Cloud CLI를 사용하여 프로젝트 식별자를 가져옵니다.

    PROJECT_ID=$(gcloud config list project --format "value(core.project)")
    
  2. gcloud를 사용하여 프로젝트에 대한 액세스 토큰을 가져옵니다.

    AUTH_TOKEN=$(gcloud auth print-access-token)
    
  3. REST 서비스에서 프로젝트 구성을 요청하여 서비스 계정 정보를 가져옵니다.

    SVC_ACCOUNT=$(curl -X GET -H "Content-Type: application/json" \
        -H "Authorization: Bearer $AUTH_TOKEN" \
        https://ml.googleapis.com/v1/projects/${PROJECT_ID}:getConfig \
        | python3 -c "import json; import sys; response = json.load(sys.stdin); \
        print(response['serviceAccount'])")
    

2단계: Cloud Storage 버킷에 대한 액세스 구성

Console

  1. Google Cloud 콘솔에서 스토리지 페이지를 엽니다.

    Storage 페이지 열기

  2. 버킷 이름 왼쪽의 체크박스를 선택하여 모델을 배포하는 데 사용할 Cloud Storage 버킷을 선택합니다.

  3. 오른쪽 상단에 있는 정보 패널 표시 버튼을 클릭하여 권한 탭을 표시합니다.

  4. 주 구성원 추가 필드에 서비스 계정 ID를 붙여넣습니다. 필드 오른쪽에서 원하는 역할(예: 저장소 이전 버킷 리더)을 선택합니다.

    어떤 역할을 선택해야 할지 잘 모르겠다면 역할을 여러 개 선택하여 주 구성원 추가 필드 아래에 표시되는 간략한 권한별 설명을 참조합니다.

  5. 서비스 계정에 원하는 역할을 할당하려면 주 구성원 추가 필드 오른쪽의 추가 버튼을 클릭합니다.

명령줄

이제 프로젝트와 서비스 계정 정보가 준비되었으므로 Cloud Storage 버킷에 대한 액세스 권한을 업데이트해야 합니다. 이 단계에서는 이전 섹션과 동일한 변수 이름을 사용합니다.

  1. BUCKET_NAME 환경 변수에 버킷 이름을 설정합니다.

    BUCKET_NAME="your_bucket_name"
    
  2. 서비스 계정에 Cloud Storage 버킷에 대한 읽기 액세스 권한을 부여합니다.

    gsutil -m defacl ch -u $SVC_ACCOUNT:R gs://$BUCKET_NAME
    
  3. 버킷에 이미 액세스할 객체가 포함되어 있으면 명시적으로 읽기 액세스 권한을 부여해야 합니다.

    gsutil -m acl ch -u $SVC_ACCOUNT:R -r gs://$BUCKET_NAME
    
  4. 쓰기 액세스 권한을 부여합니다.

    gsutil -m acl ch -u $SVC_ACCOUNT:W gs://$BUCKET_NAME
    

AI Platform Training 서비스 계정에 부여할 역할을 선택하려면 Cloud Storage IAM 역할을 참조하세요. Cloud Storage에서 IAM 역할을 업데이트하는 방법에 대한 일반적인 내용은 서비스 계정에 특정 리소스에 대한 액세스 권한을 부여하는 방법을 참조하세요.

다음 단계