본문 바로가기

Archive/GCP

[GCP] GCS ( Google Cloud Storage )에 대한 이해

반응형

이번 포스팅에서는 GCS라고 불리우는 Google Cloud Storage에 대해서 공부해본 내용을 소개하려고 한다. 최근 들어 한국어로 된 '구글 클라우드 플랫폼 뽀개기' 라는 박정운님이 지으신 책으로 사전 지식과 개념을 이해하고 코세라 강의를 들으면서 해당 책에선 설명이 되지 않았던 추가 적인 내용을 공부하는 식으로 진행하고 있다. 처음에 했던 방식과는 좀 다른 공부 방법이지만 몇 번의 시행착오를 거친 끝에 이게 가장 나에게 맞고 이상적인 공부 방법이라고 생각하고 있다..!

 

그렇다면 이제 Cloud Storage에 대해서 알아가 보기 전에 앞으로 계속적으로 다룰 GCP내의 여러가지 Storage와 Database 중에서 어느 걸 선택할지에 대한 기준을 마련해주고 있는 테이블과 의사결정모델을 큰 숲을 먼저 보자느 차원에서 잠깐 보고 가자!

 

참고로!! GCSUnstructured Data에 적합한 클라우드 서비스이다!

Storage & DB 테이블
Storage & DB Decision Tree model

그렇다면, 이제 Cloud Storage에 대해 본격적으로 파헤쳐 보자!

 

<Cloud Storage 개념>

Cloud Storage란, 우선 Object Repository(객체 저장소)이며, 해당 서비스를 이용하면 데이터의 양에 관계 없이 언제, 어디서나 데이터를 저장하고 가져올 수 있는 서비스를 말한다.

 # 그래서 보통 use case로서, 컨텐츠 제공, 백업 데이터 저장, 사용자에게 대량의 데이터 객체를 배포할 때 사용한다.

 

<주요 개념>

Cloud Storage에 대해서 이해하기 위해서는 몇가지 개념을 알고 가는 것이 중요한데, 이에 대해 먼저 이해하고 넘어가는 것이 좋겠다.

  • Project : Compute Engine에서 다룬 Project와 비슷한 개념으로, Cloud Storage에서는 모든 데이터가 속하는 공간이라고 보면 되겠다.
  • Bucket : 사전적 정의로는 '양동이'로, 여기서는 데이터를 담는 개념이라고 보면 되겠다. 몇가지 특징이 있는데,
    1. 버킷안에는 버킷을 만들 수 없다.
    2. 이름이 GCP 내에서 Globally unique(전역 상에서 고유)해야 한다.
    3. 버킷수는 작고 객체(Object)가 많을수록 좋은 설계이다.
    4. 버킷 생성시, 버킷의 '이름', '지리적 위치', 'Repository 등급'을 지정할 수 있다.
    5. 라벨을 달 수 있으며, key-value 형태로 GCP의 다른 리소스와 그룹화가 가능하다.
  • Object : 한국어로는 '객체' 라고하며, 여기서는 버킷에 저장되는 파일들이라고 보면 된다. 객체는 생성 갯수에는 제한이 없으며, 다음과 같이 2가지의 데이터로 구성이 된다.
    1. 객체 데이터 : GCS(Google Cloud Storage)에 저장되는 파일
    2. 객체 메타(meta)데이터 : key-value 값 형태이며 객체의 퀄리티를 설명
  • 지리적 중복 : 말 그대로 서로 멀리 떨어진 여러 지역(미국-유럽-아시아)에 데이터를 중복적으로 저장하는 개념이    다. 비동기적이며, 자연재해 같은 대규모 장애 발생에도 데이터의 가용성이 확장 가능하다.
  • Object 불변성 : 객체는 변경할 수 없지만 덮어쓰기나 삭제는 가능하다.
  • Reposiroy 등급 : 위에서 버킷을 설명할 때, 버킷 생성시, Repository등급을 지정할 수 있다고 했는데 등급별로 종류  에 대해 알아보자.
특징 Multi-Regional Regional Nearline Coldline
데이터 접근 방법 매우 자주 접근 동일 Region 내 자주 접근

한달에 한번 미만 접근

1년에 한 번 미만 접근
저장 비용                 < ------------------------------------------------------------------------------ >
복구(운영) 비용                 < ------------------------------------------------------------------------------ >
Use Case 웹사이트 콘텐츠, 비디오 스트리밍, 게임,모바일 App같이 자주 접근 동일 지역 내 분석, 트랜스 코딩 백업, Long tail 미디어 아카이빙, 재난 복구용
가용성                 < ------------------------------------------------------------------------------ >

# 참고로, Coldline일때가 가장 high durable 하다고 하는데, 여기서 durable이라는 의미는 데이터가 손실될 가능성이 낮다는 것을 의미한다.

Bucket의 Repository 등급

 

<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이 더 권고된다.
  • 만약, 거대량(테라바이트, 페타바이트)의 데이터를 업로드시, 세가지 옵션이 있는데,
    1. Transfer Appliance : 대량의 데이터를 migrate(이전)하는 하드웨어 장치
    2. Storage Transfer Service : 온라인 데이터의 고성능 import를 가능하게 한다.
    3. Offline Media Import : 물리적인(Physical) 미디어(USB 드라이버, 하드디스크 드라이버)

Cloud Storage Features(eng.version)

 

반응형