이번 포스팅에서는 GCS라고 불리우는 Google Cloud Storage에 대해서 공부해본 내용을 소개하려고 한다. 최근 들어 한국어로 된 '구글 클라우드 플랫폼 뽀개기' 라는 박정운님이 지으신 책으로 사전 지식과 개념을 이해하고 코세라 강의를 들으면서 해당 책에선 설명이 되지 않았던 추가 적인 내용을 공부하는 식으로 진행하고 있다. 처음에 했던 방식과는 좀 다른 공부 방법이지만 몇 번의 시행착오를 거친 끝에 이게 가장 나에게 맞고 이상적인 공부 방법이라고 생각하고 있다..!
그렇다면 이제 Cloud Storage에 대해서 알아가 보기 전에 앞으로 계속적으로 다룰 GCP내의 여러가지 Storage와 Database 중에서 어느 걸 선택할지에 대한 기준을 마련해주고 있는 테이블과 의사결정모델을 큰 숲을 먼저 보자느 차원에서 잠깐 보고 가자!
참고로!! GCS는 Unstructured Data에 적합한 클라우드 서비스이다!
그렇다면, 이제 Cloud Storage에 대해 본격적으로 파헤쳐 보자!
<Cloud Storage 개념>
Cloud Storage란, 우선 Object Repository(객체 저장소)이며, 해당 서비스를 이용하면 데이터의 양에 관계 없이 언제, 어디서나 데이터를 저장하고 가져올 수 있는 서비스를 말한다.
# 그래서 보통 use case로서, 컨텐츠 제공, 백업 데이터 저장, 사용자에게 대량의 데이터 객체를 배포할 때 사용한다.
<주요 개념>
Cloud Storage에 대해서 이해하기 위해서는 몇가지 개념을 알고 가는 것이 중요한데, 이에 대해 먼저 이해하고 넘어가는 것이 좋겠다.
- Project : Compute Engine에서 다룬 Project와 비슷한 개념으로, Cloud Storage에서는 모든 데이터가 속하는 공간이라고 보면 되겠다.
- Bucket : 사전적 정의로는 '양동이'로, 여기서는 데이터를 담는 개념이라고 보면 되겠다. 몇가지 특징이 있는데,
- 버킷안에는 버킷을 만들 수 없다.
- 이름이 GCP 내에서 Globally unique(전역 상에서 고유)해야 한다.
- 버킷수는 작고 객체(Object)가 많을수록 좋은 설계이다.
- 버킷 생성시, 버킷의 '이름', '지리적 위치', 'Repository 등급'을 지정할 수 있다.
- 라벨을 달 수 있으며, key-value 형태로 GCP의 다른 리소스와 그룹화가 가능하다.
- Object : 한국어로는 '객체' 라고하며, 여기서는 버킷에 저장되는 파일들이라고 보면 된다. 객체는 생성 갯수에는 제한이 없으며, 다음과 같이 2가지의 데이터로 구성이 된다.
- 객체 데이터 : GCS(Google Cloud Storage)에 저장되는 파일
- 객체 메타(meta)데이터 : key-value 값 형태이며 객체의 퀄리티를 설명
- 지리적 중복 : 말 그대로 서로 멀리 떨어진 여러 지역(미국-유럽-아시아)에 데이터를 중복적으로 저장하는 개념이 다. 비동기적이며, 자연재해 같은 대규모 장애 발생에도 데이터의 가용성이 확장 가능하다.
- Object 불변성 : 객체는 변경할 수 없지만 덮어쓰기나 삭제는 가능하다.
- Reposiroy 등급 : 위에서 버킷을 설명할 때, 버킷 생성시, Repository등급을 지정할 수 있다고 했는데 등급별로 종류 에 대해 알아보자.
특징 | Multi-Regional | Regional | Nearline | Coldline |
데이터 접근 방법 | 매우 자주 접근 | 동일 Region 내 자주 접근 |
한달에 한번 미만 접근 |
1년에 한 번 미만 접근 |
저장 비용 | 높 < ------------------------------------------------------------------------------ > 낮 | |||
복구(운영) 비용 | 낮 < ------------------------------------------------------------------------------ > 높 | |||
Use Case | 웹사이트 콘텐츠, 비디오 스트리밍, 게임,모바일 App같이 자주 접근 | 동일 지역 내 분석, 트랜스 코딩 | 백업, Long tail 미디어 | 아카이빙, 재난 복구용 |
가용성 | 높 < ------------------------------------------------------------------------------ > 낮 |
# 참고로, Coldline일때가 가장 high durable 하다고 하는데, 여기서 durable이라는 의미는 데이터가 손실될 가능성이 낮다는 것을 의미한다.
<Cloud Storage Features>
클라우드 스토리지에 대한 특징들에 대해 살펴보겠다. 특징들은 다음과 같다.
- CSEK ( Customer - Supplied Encryption Key ) : VM에 persistent disk(영구 디스크)를 첨가할 때 사용, 구글이 관리하는 것이 아닌 사용자가 직접 관리
- Object Versioning : 객체는 불변하기 때문에 대신 덮어쓰거나 삭제가 가능한데 이 덮어쓰거나 삭제에 대한 기록(로그)를 갖고 있어서 이전 상태로 복구하거나 객체를 영구적으로 삭제가 가능하다 (단, Bucket차원에서만 실행 가능)
- Object Lifecycle Management : 객체 live time 설정, 객체 버젼들(이전 상태들) 기록, 객체들의 Storage Class 다운그레이딩이 가능하다, 참고로 Lifecycle을 업데이트시, 새로운 버젼은 업데이트한 이후 24시간 뒤에 효력이 발휘된다.
- Object Change Notification : 객체가 업데이트되거나 삭제 시 알려주는 알림 서비스이다. ex) Web Hook ( 그러나, Cloud Pub/Sub이 더욱 효율적이고 빨라서 Pub/Sub이 더 권고된다.
- 만약, 거대량(테라바이트, 페타바이트)의 데이터를 업로드시, 세가지 옵션이 있는데,
- Transfer Appliance : 대량의 데이터를 migrate(이전)하는 하드웨어 장치
- Storage Transfer Service : 온라인 데이터의 고성능 import를 가능하게 한다.
- Offline Media Import : 물리적인(Physical) 미디어(USB 드라이버, 하드디스크 드라이버)
'Archive > GCP' 카테고리의 다른 글
[GCP] 리소스 관리(Quotas, Labels, Billing) (0) | 2020.02.26 |
---|---|
[GCP] Cloud SQL과 Other DB들 (0) | 2020.02.14 |
[GCP] Cloud Load Balancing 과 Auto Scaling (0) | 2020.02.02 |
[GCP] GCP의 기초부터 다시 잡자 (0) | 2020.01.26 |
[GCP] VPC(Virtual Private Cloud) (0) | 2020.01.13 |