Cloud Storage의 특징과 클래스

GCP 자료는 공식 문서와 일부 번역된 퀵랩 제외하고는 모두 영어다. 

공부하면, 특히 시험 공부를 하다보면 차라리 영어가 편할 때도 있지만 안 그래도 어려운 GCP를 맨처음 영어로 받아들이기가 쉽지가 않다.

이 포스팅에서는 Cloud Storage의 특징, 클래스 그리고 지리적 위치를 한국어로 정리했다.

목차

  • Cloud Storage 정의
  • Cloud Storage 구조
  • Cloud Storage 특징
    • 객체
    • 버킷
    • 객체와 버킷에 대한 접근을 통제하는 방법
    • 객체 버전 관리
  • 클래스
  • 지리적 위치
  • Cloud Storage에 데이터를 넣는 방법

Cloud Storage 정의 – 제품 개요

Cloud Storage는 Google Cloud에 객체(object. 객체는 모든 형식의 파일로 구성된 불변의 데이터 조각)를 저장하는 서비스.

  • Cloud Storage는 버킷이라는 컨테이너에 객체를 저장한다.
    • 모든 버킷은 프로젝트와 연결되어 있으며 조직별로 프로젝트를 그룹화 할 수 있다.
  • 프로젝트를 생성 한 후 Cloud Storage 버킷을 생성하고, 버킷에 객체를 업로드하고, 버킷에서 객체를 다운로드 할 수 있다 . 
    • 특정 사용자가 데이터에 액세스 할 수있는 권한을 부여할 수 있다.
    • 공용 인터넷의 모든 사용자가 액세스 할 수 있는 권한을 부여 할 수 있다.(웹 사이트 호스팅과 같은 특정 사용 사례의 경우)

Cloud Storage 구조

Cloud Storage 특징

  • 확장 가능한 관리형 서비스.
    • 용량을 미리 프로비저닝할 필요 없음
  • 다양한 용도로 사용할 수 있다.
    • 웹 사이트 콘텐츠 배포
    • 재해 복구 & 아카이브를 위한 저장
    • 직접 다운로드를 통해 End User에게 대용량 데이터 개체 배포
  • 클라우드 스토리지 안의 각 개체는 URL이 있기 때문에 파일 시스템이 아니다.
    • 파일처럼 느껴져도 파일이 아니다!
  • Linux의 루트 파일 시스템으로 사용하지 마라.
    • Compute Engine VM은 VM의 파일시스템을 저장하기 위해 Persistent Disk Storage를 이용한다.

객체

  • 객체는 변경이 불가능하다.
    • 대신 새 버전을 만들 수 있다.
  • Cloud Storage는 데이터를 디스크에 ‘쓰기’하기 전, 항상 서버 측의 데이터를 암호화한다.
  • 기본적으로 전송 중인 데이터는 HTTPS를 사용하여 암호화한다.
  • Cloud Storage에 있는 데이터를 다른 GCP 스토리지 서비스로 이동시킬 수 있다.

버킷

  • Cloud Storage의 파일은 ‘버킷’으로 조직되어 있다.버킷 이름은 고유해야 한다.
  • 버킷과 버킷의 콘텐츠가 저장되는 지리적 위치를 지정하고, default 스토리지 클래스를 선택한다.
  • 버킷의 위치는 end user의 대기 시간이 최소화되는 위치로 선정해야 한다.

객체와 버킷에 대한 접근을 통제하는 방법

  • IAM
    • 대부분 IAM만으로 충분하다.
    • 역할은 프로젝트 → 버킷 → 객체 로 상속된다.
  • ACL
    • IAM보다 세밀한 제어는 ACL로 할 수 있다.
    • ACL의 구성요소
      • 작업을 수행하는 사용자(혹은 그룹)범위
      • 작업을 정의하는 권한(read / write)

객체 버전 관리 – 객체 버전 관리하는 법

  • 버킷에서 버전을 관리할 수 있다.
    • 버전을 나열하기
    • 이전 버전으로 복원하기
    • 필요시 버전을 영구 삭제하기
  • 클라우드 스토리지는 변경 기록을 보관한다.
  • 객체 버전을 설정하지 않으면 new는 항상 old를 재정의(override)한다.
  • 라이프사이클 정책도 제공한다.
    • 1년동안 오래된 개체 삭제
    • 특정 시점 이전에 생성된 개체 삭제
    • 버전 관리가 활성화된 버킷의 각 개체의 최신 버전 3개만 유지

클래스

High-Performance 목적

  • Standard
    • 자주 엑세스할 때
    • 고성능

Backup and Archival 목적

  • Nearline
    • 한달에 한번 엑세스
    • 고내구성, 빠름
  • Coldline
    • 분기별 한번 엑세스
    • 고내구성, 빠름
  • Archive
    • 1년에 한번 엑세스
    • 장기 보관 특화
    • 비용 최적화

메모 : Archive 클래스가 생기기 전, 원래 Archive 클래스의 역할을 Coldline이 대신했다. 여러 곳에서 Coldline이 언급이 많이 되었는데,이제 Archive가 그 역할을 대신할 것 같다. …이 말은 즉슨, 시험에서 ‘long-term’, ‘Disaster Recovery’만 보고 습관적으로 Coldline 클릭하는 사람이 나올 거라는 것😊🔫

지리적 위치

Regional

  • 단일 리전, 여러 zone
  • 고성능 compute 작업이나 storage 목적에 좋음
  • compute, storage 코로케이션
    • Compute Engine VM 인스턴스와 동일한 리전에 데이터를 저장하면 성능이 향상된다.

Dual-region

  • 특정한 리전의 pair
  • Regional 과 유사한 성능이면서, 지리적 중복을 통한 더 높은 가용성을 원하는 경우
  • compute, storage 코로케이션
    • Compute Engine VM 인스턴스와 동일한 리전에 데이터를 저장하면 성능이 향상된다.
  • 자동 failover을 원할 때 좋음

Multi-region

  • 데이터가 US, EU, Asia에(최소 160km 이상 떨어진 지리적 위치) 중복적으로 분포되어 있다.
  • 더 높은 가용성을 원하는 경우
  • Google 네트워크 외부에 있거나, 넓은 지리적 지역에 분산되어 있는 End user에게 콘텐츠를 제공하려는 경우
    • 웹콘텐츠
    • 대화형 워크로드
    • 게임
  • 자동 failover을 원할 때 좋음

Cloud Storage에 데이터를 넣는 방법

Online Transfer

  • CLI 환경에서 gsutil
  • GUI 환경에서 Drag&Drop

Storage Transfer Service

  • 예약/관리형 batch 전송
  • 다양한 곳에서 데이터를 Cloud Storage로 전송할 수 있다.
    • 타 클라우드(AWS S3)
    • 다른 Cloud Storage 리전
    • HTTPS endpoint

Transfer Appliance

본격 GCP의 택배 서비스
  • 오프라인 데이터 전송
  • 빠르고 안전하다
    •  대용량 데이터를 빠르고 안전하게 Cloud Storage에 올릴 때 좋다.
  • 용도
    • Nearline/Coldline/Archive 같은 스토리지 클래스도 이동하는데 적합
    • 온프레미스를 쓰고 있는 고객들이 클라우드 환경 테스트 해보고 싶어할 때 

요약