클라우드

구글 클라우드 스토리지를 이용한 데이터 저장

김구티2 2024. 2. 19. 18:59

1. 클라우드 스토리지의 개념과 GCS 소개

데이터가 곧 자산이 되는 현시대에서 단순히 데이터와 개인정보보호를 중요하게 생각하는 사람이건, 그와 전혀 무관한 사람이건 데이터를 적절하게 관리하고 저장하는 것은 너무나도 중요하다. 불조심이라는 말이 소방관에게만 중요한 것은 아니듯 말이다. 클라우드 스토리지는 이에 대한 하나의 솔루션이며, 대용량 드라이브에 데이터를 저장하는 기존 방식에 비해 효과적이다. 사람들은 데이터 침해, 악성 코드, 피싱 공격 등의 보안 위험에 직면할 때가 있는데, 이러한 문제를 피하기 위해 구글 클라우드로 널리 알려진 공용 클라우드 서비스가 도입되었다. 구글 클라우드는 데이터 전체에 보호 및 암호화 장벽을 적용하여 데이터를 안전하게 유지하는 것을 목표로 한다.

 

여기서 등장하는 것이 Google Cloud Storage, GCS가 되겠다. 구글 클라우드는 고객의 컴퓨팅, 데이터 분석, 데이터 저장, 기계 학습을 지원하는 글로벌 데이터 센터 네트워크와 다양한 클라우드 기반 솔루션을 제공하며, 구글의 기술을 활용하는 안정적이고 확장 가능한 환경 또한 제공한다. 구글 클라우드 스토리지에 대한 키워드를 뽑아본다면 다음과 같다.

 

① 확장성 ② 데이터 접근성 ③ 데이터 백업 및 복구 ④ 비용 효율성 ⑤ 보안

 

구글 클라우드 스토리지는 매우 큰 생태계와 사용자 지원을 제공하며, 사용자 친화적이기에 굳이 전문가가 아니더라도 충분히 사용에 문제가 없다. 또한, 백업과 복구가 쉽고, 데이터를 저장하기 위한 가성비 있는 솔루션을 제공하며, 데이터와 해당 서비스에 보안 및 암호화를 제공한다. 일반 사용자 입장에서는 아무래도 대감집 서비스를 선호할 수밖에 없는데, 실제로 구글 클라우드 서비스가 여타 클라우드 서비스에 비해 크게 뒤지거나 문제가 있는 것은 아니다 보니 많은 사람의 선택을 받는 것으로 보인다. 물론 여기서는 명백히 일반 사용자 관점에서 훌륭하다는 것이다. 

 

2. 클라우드 스토리지 이용

설치 → 회원 가입 및 로그인 → 구글 클라우드 계정 생성 → 보안 설정 구성 → 파일 업로드의 단계를 거쳐 이용할 수 있다.

물론, 구글 클라우드에도 유료 기능은 존재한다. 하지만 무료로도 충분히 일반 사용자 관점에서는 의미있는 성과를 얻을 수 있을 것이라 생각한다.

 

그런데 구글 클라우드에서는 다양한 클라우드 스토리지 서비스를 운영하고 있다. 따라서 본인에게 적합한 것이 무엇인지 알아보고 이용하는 것이 좋다.

 

Google Storage (object storage)
Google Cloud Filestore (network file storage)
Google Persistent (block storage)
Google Storage for fire base
Google Storage transfer service

 

① Google Storage (object storage)의 경우, 데이터 암호화, 데이터 복제 및 라이프사이클 관리 기능을 제공한다. 따라서 상대적으로 더욱 안정적이며, 객체 스토리지를 Google Cloud Functions, BigQuery 및 AI Platform과 같은 여러 GCP 서비스와 통합하여 강력한 애플리케이션을 구축할 수도 있을 것이다.


클라우드 스토리지의 모든 것은 버킷과 객체로 구성되고 버킷은 데이터를 저장하는 데 사용되며, 이미지는 클라우드 스토리지에 저장되는 개별 데이터 조각이라 할 수 있다. 클라우드 스토리지는 구글 클라우드 콘솔을 사용하여 버킷에 업로드하거나 객체를 다운로드하는 여러 가지 방법을 제공한다.

 

