개요

**Google Cloud Storage (GCS)**는 Google Cloud의 오브젝트 스토리지 서비스. AWS S3, Azure Blob Storage에 대응하는 무제한 확장 가능한 바이너리·비정형 데이터 저장소.

  • 공식 문서: https://cloud.google.com/storage
  • 스토리지 클래스: Standard, Nearline, Coldline, Archive
  • 글로벌 단일 네임스페이스: 버킷 이름 전 세계 고유

스토리지 클래스

클래스최소 보존접근 빈도용도
Standard없음자주웹 서비스, 분석
Nearline30일월 1회 이하백업
Coldline90일분기 1회 이하재해복구
Archive365일연 1회 이하장기 아카이브

gsutil / gcloud 명령어

# 버킷 생성
gsutil mb gs://my-bucket
gcloud storage buckets create gs://my-bucket --location=asia-northeast3
 
# 파일 업로드
gsutil cp localfile.txt gs://my-bucket/
gsutil cp -r ./dir gs://my-bucket/
 
# 파일 다운로드
gsutil cp gs://my-bucket/file.txt .
 
# 파일 목록
gsutil ls gs://my-bucket/
gsutil ls -la gs://my-bucket/   # 크기·날짜 포함
 
# 삭제
gsutil rm gs://my-bucket/file.txt
gsutil rm -r gs://my-bucket/dir/
 
# 동기화
gsutil rsync -r ./local gs://my-bucket/remote
 
# 공개 접근 설정
gsutil acl ch -u AllUsers:R gs://my-bucket/file.txt

Python SDK

from google.cloud import storage
 
client = storage.Client()
 
# 버킷 접근
bucket = client.bucket("my-bucket")
 
# 업로드
blob = bucket.blob("path/to/file.txt")
blob.upload_from_filename("localfile.txt")
 
# 다운로드
blob.download_to_filename("downloaded.txt")
 
# 서명된 URL (임시 접근)
url = blob.generate_signed_url(
    expiration=3600,  # 1시간
    method="GET"
)
 
# 목록 조회
blobs = client.list_blobs("my-bucket", prefix="data/")
for b in blobs:
    print(b.name, b.size)

IAM & 보안

# 서비스 계정에 권한 부여
gcloud projects add-iam-policy-binding PROJECT_ID \
  --member="serviceAccount:sa@PROJECT_ID.iam.gserviceaccount.com" \
  --role="roles/storage.objectViewer"
 
# 버킷 수준 IAM
gsutil iam ch serviceAccount:sa@PROJECT_ID.iam.gserviceaccount.com:objectAdmin gs://my-bucket

주요 역할

역할권한
storage.admin전체 관리
storage.objectAdmin객체 CRUD
storage.objectViewer객체 읽기
storage.objectCreator객체 쓰기만

버전 관리 & 수명 주기

# 버전 관리 활성화
gsutil versioning set on gs://my-bucket
 
# 수명 주기 정책 (lifecycle.json)
{
  "lifecycle": {
    "rule": [{
      "action": {"type": "SetStorageClass", "storageClass": "NEARLINE"},
      "condition": {"age": 30}
    }]
  }
}
gsutil lifecycle set lifecycle.json gs://my-bucket

AWS S3 vs GCS 비교

항목GCSAWS S3
가격비슷비슷
전송 속도Google 네트워크 강점글로벌 CDN
멀티파트지원지원
이벤트Pub/SubSNS/SQS
빅데이터BigQuery 연동 강점Athena/Glue

관련 항목