[GCP-7] GCS (google Cloud Storage)
0. 지난 글
[GCP-1] 구글 클라우드 기본 개념
[GCP-2] 구글 클라우드 실습 준비
[GCP-3] 구글 클라우드 IAM
[GCP-4] Compute Engine
[GCP-5] VPC
[GCP-6] Cloud Load Balancing
8. GCS (google cloud storage)
8.1 GCS란?
google cloud storage
GCS는 Google cloud platform의 대표적인 객체 Repository이다.
이를 이용하면 데이터 양에 관계없이 언제, 어디서나 데이터를 저장하고 이를 가져올 수 있다.
콘텐츠 제공, 백업 데이터 저장, 사용자에게 대량의 데이터 객체를 배포하는 목적으로 사용할 수 있다.
아마존 AWS 의 'S3'와 비슷한 역할이다.
8.2 GCS의 주요 개념
- 프로젝트
- 버킷 : 데이터를 담는 개념이다. GCS에서 저장하는 모든 데이터들은 버킷에 포함되어야 한다. 디렉터리나 폴더 개념과 다르게 버킷 안에 또 다른 버킷을 만들 수 없다. 버킷은 전역에서 고유성이 있어야 하기 때문에 GCP 전체에서 고유한 이름을 사용해야 한다.
- Repository 등급 : 버킷을 생성할때 저장할 데이터의 특징에 따라 Repository 등급이 나뉘게 된다. Multi-reginal storage, regional storage, nearline stoage, coldline storage 4가지로 구분이 된다.
- 객체 : 버킷에 저장되는 파일들이다. 객체에는 크게 '객체 데이터'(저장되는 파일 내용)와 '객체 메타데이터'(키-값 형태로 구성) 두 가지로 구성요소를 가진다.
- 지리적 중복 : 최소 100마일 이상 떨어진 두 곳 이상의 중복 저장이 되기 때문에 자연재해와 같은 대규모 장애 발생 시에도 최대한의 데이터 가용성을 보장한다.
- 객체 불변성 : 객체는 변경이 불가하다. 만약 변경을 하고 싶으면 삭제 후 다시 업로드해야한다.
8.3 Repository 등급 차이 및 비고
- Multi-reginal storage : 자주 액세스 되는 데이터를 저장하는데 적합하다. 가장 높은 가용성을 제공하며 지리적 중복을 제공하여 최소 약 160km 이상 떨어진 2곳 이상의 지리적 장소에 중복이 되기 때문에 자연재해 같은 대규모 장애 발생 시에도 최대한의 데이터 가용성을 보장한다.
- regional storage : 대규모 지리적 영역에서 중복을 분산시키는 대신 특정 지역 위치에 저렴한 비요으로 데이터를 저장할 수 있다. 동일한 지역 위치에 데이터를 저장하는데 적합하다. 이렇게 하면 데이터 집약적인 계산에서 다중 지역 위치에 데이터를 저장할 때보다 높은 성능을 얻을 수 있고 네트워크 요금도 줄일 수 있다.
- nearline stoage : 자주 액세스 하지 않는 데이터를 저장하는데 적합하다. 가용성이 위 두 개보다 낮으나 비용이 합리적이다.
- coldline storage : 저장 비용이 가장 저렴하여 데이터 보관 및 온라인 백업을 위한 repository로 적합하다.
8.4. gsutil 명령어 살펴보기
gsutil은 CLI 환경에서 GCS에 액세스 할 수 있는 명령어로 다음과 같은 작업을 할 수 있다.
- 버킷 생성, 삭제
- 객체 업로드, 다운로드, 삭제
- 버킷 및 객체 나열
- 객체 이동, 복사, 이름 바꾸기
- 객체 및 버킷의 ACL 수정
GCS는 다음과 같은 형태의 URI로 리소스를 나타낸다.
gs://[버킷 이름]/[객체 이름]
[실습 8.1 - 버킷 만들기]
[실습 8.2 - 객체 업로드 및 다운로드]
[실습 8.3 - 버킷 및 파일 권한 수정]
[실습 8.4 - gsutil 명령어]
1. 사전 작업
gcloud componets install gsutil
gsutil 설치
gcloud auth login
로그인
gcloud config set project [프로젝트명]
프로젝트 선택
2. 내 GCS 내의 버킷 리스트 보기
3. 버킷 내부의 파일 보기
4. 버킷 전체 사용량 확인
5. 버킷 삭제
gsutil rb gs://[버킷이름]
6. 로컬 -> 버킷으로 파일 복사(업로드)
7. 버킷 -> 로컬로 파일 복사 (다운로드)
8. 버킷 내 파일 삭제
9. 버킷 안에 있는 파일의 자세한 정보 보기