이러한 객체 스토리지의 이점으로는 대규모 확장성, 복잡성 감소, 검색 가능성, 복원력, 비용 효율성을 들 수 있다.

⑴ 대규모 확장성: 파일 또는 블록 스토리지와 동일한 제한 없이 객체 스토리지의 플랫 아키텍처를 쉽게 수평 확장할 수 있다. 객체 스토리지 크기가 기본적으로 무한이므로 새 기기를 추가하는 것만으로 데이터를 엑사바이트 규모로 확장할 수 있다.

⑵ 복잡성 감소: 객체 스토리지는 폴더나 디렉터리가 없으므로, 계층적 시스템의 복잡성이 상당 부분 제거된다. 복잡한 트리나 파티션이 없기 때문에 정확한 위치를 알 필요가 없으므로 파일을 더 쉽게 검색할 수 있을 것이다.   
⑶ 검색 가능성: 메타데이터가 객체에 포함되므로 별도의 애플리케이션 없이도 쉽게 검색하고 탐색할 수 있다. 또한, 훨씬 더 유연하고 맞춤설정이 가능하다는 이점이 있다. 자동 삭제, 보관, 계층화를 위한 소비, 비용, 정책과 같은 특성 및 정보를 사용하여 객체에 태그를 지정할 수 있다.

⑷ 복원력: 객체 스토리지는 데이터를 자동으로 복제하고 여러 기기 및 지리적 위치에 저장할 수 있다. 이를 통해 서비스 중단으로부터 보호하고, 데이터 손실을 방지하고, 재해 복구 전략을 지원할 수 있다.

⑸ 비용 효율성: 객체 스토리지는 파일 기반 및 블록 기반 시스템보다 낮은 가격으로 대량의 데이터를 저장할 수 있도록 비용을 염두에 두고 제작되었다. 객체 스토리지를 사용하면 필요한 용량만 지불하므로 데이터 양이 많더라도 비용을 제어할 수 있을 것이다.

위의 이점을 지닌 객체 스토리지는 클라우드 기반 애플리케이션, 빅데이터 분석, 사물 인터넷, 리치 미디어 저장 및 제공, 백업 및 보관처리에 사용되는 것이 보편적이다.

 

② Google Cloud Filestore (network file storage)는 네트워크 연결 스토리지 서비스로 빠르고, 낮은 지연시간의 파일 공유 옵션을 제공한다. 초당 800MB/s의 처리량을 제공하여 파일 전송 속도를 높이고 성능을 향상시킬 수 있다. 파일스토어는 Google 쿠버네티스 엔진과 통합하여 추가 스토리지를 제공할 수 있다.

 

파일스토어의 이점으로는 클라우드로의 신속한 마이그레이션, 관리의 간편함, 필요에 따라 확장 또는 축소할 수 있는 용량을 들 수 있다.

 

⑴ 클라우드로의 신속한 마이그레이션: 파일스토어를 사용하면 다시 작성하거나 다시 설계하지 않고도 애플리케이션을 클라우드로 마이그레이션할 수 있어 마이그레이션이 가속화 및 간소화된다.

⑵ 관리의 간편함: Console, gCloud CLI 또는 API를 사용하여 파일스토어 인스턴스를 쉽게 배포한다. 그렇게 되면 파일 스토리지 구성 및 모니터링에 소요되는 시간을 줄이고 비즈니스 가치를 창출하는 데 더 집중할 수 있을 것이다.

⑶ 필요에 따라 확장 또는 축소할 수 있는 용량: 사용하는 만큼만 지불하면 된다는 것이다. 애플리케이션 수요에 따라 용량을 자동으로 확장하거나 축소한다.

 

