본문 바로가기
  • 클라우드야 나랑 친해지자!
클라우드/GCP

Cloud Storage : 오브젝트 스토리지

by 정민규 2021. 2. 9.
반응형

수업을 듣고 배운 내용과 연습한 내용을 정리하였습니다

개인 공부 후 자료를 남기기 위한 목적임으로 내용 상에 오류가 있을 수 있습니다.

 

잘못된 부분이 있거나 질문사항은 댓글로 남겨주시면 성심성의껏 답변해드리겠습니다. 감사합니다!


교재 <클라우드 플랫폼 인 액션> 을 참고하였습니다.

 

 

 

* Cloud Storage  : 오브젝트 스토리지 ( CHAPTER 8. 221p )

 

[이론]

 

cloud.google.com/storage/docs/introduction?hl=ko

 

Cloud Storage란 무엇인가요?  |  Google Cloud

이 페이지에서는 Cloud Storage의 기본 개념과 용어를 설명합니다. 주요 개념에 대한 자세한 설명은 주요 용어 또는 기타 개념 페이지를 참조하세요. Cloud Storage는 Google Cloud에 객체를 저장하는 서비

cloud.google.com

 

Cloud Storage

 

구글 클라우드 스토리지(Google Cloud Storage)는 구글 클라우드 플랫폼 인프라스트럭처에서 데이터 저장 및 접근을 위한 REST 온라인 파일 스토리지 웹 서비스이다. 이 서비스는 구글의 클라우드의 성능과 스케일러빌리티를 고급 보안, 공유 기능과 결합한다. 아마존 S3 온라인 스토리지 서비스와 견줄만한 서비스형 인프라스트럭처(IaaS)이다. 구글 드라이브와 대조적으로, 그리고 각기 다른 서비스 사양에 따라 구글 클라우드 스토리지는 기업에 더 적합한 것으로 평가된다.

 

- 출처 : 위키백과 -

 

  • Google Cloud Storage 와 Amazon S3 는 동일한 개념을 가지고 있으며, 동일한 XML API를 제공한다.
  • 오브젝트 스토리지 시스템은 많은 유사점을 공유하지만, 가격 모델, 복제 전략 또는 저장소 클래스에 약간의 차이가 있다.

 

 

* 저장소의 특성에 따른 선택 방법

  • 다중 지역 저장소 (멀티 리전) : 여러군데 보관 ---> 가격이 비쌈 ($0.026/GB) ---> 웹사이트
  • 지역 저장소 : 한군데 보관 ---> 가격은 $0.02 ---> 데이터 분석
  • 니어라인 : 자주 필요하지 않은 데이터 ---> 가격은 $0.01 ---> 데이터 보관
  • 콜드라인: 거의 안찾는 데이터 ---> 가격은 $0.007 ---> 재난발생시

 

 

* 권한 제어

  • - 데이터를 아무나 접근하지 못하도록 사용자마다 적절한 접근 권한을 부여함 ---> ACL ( Access Control List )  ㅋ 참고) 방화벽에 접근 통제기능이 ACL임, 라우터에 ACL을 적용하면 사실상 방화벽이 됨.

 

 

 

 

버킷

  • 데이터를 저장하는 컨테이너로 생각할 수 있다.
  • 프로젝트에 고유한 이름이 아닌 전역적으로 고유한 이름뿐 아니라 지리적 위치 및 저장소 클래스와 같이 설정할 수 있는 몇 가지 옵션이 있다.

       -> 디스크라고 생각할 수 있다.

       -> 즉, 원하는 디스크 유형을 선택할 수 있고 원하는 위치에 디스크를 놓을 수 있다.

 

  • 유일한 제한은 버킷의 각 파일이 5테라바이트보다 커서는 안 된다는 것이다.
  • 버킷 자체는 복제되어 다수의 물리적 디스크에 분산되어 높은 수준의 내구성과 가용성을 유지한다.

 

 

객체

  • 객체란 모든 형식의 파일로 구성된 변경할 수 없는 데이터 조각입니다. 
  • 객체는 버킷이라는 컨테이너에 저장합니다. 모든 버킷은 프로젝트와 연결되며, 프로젝트를 조직 아래에 그룹화할 수 있습니다.
  • 버킷 안에 넣는 파일이다. 필요에 따라 검색할 수 있는 바이트의 청크 이름이다.

 

 

 

 

[ 실습 ]

* 버킷 생성하기

 

Storage > 버킷 만들기

 

 

고유한 이름을 지정해주고 나머지는 기본 값으로 설정하고 생성하겠습니다.

 

 

 

 

 

 

네모박스 ( Cloud Shell 활성화 ) 를 클릭하면 아래에 터미널 창이 열리게 됩니다.

 

 

 

 

* gsutil을 사용해 버킷 나열하기

 

 

$gsutil ls 명령어를 사용하여 사용할 수 있는 버킷을 나열합니다.

저는 이전에 만든 버킷이 있어서 3개로 뜨지만 방금 만든 my-first-bucket-jmg 도 확인됩니다.

 

 

 

 

 

* gsutil을 사용하여 첫 번째 파일 업로드하기

 

 

gsutil 명령어를 사용하여 간단한 텍스트 파일을 버킷에 업로드했습니다.

 

 

 

 

 

버킷 세부정보를 확인하시면 방금 업로드한 my_first_file.txt 파일을 확인할 수 있습니다.

 

 

 

 

 

 

* Cloud Storage에 파일을 업로드하는 스크립트

 

스크립트 -> list8.4 참고

github.com/Jpub/GCP/blob/master/Chapter_8/list8.4.js

 

Jpub/GCP

<구글 클라우드 플랫폼 인 액션> 리포지토리. Contribute to Jpub/GCP development by creating an account on GitHub.

github.com

 

$npm install @google-cloud/storage@0.2.0     // @google-cloud/storage 패키지 설치

$echo "This is my second file!" > my_second_file.txt     // 새 파일 생성

 

vi list8.4.js 에 list8.4 스크립트를 작성 및 저장하고,

 

node list8.4.js 실행하면 아래와 같이 파일이 업로드 되었다는 메시지가 표시됩니다.

 

 

 

 

 

 

버킷 세부정보를 보시면 my_second_file.txt 가 추가된 것을 확인할 수 있습니다.

 

 

 

 

연습예제 )

 

스포츠서울 홈페이지에 있는 연예인 사진을 업로드 해보겠습니다.

 

www.sportsseoul.com/news/read/1011460

 

아이유, '이브자리' 새 모델..."포근· 상큼함으로 MZ세대 공략"

[스포츠서울 조현정기자] 가수 겸 배우 아이유가 토탈슬립케어 브랜...

www.sportsseoul.com

 

이미지 주소 복사 > $wget http://image.sportsseoul.com/RE/90/2021/02/09/news/20210209105130_1.jpg 

> $vi upload.js > 파일명만 수정 '20210209105130_1.jpg' > $node upload.js

 

 

 

vi upload.js

 

 

 

버킷에 이미지가 업로드 된 것을 확인할 수 있습니다.

반응형

댓글