Cloud Storage는 파일을 "객체"로 저장하는 객체 스토리지다. VM에 붙이는 영구 디스크)랑 완전히 다르다.
영구 디스크 vs Cloud Storage
- 영구 디스크: VM에 붙여서 OS, DB가 쓰는 저장장치(블록 스토리지)
- Cloud Storage: VM 없이 독립적으로 파일 보관, 제공(객체 스토리지) HTTP로 접근, 무제한 확장, 정적 웹사이트 호스팅 가능
앱에서 사용자가 업로드한 이미지를 저장한다면? VM 디스크에 저장하면 VM 죽을 때 위험하고 확장도 어렵다. Cloud Storage 버킷에 넣으면 VM과 무관하게 안전하고, URL로 바로 서빙도 된다. 실무에서 파일 저장은 거의 이걸 쓴다.
버킷(Bucket)
버킷은 Cloud Storage의 최상위 컨테이너이다. 모든 파일(객체)은 버킷 안에 들어간다.
특징
- 이름이 전역 공유. 프로젝트 ID처럼 전 세계에서 유일해야 한다.
- 위치를 정한다. 리전(단일 지역), 듀얼리전, 멀티리전(여러 지역). 가까울수록 빠르고, 넓을수록 가용성 높고 비싸다.
스토리지 클래스
버캣, 객체마다 얼마나 자주 접근하느냐에 따라 클래스를 정한다. 자주 안 쓸 수록(Standard에서 Archive로 갈수록) 저장 비용은 싸지지만, 꺼낼 때 비용이 든다.
| 클래스 | 용도 | 최소 보관 기관 |
| Standard | 자주 접근(활성 데이터, 웹 콘텐츠) | 없음 |
| Nearline | 월 1회 정도(백업) | 30일 |
| Coldline | 분기 1회 정도(잘 안 보는 백업) | 90일 |
| Archive | 연 1회 정도(장기 보관, 규정 보존) | 365일 |
라이프사이클 관리
객체를 자동으로 관리하는 규칙이다.
ex) 30일 지난 파일은 자동으로 Nearline으로 옮겨라. 365일 지나면 삭제해라.
오래된 데이터를 싼 클래스로 내리거나 지워서 비용을 자동 절감한다.
gcloud 터미널에서 버킷을 만들고 파일을 업로드, 다운로드 해보자.
1. 버킷 만들기
먼저 버킷을 만든다. 이름이 전역 고유해야 해서, 본인만의 접미사를 붙이자.
gcloud storage buckets create gs://ace-bucket-0930 \
--location=asia-northeast3 \
--default-storage-class=STANDARD
• gs://ace-bucket-0930: 버킷 이름. 만약 이름이 이미 쓰고 있다는 에러가 나면 접미사 숫자 바꿔서 다시 하기
• --location=asia-northeast3: 서울 리전
• --default-storage-class=STANDARD: 기본 스토리지 클래스
잘 만들어졌는지 확인
gcloud storage buckets list
2. 파일 업로드
이제 버킷에 파일을 실제로 넣어보자. 먼저 업로드할 테스트 파일을 하나 만든다.
echo "Hello Cloud Storage from minsun" > test-file.txt
만든 파일을 버킷으로 복사한다.
gcloud storage cp test-file.txt gs://ace-bucket-0930/
• cp: 로컬 파일을 버킷으로 복사
• test-file.txt: 지금 Cloud Shell에 있는 올릴 파일
• gs://ace-bucket-0930/: 목적지 버킷
업로드됐는지 버킷 안 내용 확인
gcloud storage ls gs://ace-bucket-0930/

3. 다운로드 & 상세 확인
반대로 버킷에서 파일을 내려받는 것도 해보자.
gcloud storage cp gs://ace-bucket-0930/test-file.txt downloaded.txt
cat downloaded.txt

객체의 스토리지 클래스도 확인해보자.
gcloud storage objects describe gs://ace-bucket-0930/test-file.txt

출력에서 storeage_class: STANDARD가 보일 것이다. 버킷 기본값이 STANDARD라 파일도 그걸 따라간 것이다.
4. 삭제
버킷은 안에 파일이 있으면 못 지운다. 두 가지 방법이 있다.
1) 파일 먼저 지우고 버킷 지우기
# 1) 버킷 안 파일 삭제
gcloud storage rm gs://ace-bucket-0930/test-file.txt
# 2) 빈 버킷 삭제
gcloud storage buckets delete gs://ace-bucket-0930
2) 한 번에 삭제
gcloud storage rm --recursive gs://ace-bucket-0930
--recursive는 버킷 안 내용까지 싹 지우고 버킷도 없앤다. 편하지만 실무에선 위험할 수 있어서 조심해서 써야한다.
로컬 파일도 정리하려면
rm test-file.txt downloaded.txt'Cloud > GCP' 카테고리의 다른 글
| [GCP] 인스턴스 그룹(템플릿, 자동 확장) (0) | 2026.06.30 |
|---|---|
| [GCP] VM 구성 요소(feat. 스냅샷 떠서 새 디스크 만들기) (0) | 2026.06.24 |
| [GCP] IAM(Identity and Access Management) (0) | 2026.06.23 |
| [GCP] 네트워킹(VPC에 VM 띄우기) (0) | 2026.06.22 |