파일스토어는 가장 까다로운 애플리케이션의 요구사항을 충족하는 서비스라고도 할 수 있다. 고성능 워크로드의 요구사항을 충족하도록 확장이 가능하다는 부분이 이 서비스의 가장 큰 강점이지 않을까 싶다. 조직마다 요구사항을 다르기 마련이고, 까다로운 요구사항을 충족할 수 있는 시스템은 그럴수록 각광을 받는 것이 당연한 수순이다. 이런 파일스토어는 앤터프라이즈 애플리케이션 마이그레이션, 금융 서비스, Google Cloud VMware Engine, 데이터 분석, Genomics 처리, 웹 콘텐츠 관리 등에 쓰이고 있다.

 

추가로, 파일스토어의 3가지 성능 등급을 소개하니 이에 따라 등급에 대한 이해를 할 수 있을 것이다.

  파일스토어 베이직
(HDD 및 SSD)
파일스토어 엔터프라이즈 파일스토어 하이 스케일
권장 파일 공유, GKE, 소프트웨어 개발, 웹 호스팅 중요한 애플리케이션(ex: SAP), Compute Engine, GKE 워크로드 게놈 시퀀싱, 금융 서비스 거래 분석, 기타 고성능 워크로드를 포함한 고성능 컴퓨팅
용량 1~63.9TiB(HDD)
2.5~63.9TiB(SSD)
1~10TiB 10~100TiB
최대 순차 읽기 처리량
(MB/sec)
180(HDD)
1,200(SSD)
1,200 26,000
최대 임의 읽기 IOPS 1,000(HDD)
60,000(SSD)
57,000 960,000

 

③ Google Persistent (block storage)는 데이터베이스, 웹 서버 및 응용 프로그램 서버를 포함한 광범위한 응용 프로그램에 사용된다. Google 클라우드는 데이터를 여러 스토리지 장치와 위치에 걸쳐 복제하여 데이터 무결성과 가용성을 보장함으로써 데이터 손실이 큰 경우 데이터를 복구하고 데이터 손실을 방지할 수 있다.
영구적인 디스크는 특히 Google 키와 고객 관리 키의 도움으로 데이터를 암호화하여 누구도 쉽게 액세스할 수 없도록 하는 권한을 제공한다.

 

이런 블록 스토리지의 이점으로는 손쉬운 배포 및 확장, 우수한 가격과 성능, 다운타임 없이 제공되는 유연성이 있다.

손쉬운 배포 및 확장: 볼륨, 스트라이핑, 크기 조정 없이 디스크만 있으면 된다. 파티션 나누기, 중복 디스크 배열, 하위 볼륨 관리를 걱정할 필요가 없다. 필요에 따라 확장하거나 축소하고 사용한 만큼만 비용을 지불하면 된다.

우수한 가격과 성능: HDD는 일괄 처리가 중요한 경우에 적합한 저렴한 스토리지를 제공한다. SSD는 랜덤 액세스 워크로드와 일괄 처리 모두에서 지속적으로 고성능을 발휘할 수 있다. 두 가지 스토리지의 최대 용량은 모두 64TB로 충분하다.

다운타임 없이 제공되는 유연성: 여러 영구 디스크를 Compute Engine 또는 GKE 인스턴스에 동시에 연결한다. 애플리케이션을 중단하지 않고도 신속하게 자동 백업, 증분 백업을 구성하거나 스토리지 크기를 즉시 조절할 수 있다.

그리고 이런 블록 스토리지는 다양한 유형으로 제공된다. 각각 당연히 가격도 다르고, 성능과 특징도 다르기에 이를 잘 ㄸ져보고 선택해야 한다.

 

⑴ 표준 영구 디스크(HDD): 빅데이터, 대용량 컴퓨팅 워크로드에 적합하며 가장 가성비가 좋은 유형이다.

⑵ 균형있는 영구 디스크(SSD): 표준 엔터프라이즈 애플리케이션에 권장되며, 성능과 비용 사이의 적절한 균형을 자랑한다.

⑶ 성능 영구 디스크(SSD): 수평 확장 분석, 데이터베이스, 영구 캐시에 권장되며, 성능에 민감한 워크로드이다.

