본문 바로가기

Develop/DevOps

[Cloud OnBoard] 2 - 가상머신 및 스토리지

2019년 11월 26일 세종대학교에서 있었던 Google Cloud OnBoard에서 나누어준 자료집의 정리본입니다


모듈2 가상머신 및 스토리지

0. 추가 자료

Google Compute Engine : https://cloud.google.com/compute/docs

Google Cloud Platform VPC : https://cloud.google.com/compute/docs/vpc

Google Cloud Stackdriver : https://cloud.google.com/stackdriver/docs

Gcloud 도구 가이드 : https://cloud.google.com/source-repositories/docs

Cloud Storage 개요 : https://cloud.google.com/storage

Google Cloud SQL 시작하기 : https://cloud.google.com/sql/docs/quickstart

Cloud Bigtable : https://cloud.google.com/stackdriver/docs

Cloud Spanner : https://cloud.google.com/spanner/docs

Cloud Datastore : https://cloud.google.com/datastore/docs

1. Virtual Private Cloud (VPC) 네트워크

  • 각 VPC 네트워크는 하나의 GCP 프로젝트에 포함
  • Cloud Platform 리소스를 프로비저닝하고 서로 연결하거나 격리할 수 있다.
  • VPC 네트워크는 글로벌 수준으로, 서브넷은 리전별 구성으로

2. Compute Engine

  • 관리형 가상머신 제공

    • 고성능 CPU, 대용량 메모리, 표준 및 공유 코어 머신 유형
    • 영구 디스크 (HD와 같은 느낌)
    • 표준, SSD, 로컬 SSD
    • 스냅샷
    • 다운타임없이 디스크 크기 조절
    • 인스턴스 메타데이터 및 시작 스크립트
  • 고객에게 유리한 가격 제시

    • 초단위 청구, 지속 사용 할인, 약정 사용 할인
    • 선점형 인스턴스
    • 추가 비용없이 스토리지 처리량 상향
    • 커스텀 머신 유형 : 필요한 하드웨어에 대해서만 지불
  • 수평확장 또는 수직 확장

    • 메모리 및 컴퓨팅 집약적 애플리케이션에 대규모 VM 사용
    • 탄력적인 확장형 애플리케이션에 자동 확장 사용

3. 중요한 VPC 기능

  • VCP 네트워크의 토폴로지 제어

    • 경로 테이블을 사용해 트래픽을 네트워크 안에서는 물론 서브넷 간에 전달
    • 방화벽을 사용해 네트워크 트래픽이 허용되는 항목을 제어
    • 공유 VPC를 사용해 네트워크 또는 개별 서브넷을 다른 GCP 프로젝트와 공유
    • VPC 피어링을 사용해 GCP 프로젝트의 네트워크의 상호연결
  • 전역 Cloud Load Balancing으로 전 세계에 단일 프런트 엔드로 제공되는 애플리케이션

    • 사용자가 단일 글로벌 Anycast IP 주소를 사용
    • Google 백본을 통해 가장 가까운 접속 지점에서 사용자에게로 트래픽 전달
    • 부하를 기준으로 백엔드 선택
    • 정상 백엔드만 트래픽 수신
    • 가동 준비가 필요 없음
  • Cloud DNS
    • 관리형 영역을 생성한 후 DNS 레코드를 추가, 편집, 삭제
    • RESTful API 또는 명령줄 인터페이스를 사용해 영역과 레코드를 프로그래매틱 방식으로 관리
  • Cloud CDN (Content Delivery Network)

    • 전세계에 분산된 Google의 에지 캐시를 사용하여 콘텐츠를 사용자에게 가깝게 캐싱
    • 다른 CDN의 사용을 원하는 경우 CDN Interconnect 사용
  • 다양한 상호 연결 옵션을 제공

    • VPN : VPN 터널을 통한 Gbps 단위의 연결 확보
    • 다이렉트 피어링 : 하이브리드 클라우드 워크로드를 위한 사용자와 Google간 비공개 연결
    • Dedicated Interconnect : Google 접속 지점에서 Google Cloud로 전달되는 프라이빗 클라우드 트래픽을 위한 N X 10G 전송 회로 연결
    • 이동통신사 피어링 : 서비스 제공업체의 대규모 파트너 네트워크를 통한 연결
    • Partner Interconnect : 지원되는 서비스 제공업체를 통한 온프레미스 네트워크 및 VPC 네트워크 간 연결
  • 부하 분산 옵션 제품군을 제공하는 Google VPC

 

