클라우드&서버/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 외부 백엔드 서비스에도 대응을 위해 레거시 앱을 분해 할 때 활용
- 모놀리식으로 구성된 앱을 서비스 단위로 분리하여 마이크로 서비스로 분해가능