⑷ 익스트림 영구 디스크(SSD): SAP HANA, Oracle과 같은 엔터프라이즈 애플리케이션에 적합하며, 대규모 인메모리 데이터베이스의 요구사항을 충족하는 최고의 성능을 자랑한다.
⑸ 로컬 SSD: 데이터베이스 및 실시간 분석을 위한 핫 캐시에 적합하며, 가장 짧은 지연 시간을 제공하는 플래시 최적화 임시 스토리지이다.

 

④ Google Storage for fire base는 사진, 동영상 등의 사용자 제작 콘텐츠를 저장하고 제공해야 하는 앱 개발자를 위해 만들어졌다. Firebase용 Cloud Storage는 Google의 규모를 활용한 강력하고 단순한, 경제적인 객체 저장소 서비스이다. Cloud Storage용 Firebase SDK는 네트워크 품질과 관계없이 Firebase 앱의 파일 업로드 및 다운로드에 Google 보안을 적용한다.
이 클라이언트 SDK를 사용하여 이미지, 오디오, 동영상 등의 사용자 제작 콘텐츠를 저장할 수 있다. 서버에서 Firebase Admin SDK를 사용하여 버킷을 관리하고 다운로드 URL을 만들며 Google Cloud Storage API를 사용하여 파일에 액세스할 수 있다.

이것의 주요 이점으로는 견고한 작업, 강력한 보안, 높은 확장성을 들 수 있다.

⑴ 견고한 작업: Cloud Storage용 Firebase SDK는 네트워크 품질에 관계없이 업로드 및 다운로드를 실행한다. 또한, 업로드 및 다운로드가 중지된 위치부터 다시 시작되므로 사용자의 시간과 대역폭이 절약된다.

⑵ 강력한 보안: Cloud Storage용 Firebase SDK는 Firebase 인증과 통합되어 개발자에게 간단하고 직관적인 인증을 제공한다. 선언적 보안 모델을 사용하여 파일 이름, 크기, 콘텐츠 유형 및 기타 메타데이터를 기준으로 액세스를 허용할 수 있다.

⑶ Cloud Storage는 앱 사용자가 급증할 때 엑사바이트급 규모로 확장이 가능하도록 설계되었다. Spotify, Google 포토 같은 앱에 사용되는 것과 동일한 인프라로 프로토타입부터 프로덕션까지 원활하게 성장할 수 있다.

 

⑤ Google Storage transfer service는 Google Cloud Storage, Amazon S3, Azure Storage, 온프레미스 데이터 등을 비롯한 파일 스토리지 시스템과 객체 간의 데이터 전송을 자동화한다. 그렇기에 코드를 작성할 필요 없이 대량의 데이터를 빠르고 안정적으로 전송하는 데 사용할 수 있다.
또한, 소스 유형에 따라 Google 관리 전송을 손쉽게 만들어 실행하거나, 네트워크 라우팅 및 대역폭 사용량을 완전히 제어할 수 있는 자체 호스팅 전송을 구성할 수 있다.

 

이점으로는 훌륭한 보안, 우수한 성능, 완전 관리형을 들 수 있다.

⑴ 훌륭한 보안: 엔드 투 엔드 암호화는 전송 중 데이터를 보호한다. Storage Transfer Service는 모든 HTTPS 통신에 TLS 1.3을 지원한다. 따라서 데이터 무결성을 통해 전송 중에 데이터가 손상되지 않았는지 확인할 수 있다.

⑵ 우수한 성능: 높은 병렬 아키텍처는 전송 속도를 가속화한다. 또한, 자동 재시도 및 부하 분산은 안정적인 전송을 보장한다.

⑶ 완전 관리형: 인프라를 관리하거나 코드를 작성할 필요가 없다. 그렇기에 데이터 전송이 아닌 애플리케이션에 집중할 수 있다.

 

이런 트랜스퍼 서비스는 백업이나 데이터 처리 파이프라인, 아카이브에 쓰이곤 한다.

 

 

