Introducing GCP

Coursera <Google Cloud Platform Fundamentals: Core Infrastructure>를 다시 들으면서 손으로 휘갈긴 필기를 정리하여 블로그에 올린다.

클라우드 컴퓨팅이 무엇인가

  • On-demand self-service
    • 공급 회사의 담당자 개입 필요 없음
  • Broad network access
    • 어디서나 접속 가능
  • Resource pooling
    • 공급자는 대량 구매하고 비용은 고객에게 전가.
    • 데이터의 실제 물리적 위치를 고객은 모른다.
  • Rapid elasticity
    • 자원관리를 탄력적으로 할 수 있다.
    • 고객이 빠르게 scale up&down 할 수 있음
  • Measured service
    • 사용하거나 예약한 만큼 지불한다

클라우드 컴퓨팅의 역사

1.Colocation

  • 서버(공간) 임대
  • 데이터센터 보다 효율적인 사용

2.가상화

  • 실제 데이터센터 리소스와 일치
  • 여전히 하드웨어에 대한 관리 필요

3.Container based automated service

  • 자동화
  • (G메일, 검색 같은)구글 애플리케이션을 위한 인프라를 구축하기 위하여 구글은 수십억 달러를 썼고, 이제는 그 인프라를 고객에게 제공한다.

Every company is a data company

구글은 분야, 규모에 상관 없이 모든 회사는 데이터 회사라고 생각한다.

GCP computing architecture

gcp-computing-architecture
  • IaaS
    • IaaS는 기존 데이터센터와 비슷한 방식으로 원시 컴퓨팅, 스토리지, 네트워크같은 인프라를 제공한다.
    • 인프라를 할당한 만큼 비용 지불
  • PaaS
    • 애플리케이션에 필요한 인프라에 대한 액세스를 제공하는 라이브러리에 애플리케이션 코드를 바인딩 하여코드에만 집중할 수 있도록 해준다.
    • 사용한 만큼 지불한다.

The Google network

  • 매일 전세계 인터넷 트래픽의 40%를 구글의 네트워크가 나른다.
    • 고객에게 가장 많은 처리량과 가장 짧은 대기시간을 제공하기 위하여
  • 구글의 Edge-caching 네트워크는 End user와 가까운 콘텐츠를 인용하여 대기시간을 최소화한다. 

GCP regions and zones

  • 모든 zone이 데이터센터와 일치하는 것은 아니다. (하지만 대략 그렇게 생각해도 된다.)
  • 한 리전 안 여러개의 zone들은 서로 빠른 네트워크를 갖는다.
  • 여러 리전에 리소스를 둘 수 있다.
    • 자연 재해에 대비할 수 있다.
    • 세계 End User들에게 빠르게 제공할 수 있다.
  • 왜 한 리전 안에 여러 zone을 쓸까?
    • 보다 나은 fault tolerance(결함 감내, 내결함성)를 위하여
  • 왜 여러 리전을 쓸까?
    • 보다 나은 fault tolerance(결함 감내, 내결함성)를 위하여
    • 전세계의 End User들에게 더 가깝게 애플리케이션을 제공하려고

Environmental responsibility

  • 100% 탄소 중립적
  • Google은 세계 최대의 풍력 및 태양 에너지 구매 기업 중 하나

Google offers customers-friendly pricing

  • 리소스 대부분이 초당 청구
    • VM 많이 생성하고 실행하는 고객이 제일 혜택을 많이 본다.
  • Compute Engine은 자동으로 sustained discount를 적용한다.
    • 한 달의 25 % 이상 인스턴스를 실행하면 Compute Engine은 해당 인스턴스에 사용하는 증분 1 분마다 자동으로 할인을 제공

Open APIs

  • Locked-In 방지
  • GCP 서비스는 다른 오픈소스 서비스와 호환된다.
    • Bigtable은 Apache HBase의 인터페이스 사용하여 고객에게 코드 이식성을 제공
    • Dataproc은 Hadoop을 관리형 서비스로 제공
  • 많은 GCP 기술이 상호운용성을 제공
  • 쿠버네티스는 여러 클라우드에서 마이크로서비스가 실행되도록 해준다.
  • Stackdriver은 여러 클라우드를 모니터링 할 수 있다.

Why choose GCP

  • 비용 효율적
  • 오픈소스 친화적
  • 보안을 위해 설계

“개발자는 GCP를 사용하여 Google의 매우 안전하고 안정적이며 확장 가능한 인프라에서 애플리케이션을 빌드, 테스트 및 배포 할 수 있습니다.”

Budgets and Billing

  • Budget and Alerts 
    • 고정값 혹은 전월 사용량 같은 metric을 사용하여 예산을 정할 수 있음
    • 예산의 90%(커스텀 가능)가 되었을 때 알람
  • Billing Export
    • BigQuery 혹은 Storage bucket에 export 할 수 있다.
  • Report
    • 콘솔에서 지출보고서를 시각화하여 볼 수 있다.(필터링 가능)
  • Quotas
    • 악의적인 공격에 리소스를 과하게 사용하지 않도록 할당량이 있다.
    • 프로젝트 레벨에서 정해져 있음
    • Rate 할당량
      • 특정 시간이 지나면 리셋된다.(GKE는 각 프로젝트에 API에 대한 호출 할당량인 1000개가 100초마다 새로 리셋된다.)
    • Allocation 할당량
      • 프로젝트에서 가질 수 있는 리소스의 수를 제한 (예: 프로젝트당 VPC 5개 제한)
    • Google Support에 연락하여 할당량 조정 가능.