글로벌 HTTP(S) 글로벌 SSL 프록시 글로벌 TCP 프록시 리전 리전 내부
부하를 기준으로한 Layer 7 부하 분산 부하를 기준으로 한 HTTPS외 SSL 트래픽의 Layer 4 부하 분산 SSL외 TCP 트래픽의 Layer 4 부하 분산 모든 트래픽(TCP, UDP)의 부하 분산 VPC내 트래픽의 부하 분산
각종 URL을 다양한 백엔드에 라우팅 할 수 있음 특정 포트 번호에서 지원됨 특정 포트번호에서 지원됨 모든 포트번호에서 지원됨 다중 계층 애플리케이션의 내부 계층에 사용

4. GCP - 스토리지

5. Cloud Storage

  • Cloud Storage의 특징

    • BLOB (binary large-object) 스토리지
    • 고성능 인터넷 규모 : 단순한 관리
    • 용량을 관리할 필요가 없음
    • 저장 데이터 암호화
    • 기본적으로 Google에서 엔드포인트로 전송 중인 데이터 암호화
    • 온라인 및 오프라인 가져오기 서비스 사용 가능
  • Cloud Storage 파일은 버킷으로 구성
  • Cloud Storage 등급 선택하기
  • Cloud Stoarge로 데이터를 가져오는 3가지 방법


    • 온라인 전송 : 명령줄 도구 또는 드래그인 드롭을 사용한 자체 관리형 사본
    • Storage Transfor Service : 일정에 따른 관리형 일괄 전송
    • Transfer Appliance : 데이터를 안전하게 전송하는, 랙 장착 가능한 어플라이언스
  • 다른 GCP 서비스와 함께 사용이 가능하다.

6. Cloud Bigtable

  • Cloud Bigtable의 특징


    • 관리형 NoSQL
    • 테라바이트 규모의 애플리케이션을 위한 완전 관리형 NoSQL, 광폭 열 데이터베이스 서비스
    • HBase API로 액세스
    • 빅데이터, Hadoop 에코시스템과 기본적으로 호환
    • 복제 스토리지
    • 가동 여부와 관계없이 상시 데이터 암호화
    • 역할 기반 ACL
    • google Analytics, Gmail등의 주요 애플리케이션 실행
  • Bigtable 액세스 패턴

    • Application API
      관리형 VM, HBase REST 서버, HBase 클라이언트를 사용하는 자바 서버와 같은 데이터 서비스 계층을 통해 Cloud Bigtable에서 데이터를 읽고 쓸 수 있다. 일반적으로 애플리케이션, 대시보드, 데이터 서비스에 데이터를 제공한다.
    • 스트리밍
      Cloud Dataflow Streaming, Spark Streaming, Storm과 같은 다양한 인기 스트림 처리 프레임워크를 통해 데이터를 스트리밍(이벤트별로 쓰기) 할 수 있다.
    • 일괄 처리
      Hadoop 맵 리듀스, Dataflow, Spark와 같은 일괄 프로세스를 통해 Cloud Bigtable에서 데이터를 읽고 쓸 수 있다. 요약 데이터 또는 새로 계산괸 데이터가 Cloud Bigtable 또는 다운스트림 데이터베이스에 다시 기록되는 경우가 많다.

 

7. Cloud SQL 및 Cloud Spanner