※ 객체 스토리지 VS 파일 스토리지 VS 블록 스토리지

데이터 소스 및 유형이 확대되면서 데이터 스토리지에 대한 요구가 지속적으로 발전하고 있다. 그렇기에 기존 파일 스토리지와 블록 스토리지는 구조화된 스토리지 방식에 맞지 않고, 이것은 방대한 양의 데이터 처리와는 조금 거리가 멀다. 그래서 위에서도 객체 스토리지가 빅데이터 분석에 쓰인다고 기술한 것이다. 그렇다면 객체, 파일, 블록 스토리지는 각각 어떻게 다른 것일까?

 

① 객체 스토리지
객체 스토리지는 데이터, 권한, 정책, 기타 우발적 상황에 대한 정보를 포함하는 세부 메타데이터와 고유 식별자 및 모든 데이터를 포함하는 자체 포함 객체로서 플랫 데이터 환경 또는 스토리지 풀에 파일을 저장한다. 객체 스토리지는 데이터를 한 번 쓰고 여러 번 읽어야 할 수 있는 특히 구조화되지 않은 정적 데이터에 가장 적합하다.

객체 스토리지는 디렉터리, 폴더, 기타 복잡한 계층 구조가 필요하지 않지만 데이터를 수정하기 위해 전체 객체를 다시 써야 하기 때문에 지속적으로 변경되는 동적 데이터에 적합한 솔루션은 아니다. 그렇기에 특정 상황에서는 속도 및 성능 요구사항에 따라 파일 스토리지 및 블록 스토리지가 요구에 적합할 수 있을 것이다.  

② 파일 스토리지
파일 스토리지는 사무실에서 실제 파일을 보관하는 서류 관리 체계와 유사한 방식으로 데이터를 폴더에 저장하고 관리하는 것이 특징이다. 일반적으로 우리가 사무실에서 특정 파일의 정보가 필요하면, 해당 자료가 보관된 서류실, 캐비닛, 서랍 및 폴더를 알아야 할 것이다. 이와 동일한 계층적 스토리지 구조가 사용되는 파일 스토리지에서는 파일에 이름을 지정하고, 메타데이터로 태그를 지정하고, 폴더에 배치한다.

데이터를 찾기 위해서는 올바른 경로를 알아야 한다. 시간이 지남에 따라 파일 수도 증가하므로 데이터 파일을 찾고 검색하는 데 시간이 오래 걸릴 수 있다는 것이 흠이라면 흠이다. 그렇기에 확장성이 제한적이지만 거의 모든 유형의 데이터를 소량으로 저장하고 여러 사용자가 한 번에 액세스할 수 있게 해주는 간단한 방법이다.

③ 블록 스토리지
블록 스토리지는 파일을 개별 블록으로 분할하고 이를 개별적으로 저장하는 방식으로 파일 스토리지의 성능을 개선한다. 블록 스토리지 시스템은 원시 데이터의 각 청크에 고유 식별자를 할당하고, 액세스가 필요할 때 이 식별자를 사용하여 전체 파일로 재구성한다. 블록 스토리지에는 데이터에 대한 단일 경로가 필요하지 않으므로 어디든 가장 편리한 위치에 데이터를 저장하고 필요할 때 신속하게 검색할 수 있다.

블록 스토리지는 최소한의 지연과 일관된 성능이 필요한 대량의 트랜잭션 데이터 또는 미션 크리티컬 애플리케이션을 사용하는 조직에 적합하다. 그러나 비용이 높을 수 있고, 메타데이터 기능을 제공하지 않으며, 블록 액세스를 위한 운영체제가 필요히다.

728x90

'클라우드' 카테고리의 다른 글

구글 클라우드 빅테이블 총정리  (0) 2024.02.23
구글 클라우드 플랫폼(GCP) 총정리  (0) 2024.02.22
클라우드 빌링의 기초 정리  (0) 2024.02.14
클라우드 종류 총정리  (0) 2024.01.24
클라우드 방화벽  (0) 2024.01.22