Cloud/GCP

App Engine

달빛궁전- 2023. 2. 1. 16:30
📱

App engine 개념

App Engine은 GCP의 인프라를 이용해 필요한 웹 애플리케이션을 개발, 배포, 관리 할 수 있는 완전 관리형 서버리스 플랫폼

구글에서 개요에 작성하기로는 완전 관리형이라 하나 PaaS서비스임 (Platform as a Service) 왜나면 개발자가 GCP내에서 애플리케이션을 구축하고 배포할 수 있는 플랫폼만 제공해주기에 SaaS는 Gmail. Drive서비스라고 생각하면 이해하기 쉽다.

언어, 라이브러리, 프레임워크 중에서 선택하여 앱을 개발한 후 App Engine에서 프로비저닝 서버를 관리하고 필요에 따라 앱 인스턴스를 확장

App Engine 환경 선택 | App Engine 문서 | Google Cloud
주의: 앞으로 몇 개월에 걸쳐 Google은 콘텐츠를 보다 손쉽게 찾고 나머지 Google Cloud 제품과 더 잘 연동되도록 App Engine 문서 사이트를 재구성할 예정입니다. 제공되는 콘텐츠는 동일하지만, 이제 탐색 기능이 나머지 클라우드 제품과 일치하게 됩니다. 사이트를 탐색할 때 의견이나 궁금한 점이 있으면 의견 보내기를 클릭하세요.
https://cloud.google.com/appengine/docs/the-appengine-environments?hl=ko

App engine 서비스 관리

App Engine환경은 Standard environment, Flexible environment 두 가지로 구성 표준환경 (Standard)

Google App Engine 표준 환경 문서 | Google Cloud
App Engine 표준 환경은 Google의 인프라에서 실행되는 컨테이너 인스턴스를 기반으로 합니다. 컨테이너는 사용 가능한 여러 런타임 중 하나로 사전 구성됩니다. 표준 환경에서는 부하가 높고 데이터가 많아도 안정적으로 실행되는 애플리케이션을 간편하게 빌드하고 배포할 수 있습니다. 애플리케이션이 안전한 샌드박스 환경에서 실행되므로 표준 환경에서 요청을 여러 서버에 분산할 수 있으며 서버가 트래픽 수요를 충족하도록 확장됩니다.
https://cloud.google.com/appengine/docs/standard?hl=ko

가변환경 (Flexible)

Google App Engine 가변형 환경 문서 | Google Cloud
주의: 앞으로 몇 개월에 걸쳐 Google은 콘텐츠를 보다 손쉽게 찾고 나머지 Google Cloud 제품과 더 잘 연동되도록 App Engine 문서 사이트를 재구성할 예정입니다. 제공되는 콘텐츠는 동일하지만, 이제 탐색 기능이 나머지 클라우드 제품과 일치하게 됩니다. 사이트를 탐색할 때 의견이나 궁금한 점이 있으면 의견 보내기를 클릭하세요. App Engine은 개발자가 본연의 작업인 코드 작성에 집중할 수 있도록 합니다.
https://cloud.google.com/appengine/docs/flexible?hl=ko

환경설정에 대한 가이드

App Engine 환경 선택 | App Engine 문서 | Google Cloud
주의: 앞으로 몇 개월에 걸쳐 Google은 콘텐츠를 보다 손쉽게 찾고 나머지 Google Cloud 제품과 더 잘 연동되도록 App Engine 문서 사이트를 재구성할 예정입니다. 제공되는 콘텐츠는 동일하지만, 이제 탐색 기능이 나머지 클라우드 제품과 일치하게 됩니다. 사이트를 탐색할 때 의견이나 궁금한 점이 있으면 의견 보내기를 클릭하세요.
https://cloud.google.com/appengine/docs/the-appengine-environments?hl=ko

결론은 소스코드가 특정 언어+버전에 트래픽이 적다면 표준환경 어느정도 규모가 있거나, VM의 Docker내에서 실행된다면 가변환경 선택

App engine jobs관리

cron을 사용해 작업을 schedule화 하여 사용할 수 있음 현재는 Cloud Scheduler에 통합되어 있음

cron.yaml로 작업 예약 | Java 문서용 App Engine 가변형 환경 | Google Cloud
App Engine Cron Service를 사용하면 지정된 시간이나 주기적인 간격으로 작동하는 정기 예약 태스크를 구성할 수 있습니다. 이러한 태스크를 일반적으로 크론 작업 이라 합니다. 이러한 크론 작업은 App Engine Cron Service에 의해 자동으로 트리거됩니다. 예를 들어 크론 작업을 사용하여 일일 보고 이메일을 보내거나, 10분마다 캐시된 일부 데이터를 업데이트하거나, 한 시간마다 요약 정보를 업데이트할 수 있습니다.
https://cloud.google.com/appengine/docs/flexible/java/scheduling-jobs-with-cron-yaml?hl=ko#the_schedule_format

App engine 에서 Database 처리 방식

App Engine에서는 DB관련 아래와 같은 형식으로 연결을 하게됨 Cloud SQL Admin API를 사용설정 서비스 계정 ID를 생성 후 IAM권한을 설정 각 언어별로 설정 내역이 다르므로, 코드에 SQL연결 처리

표준환경 연결

App Engine 표준 환경에서 연결 | MySQL용 Cloud SQL | Google Cloud
이 페이지에는 App Engine 표준 환경에서 실행되는 서비스에서 Cloud SQL 인스턴스에 연결하는 방법에 대한 정보와 예시가 포함되어 있습니다. Cloud SQL은 클라우드에서 관계형 데이터베이스를 설정, 유지, 관리할 수 있는 완전 관리형 데이터베이스 서비스입니다. App Engine은 확장 가능한 웹 애플리케이션을 개발하고 호스팅하기 위한 완전 관리형 서버리스 플랫폼입니다.
https://cloud.google.com/sql/docs/mysql/connect-app-engine-standard?hl=ko

가변환경 연결

App Engine 가변형 환경에서 연결 | PostgreSQL용 Cloud SQL | Google Cloud
이 페이지에는 App Engine 가변형 환경에서 실행되는 서비스에서 Cloud SQL 인스턴스에 연결하는 방법에 대한 정보와 예시가 포함되어 있습니다. Cloud SQL은 클라우드에서 관계형 데이터베이스를 설정, 유지, 관리할 수 있는 완전 관리형 데이터베이스 서비스입니다. App Engine은 확장 가능한 웹 애플리케이션을 개발하고 호스팅하기 위한 완전 관리형 서버리스 플랫폼입니다.
https://cloud.google.com/sql/docs/postgres/connect-app-engine-flexible?hl=ko

Uploaded by N2T

'Cloud > GCP' 카테고리의 다른 글

Memorystore  (0) 2023.05.12
SQL  (0) 2023.05.12
Database  (0) 2023.05.12
Cloud RUN  (0) 2023.02.01
GKE  (0) 2023.02.01
Google Cloud Essentials Challenge Lab  (0) 2023.01.26
Compute Engine  (0) 2023.01.20