7-1. Cloud SQL

 

  • Cloud SQL의 특징

    • 관리형 RDBMS
    • MySQL및 PostgreSQL 데이터베이스를 서비스로 제공
    • 자동 복제
    • 관리형 백업
    • 수직 확장 (읽기 및 쓰기)
    • 수평 확장 (읽기)
    • Google 보안
  • 다른 GCP 서비스와 함께 사용 가능

    • Cloud SQL + App Engine
      표준 드라이버를 통해 Cloud SQL과 App Engine을 함께 사용할 수 있다.
      App Engine 애플리케이션을 따르도록 Cloud SQL인스턴스를 구성할 수 있다.
    • Cloud SQL + Compute Engine
      Compute Engine 인스턴스에서 외부 IP 주소를 사용하여 Cloud SQL 인스턴스에 액세스 하도록 승인할 수 있다.
      Cloud SQL 인스턴스를 선호 영역에 구성할 수 있다.
    • Cloud SQL + 외부 서비스
      Cloud SQL을 외부 애플리케이션 및 클라이언트와 함께 사용할 수 있다.
      표준 도구를 사용하여 데이터베이스를 관리할 수 있다.
      외부 읽기 복제본을 구성할 수 있다.

7-2. Cloud Spanner

 

  • 수평으로 확장 가능한 RDBMS
  • 자동 복제
  • 강력한 전역 일관성
  • 가용성이 높은 관리형 인스턴스
  • SQL (ANSI 2011, 확장 포함)

8. Cloud Datastore

 

 

  • 수평으로 확장 가능한 NoSQL DB
  • 애플리케이션 백엔드용으로 설계된 NoSQL
  • 완전 관리형 : 분산 아키텍처를 사용해 확장을 자동 관리
  • 내장형 중복 기능
  • ACID 트랜잭션 지원
  • 스키마 없는 액세스 : 기본 데이터 구조를 고려할 필요 없음
  • 로컬 개발 도구
  • 무료 일일 할당량 포함
  • RESTful 인터페이스를 통해 어디서나 액세스

9. 스토리지 옵션 비교

9-1. 기술 세부 정보

  Cloud Datastore Cloud Storage Cloud Bigtable Cloud SQL Cloud Spanner BigQuery
유형 NoSQL 문서 Blobstore NoSQL
광폭 열
OLTP용 관계형 SQL OLTP용 관계형 SQL OLAP용 관계형 SQL
트랜잭션 O X 단일 행 O O X
복잡한 쿼리 X X X O O O
용량 TB+ PB+ PB+ 10TB PB PB+
단위 크기 1MB/항목 -10MB/셀 -100MB/행 5TB/객체 DB엔진 결정 10.240MiB/행 10MB/행

9-2. 사용 사례

  Cloud Datastore Cloud Storage Cloud Bigtable Cloud SQL Cloud Spanner BigQuery
유형 NoSQL 문서 Blobstore NoSQL 광폭 열 OLTP용 관계형 SQL OLTP용 관계형 SQL OLAP용 관계형 SQL
권장용도 반구조화 애플리케이션 데이터, 내구성 높은 키-값 데이터 '플랫' 데이터, 집중적인 읽기 /쓰기, 이벤트, 분석 데이터 구조화 및 비구조화 바이너리 또는 객체 데이터 웹 프레임워크, 기존 애플리케이션 대규모 데이터 베이스 애플리케이션 (약 2TB이상) 대화형 쿼리, 오프라인 분석
사용사례 입문용, App Engine 애플리케이션 AdTech, 금융, IoT 데이터 이미지, 대용량 미디어 파일, 백업 사용자 인증 정보, 고객 주문 높은 I/O, 전역적인 일관성이 필요한 모든 경우 데이터 웨어하우스
단위크기 1MB/항목 -10MB/셀 -100MB/행 5TB/객체 DB엔진 결정 10.240MiB/행 10MB/행