클라우드&서버/GCP

GCP 어플리케이션

JDLee 2022. 5. 31. 15:56

!! 해당 글은 GCP Google Cloud Fundamentals: Core Infrastructure 과정을 정리한 내용 입니다.

 

GCP Application

App Engine

  • 코드 실행에 필요한 하드웨어와 네트워크 인프라관리 서비스
  • 웹에 필요한 많은 서비스들이 내장
  • NoSQL 데이터베이스, 인메모리 캐시, 부하분산, Health check, 로깅, 사용자 인증 등
  • 수신 트래픽 양에 따라 앱을 자동으로 확장
  • 온디멘드 형식의 과금 구조
  • 워크로드가 변동하기 쉽거나 예측이 어려운 웹 앱 및 모바일 앱에 적합

GCP App Engine 표준 환경

  • 유연한 환경보다 배포가 쉽다
  • 세밀한 자동 스케일링이 가능
  • 일부 서비스의 프리티어가 있다.
  • 사용량이 적은 앱은 무료로 실행 할 수 있다.
  • 사용가능 런타임은 특정 버전의 Java, python, php, go 만 지원
  • 코드제한이 있어 샌드박스에서 코드를 실행
  • 하드웨어, OS 물리 서버에 위치 독립적인 소프트웨어 구성을 의미
  • 이러한 환경의 특징 때문에 앱을 세밀하게 규모를 조정 가능
  • 샌드박스의 특징
    • 앱은 로컬 파일 시스템에 쓸 수 없다.(데이터는 DB에 저장)
    • 앱이 수신하는 모든 요청은 60초의 timeout을 가짐
    • 3rd party 소프트웨어 설치 불가

GCP App Engine 유연한 환경

  • Compute Engine VM에서 Docker 컨테이너 내에서 실행
  • App Engine에서 VMd을 관리한다 Health Check, 복구, 중요 OS 업데이트 등
  • VM을 실행하는 지리적 조건은 사용자가 선택
  • 앱은 표준 런타임을 사용하여 데이터 스토어, Memchach, 작업대기열 등의 서비스에 엑세스 가능

    App Engien 표준 환경과 유연한 환경의 차이

  • 표준환경은 인스턴스를 신속하게 시작할 수 있지만 앱을 실행하는 인프라에 엑세스가 제한 된다.
  • 유연한 환경은 앱을 실행하는 VM에 SSH로 접속이 가능하고 로컬 디스크에 자료를 저장하거나, 3rd Party 앱을 설치하여 사용 가능,
  • 유연한 환경은 App Engine을 통하지 않고 네트워크 호출 가능
  • 표준 환경은 앱이 실행중이지 않는다면 과금되지 않는다.

    App Engine 과 K8s Engine의 차이

  • App Engine 표준 환경은 앱 배포 및 스케일링을 최대한 제어하고 싶을때 활용
  • k8s Engine에서는 앱소유자가 k8s의 유연성 활용가능
  • App Engien 유연한 환경은 위 둘 사이에 위치
  • App Engine 환경에서 컨테이너는 목표를 달성하는 수단으로 여김
  • k8s Engine에서 컨테이너는 구축의 기초

Cloud Endpoints

  • API를 쉽게 개시 하고 신뢰할 수 있는 개발자에게만 공개
  • 프록시를 사용하여 필요한 기능을 구현
  • API 콘솔을 사용하여 인터페이스에서 기능을 관리
  • 사용 상황을 모니텅링 및 기록
  • API 호출자와 최종 사용자를 파악하는 통일적인 방법
  • 앱에서 사용하는 언어와 클라이언트 기술을 가리지 않음

Apigee Edge

  • API 프록시 개발, 관리를 위한 플랫폼
  • 속도 제한, 할당, 분석 등 비즈니스 문제를 중심으로 서비스
  • 타사에 소프트웨어를 제공할때 주로 활용
  • GCP 외부 백엔드 서비스에도 대응을 위해 레거시 앱을 분해 할 때 활용
  • 모놀리식으로 구성된 앱을 서비스 단위로 분리하여 마이크로 서비스로 분해가능