Home Google Cloud SDK 설치 및 gcloud, gsutil 사용법
Post
Cancel

Google Cloud SDK 설치 및 gcloud, gsutil 사용법

개요

  • gcloudgsutil은 모두 Google Cloud Platform(GCP)과 상호작용하는 명령어 도구이지만, 목적과 범위가 다름

    특성 gcloud gsutil
    대상 범위 GCP 전체 서비스 Google Cloud Storage(GCS)만
    주요 목적 광범위한 GCP 리소스 관리 스토리지 버킷과 객체 관리
    상태 현재 권장 도구 레거시 도구 (유지보수 모드)
    성능 기본 최적화됨 수동 최적화 필요



Cloud SDK 설치 및 설정

설치 프로세스

image.png

  1. Google Cloud SDK 설치
    • Windows (PowerShell)
      1
      2
      
      (New-Object Net.WebClient).DownloadFile("https://dl.google.com/dl/cloudsdk/channels/rapid/GoogleCloudSDKInstaller.exe", "$env:Temp\GoogleCloudSDKInstaller.exe")
      & $env:Temp\GoogleCloudSDKInstaller.exe
      
    • macOS (zsh)
      • 패키지 직접 다운로드 또는 Homebrew 사용
        1
        
        brew install --cask google-cloud-sdk
        
  2. gsutil 컴포넌트 설치 (선택 사항)
    • 대부분의 Cloud SDK 설치 패키지에는 gsutil이 포함되어 있음
    • 설치되어 있지 않은 경우에만 실행
      1
      
       gcloud components install gsutil
      
  3. gcloud CLI 초기화
    1
    
     gcloud init 
    
  4. Google 사용자 계정 로그인 (브라우저 인증)
    1
    
     To continue, you must log in. Would you like to log in (Y/n)? Y
    



gcloud CLI

정의 및 목적

  • gcloud는 Google Cloud의 모든 리소스를 커맨드라인에서 관리하는 통합 도구임
  • 웹 콘솔에서 가능한 거의 모든 작업을 터미널에서 수행 가능함 (8,000개 이상의 명령어 지원)

주요 기능

  • Compute Engine
    • 가상 머신 생성, 관리, SSH 접속
  • Cloud Storage
    • 파일 작업(복사, 이동, 삭제) 및 버킷 관리
  • Kubernetes Engine(GKE)
    • 컨테이너 클러스터 배포 및 관리
  • Cloud Functions / Cloud Run
    • 서버리스 배포
  • IAM & 보안
    • 서비스 계정 및 권한 관리

기본 명령어 구조

1
gcloud [release-level] [component] [entity] [operation] [positional-args] [flags]
  • ex)
    1
    
    gcloud compute instances create instance-1 --zone=us-central1-a
    



gcloud 명령어 모음

기본 설정 및 정보 확인

  • 프로젝트 설정
    1
    
      gcloud config set project [PROJECT_ID]
    
  • 인증 정보 확인
    1
    
      gcloud auth list
    
  • 구성 요소 업데이트
    1
    
      gcloud components update
    

Compute Engine & IAM

  • VM 인스턴스 리스트
    1
    
      gcloud compute instances list
    
  • SSH 접속
    1
    
      gcloud compute ssh [INSTANCE_NAME] --zone=[ZONE]
    
  • SSH 접속 (외부 IP 없는 VM, IAP 터널링)
    1
    
      gcloud compute ssh [INSTANCE_NAME] --zone=[ZONE] --tunnel-through-iap
    
  • 서비스 계정 키 생성
    1
    
      gcloud iam service-accounts keys create ~/key.json --iam-account=[EMAIL]
    

Cloud SQL & Pub/Sub

  • DB 인스턴스 연결 이름 확인
    1
    
      gcloud sql instances describe [DB_NAME] | grep connectionName
    
  • Pub/Sub 토픽 생성
    1
    
      gcloud pubsub topics create [TOPIC_ID]
    



gsutil

정의 및 목적

  • gsutil은 Google Cloud Storage에 특화된 Python 애플리케이션임
  • 버킷과 객체 관리에 최적화되어 있으나, 현재는 gcloud storage 명령어로 대체되는 추세임

특징

  • -m 플래그
    • 병렬 다중 스레드 처리로 대량 파일 전송 성능 향상
  • 와일드카드 지원
    • 패턴 매칭으로 다중 파일 작업 가능



gsutil와 gcloud storage 명령어 비교

버킷 및 객체 관리

작업 gsutil gcloud storage
버킷 생성 gsutil mb gs://[BUCKET_NAME] gcloud storage buckets create gs://[BUCKET_NAME]
파일 업로드 gsutil cp [FILE] gs://[BUCKET]/ gcloud storage cp [FILE] gs://[BUCKET]/
파일 다운로드 gsutil cp gs://[BUCKET]/[FILE] ./ gcloud storage cp gs://[BUCKET]/[FILE] ./
폴더 복사 gsutil -m cp -r gs://[BUCKET]/[DIR] ./ gcloud storage cp -r gs://[BUCKET]/[DIR] ./
동기화 gsutil -m rsync -r [SRC] gs://[BUCKET] gcloud storage rsync [SRC] gs://[BUCKET]
버킷 목록 gsutil ls gcloud storage ls
파일 삭제 gsutil rm gs://[BUCKET]/[FILE] gcloud storage rm gs://[BUCKET]/[FILE]

권한 관리 (IAM)

  • gsutil 방식
    1
    2
    
      gsutil iam ch allUsers:objectViewer gs://[BUCKET_NAME]
      gsutil iam ch user:[EMAIL]:objectCreator,objectViewer gs://[BUCKET_NAME]
    
  • gcloud 방식
    1
    2
    
      gcloud storage buckets add-iam-policy-binding gs://[BUCKET_NAME] \
        --member=allUsers --role=roles/storage.objectViewer
    



gcloud와 gsutil 성능 비교

gcloud storage가 대폭 우세함

  • Google 공식 벤치마크 결과
    • 100개의 100MB 파일 전송 시
      • 다운로드
        • gcloud가 79% 더 빠름
      • 업로드
        • gcloud가 33% 더 빠름
    • 10GB 단일 파일 전송 시
      • 다운로드
        • gcloud가 94% 더 빠름
      • 업로드
        • gcloud가 57% 더 빠름
  • 이유
    • gcloud storage는 기본적으로 병렬 합성 업로드(Parallel Composite Upload) 전략을 사용하여 최적화되어 있음



언제 무엇을 사용할까?

gcloud

  • 일반적인 작업
    • 단순 파일 복사, 이동, 삭제
  • 빠른 성능
    • 별도 설정 없이 최적의 전송 속도 필요 시
  • 다중 서비스 관리
    • Compute Engine, GKE 등 다른 서비스와 함께 사용할 때

gsutil

  • 레거시 호환성
    • 기존에 작성된 gsutil 스크립트를 유지해야 할 때
  • 특수 ACL 관리
    • 복잡한 XML 방식의 ACL 설정이 필요할 때 (드문 경우)
  • Google은 명시적으로 gcloud storage 사용을 권장함

    “Important: gsutil is not the recommended CLI for Cloud Storage. Use gcloud storage commands in the Google Cloud CLI instead.”



정리

  • gcloud
    • GCP 전체를 관리하는 통합 도구이며, 최신 권장 표준임
  • gsutil
    • Cloud Storage 전용 도구이나, 현재는 레거시 상태임
  • 새로운 프로젝트나 AWS S3와 유사한 일반적인 스토리지 작업에는 직관적이고 빠른 gcloud storage 명령어를 사용하는 것이 적합함



Reference

Contents