구글 앱 엔진
Google App Engine| 개발자 | 구글 |
|---|---|
| 초기 릴리즈 | 2008년 4월 7일, 전([1] |
| 유형 | 서비스로서의 플랫폼 |
| 웹 사이트 | cloud |
Google App Engine(종종 GAE 또는 단순히 App Engine이라고도 함)은 Google 관리 데이터 센터에서 웹 애플리케이션을 개발하고 호스팅하기 위한 서비스로서의 클라우드 컴퓨팅 플랫폼입니다.애플리케이션은 샌드박스화되어 여러 [2]서버에서 실행됩니다.App Engine은 웹 응용 프로그램에 대한 자동 확장을 제공합니다. 응용 프로그램에 대한 요청 수가 증가함에 따라 App Engine은 자동으로 더 많은 리소스를 웹 응용 프로그램에 할당하여 추가 [3]수요를 처리합니다.
Google App Engine은 주로 Go, PHP, Java, Python, Node.js, .NET 및 Ruby 애플리케이션을 지원하지만 "커스텀 런타임"[4]을 통해 다른 언어도 지원할 수 있습니다.이 서비스는 사용된 리소스 중 일정 수준까지 무료이며, 표준 환경에서만 사용 가능하며 유연한 환경에서는 사용할 수 없습니다.애플리케이션에 [5]필요한 추가 스토리지, 대역폭 또는 인스턴스 시간에 대해 요금이 부과됩니다.2008년 4월에 프리뷰 버전으로 발매되어 2011년 9월에 발매되었습니다.
지원되는 기능/제한사항
런타임 및 프레임워크
Google App Engine은 주로 Go, PHP, Java, Python, Node.js, .NET 및 Ruby 애플리케이션을 지원하지만 "커스텀 런타임"[4]을 통해 다른 언어도 지원할 수 있습니다.
Google App Engine에서 실행되는 Python의 웹 프레임워크에는 Django, CherryPy, 피라미드, 플라스크, web2py,[6] webapp2가 포함되며,[7] 구글이 작성한 커스텀 웹 앱 프레임워크 및 출시 이후 등장한 플랫폼용으로 특별히 설계된 다른 몇 가지 프레임워크도 포함됩니다.CGI 어댑터를 사용하여 WSGI를 지원하는 Python 프레임워크는 응용 프로그램을 만드는 데 사용할 수 있습니다.이 프레임워크는 개발된 응용 프로그램으로 업로드할 수 있습니다.순수 Python으로 작성된 서드파티 라이브러리도 업로드 [8][9]할 수 있습니다.
Google App Engine은 많은 Java 표준 및 프레임워크를 지원합니다.오픈 소스 Jetty Web Server를 [10]사용하는 Servlet 2.5 테크놀로지와 JSP 등의 테크놀로지가 핵심입니다.JavaServer Faces는 몇 가지 회피책으로 동작합니다.Beta의 App Engine Standard Java의 새로운 릴리스는 Java8, Servlet 3.1 및 Jetty9을 지원합니다.
통합 데이터베이스인 Google Cloud Datastore는 프로그래머에게 익숙하지 않을 수 있지만 JPA, JDO 및 간단한 하위 레벨 [11]API를 통해 액세스 및 지원됩니다.Objectify,[12][14] Slim3[13], Jello 프레임워크 등 데이터를 모델링하고 데이터베이스에 매핑하기 위해 사용할 수 있는 대체 라이브러리와 프레임워크가 몇 가지 있습니다.
Spring Framework는 GAE와 연동됩니다.단, Spring Security 모듈(사용하는 경우)에는 회피책이 필요합니다.Apache Struts 1이 지원되며 Struts 2는 [15]회피책과 함께 실행됩니다.
Django 웹 프레임워크 및 이 프레임워크에서 실행 중인 애플리케이션은 App Engine에서 수정하여 사용할 수 있습니다.Django-nonrel은[16] Django가 비관계형 데이터베이스로 작업할 수 있도록 하는 것을 목표로 하고 있으며, 이 프로젝트에는 App [17]Engine 지원이 포함되어 있습니다.
신뢰성과 지원
청구된 모든 App Engine 애플리케이션에는 99.95%의 가동 [18]시간 SLA가 있습니다.
App Engine은 다운타임 없이 여러 데이터 센터 중단을 유지할 수 있도록 설계되었습니다.다운타임에 대한 이러한 복원력은 고레플리케이션 데이터스토어의 [19]1년간 다운타임이 0% 발생했다는 통계를 통해 알 수 있습니다.
프리미어 [20]어카운트의 일부로서 Google 엔지니어의 유료 지원이 제공됩니다.
일괄 다운로드
SDK 버전 1.2.2는 [21]Python을 사용한 데이터 대량 다운로드에 대한 지원을 추가합니다.오픈 소스 Python 프로젝트 gabar,[22] accessocket [23]및 gawsh는[24] 사용자가 App Engine 데이터를 다운로드하고 백업할 수 있도록 합니다.Java를 이용하여 GAE에서 대량으로 데이터를 다운로드하는 방법은 현재 존재하지 않습니다.
제약 사항
- 개발자는 App Engine의 파일 시스템에 대한 읽기 전용 액세스 권한을 가집니다.응용 프로그램은 개 파일 [25]저장소와 같은 가상 파일 시스템만 사용할 수 있습니다.
- App Engine은 HTTP 요청에서 호출된 코드만 실행할 수 있습니다(예약된 백그라운드 작업에서는 HTTP 요청을 직접 호출할 수 있음).
- 사용자는 임의의 Python 모듈을 업로드 할 수 있지만 순수 Python 모듈일 경우에만 C 및 Pyrex 모듈은 지원되지 않습니다.
- Java 응용 프로그램은 JRE Standard [26]Edition의 일부 클래스(JRE Class White List)만 사용할 수 있습니다.App Engine Standard Java8 런타임에는 이 제한이 없습니다.
- 요구에 응답하기 위해 서버에서 시작된 프로세스는 60초를 초과할 수 없습니다(1.4.0 릴리스에서는 이 제한은 백그라운드 작업에 적용되지 않습니다).
- 스틱 세션(세션 어피니티)은 지원되지 않습니다.시리얼라이즈되는 데이터의 양과 세션시리얼라이제이션 시간의 제한을 포함한 복제된 세션만 지원됩니다.
주요 차이점
다른 애플리케이션 호스팅과의 차이점
Amazon EC2와 같은 다른 확장 가능한 호스팅 서비스에 비해 App Engine은 확장 가능한 애플리케이션을 쉽게 쓸 수 있도록 더 많은 인프라를 제공하지만 해당 인프라에 맞게 설계된 제한된 범위의 애플리케이션만 실행할 수 있습니다.
App Engine의 인프라는 애플리케이션 구축에 따른 시스템 관리 및 개발 과제를 대부분 제거하여 초당 수백 건의 요청 수를 [27]초과하여 확장할 수 있습니다.Google은 필요에 따라 코드를 클러스터에 배포하고, 모니터링, 장애 조치 및 애플리케이션 인스턴스를 실행합니다.
다른 서비스에서는 거의 모든 *NIX 호환 소프트웨어를 설치하고 구성할 수 있지만 App Engine에서는 개발자가 지원되는 언어, API 및 프레임워크만 사용해야 합니다.현재 API를 사용하면 문서 지향 Google 클라우드 데이터스토어 데이터베이스에서 데이터 저장 및 검색, HTTP 요청 작성, 전자 메일 전송, 이미지 조작 및 캐싱이 가능합니다.관계형 MySQL 호환 데이터베이스 [29]백엔드가 필요한 App Engine 응용 프로그램에 Google Cloud[28] SQL을 사용할 수 있습니다.
일일 및 분당 쿼터는 대역폭과 CPU 사용률, 서비스 요청 수, 동시 요청 수 및 다양한 API에 대한 호출을 제한하며, 60초 이상 걸리거나 32MB 이상의 데이터를 반환할 경우 개별 요청은 종료됩니다.
SQL과 GQL의 차이점
Google App Engine의 통합 Google 클라우드 데이터스토어 데이터베이스에는 "GQL"(Google 쿼리 언어)이라는 SQL과 유사한 구문이 있습니다.GQL은 Join [30]문을 지원하지 않습니다.대신, 1 대 다 및 다 대 다의 관계는 다음과 같이 실행할 수 있습니다.ReferenceProperty()를 클릭합니다.[31]
Google Firestore는 Google Cloud Datastore의 후속 제품으로 GQL을 저장된 개체를 문서 모음으로 처리하는 문서 기반 쿼리 방식으로 대체합니다.
휴대성에 관한 우려
개발자들은 애플리케이션들이 앱 엔진에서 이식되지 않을 것을 우려하고 있으며, 이 기술에 [32]갇히는 것을 두려워하고 있다.이에 대응하여 앱 엔진, 특히 데이터스토어의 다양한 독점/폐쇄 API에 대해 오픈 소스 백엔드를 만드는 프로젝트가 다수 있습니다.AppScale, CapeDwarf 및 태풍AE는[33] 오픈 소스 노력의 일부입니다.
AppScale은 수정되지 않은 Google App Engine 애플리케이션을 널리 사용되는 퍼블릭 및 프라이빗 클라우드 시스템과 사내 [34]클러스터에 자동으로 배포하고 확장합니다.AppScale은 EC2, Google Compute Engine, Softlayer, Azure 및 기타 클라우드 벤더에서 Python, Java, PHP 및 Go 애플리케이션을 실행할 수 있습니다.
TypoinAE는[33] Linux 머신을 지원하는 모든 클라우드에서 Python App Engine 애플리케이션을 실행할 수 있습니다.
Web2py 웹 프레임워크는 SQL 데이터베이스와 Google App Engine 간의 마이그레이션을 제공하지만 트랜잭션 및 네임스페이스와 같은 [35]몇 가지 App Engine 관련 기능을 지원하지 않습니다.
Kubernetes는 오픈 소스(예: Docker) 컨테이너형 애플리케이션을 Amazon Web Services, Microsoft Azure 등 다양한 유형의 인프라에서 실행할 수 있도록 인프라를 추상화하기 위해 Google에 의해 개발된 오픈 소스 작업 제어 시스템입니다.이것은 휴대성 문제에 대한 Google의 답변 중 하나입니다.
백엔드
구글 I/O 2011에서 구글은 앱 엔진 백엔드를 발표했는데, 이 백엔드는 연속 실행이 가능하고 메모리를 [36][37]더 많이 소비합니다.모듈 [38]API를 위해 백엔드 API는 2014년 3월 13일부로 폐지되었습니다.
구글 클라우드 SQL
2011년 10월 Google은 JDBC 및 DB-API를 [39]지원하는 제로 유지 관리 SQL 데이터베이스를 공개했습니다.이 서비스를 통해 App Engine 응용 프로그램에서 관계형 데이터베이스를 생성, 구성 및 사용할 수 있습니다.Google Cloud SQL은 MySQL 8.0, 5.7 및 5.[40]6을 지원합니다.
사용 할당량
Google App Engine을 시작하려면 Google 계정이 필요하며, 계정을 통해 개발자는 최대 25개의 무료 응용 프로그램과 무제한 수의 유료 [41]응용 프로그램을 등록할 수 있습니다.
Google App Engine은 무료 응용 프로그램의 사용 할당량을 정의합니다.이러한 할당량 연장을 요청할 수 있으며 애플리케이션 작성자는 추가 리소스에 대해 [42]비용을 지불할 수 있습니다.
「 」를 참조해 주세요.
레퍼런스
- ^ "Introducing Google App Engine + our new blog". Google App Engine Blog. 7 April 2008. Retrieved 3 December 2019.
- ^ "Python Runtime Environment - Google App Engine - Google Code". 1999-02-22. Retrieved 2012-02-14.
- ^ Sanderson, Dan (2009). Programming Google App Engine: Build and Run Scalable Web Apps on Google's Infrastructure. O'Reilly Media. ISBN 978-0-596-52272-8.
- ^ a b "Google App Engine Documentation App Engine Documentation". Google Cloud. Retrieved 3 December 2019.
- ^ "Quotas - Google App Engine - Google Code". 1999-02-22. Retrieved 2012-02-14.
- ^ "Welcome to webapp2! — webapp2 v2.5.1 documentation". Webapp-improved.appspot.com. Retrieved 2012-02-14.
- ^ "AppEngineFrameworks - tipfy - The almighty little framework for Google App Engine - Google Project Hosting". Retrieved 2012-02-14.
- ^ "What Is Google App Engine? - Google App Engine - Google Code". 1999-02-22. Retrieved 2012-02-14.
- ^ "webapp Overview - Google App Engine - Google Code". 1999-02-22. Retrieved 2012-02-14.
- ^ "Google Chose Jetty for App Engine". Infoq.com. 2012-07-13. Retrieved 2012-07-17.
- ^ "Google App Engine Datastore low-level API".
- ^ "Objectify library".
- ^ "Slim3 framework".
- ^ "Jello Framework".
- ^ "WillItPlayInJava - googleappengine - Lists the level of compatibility of various Java technologies and App Engine - Google App Engine - Google Project Hosting". Retrieved 2012-02-14.
- ^ "Django-nonrel - NoSQL support for Django". All Buttons Pressed. 2010-02-04. Retrieved 2012-07-17.
- ^ "djangoappengine - Django App Engine backends (DB, email, etc.)". All Buttons Pressed. Retrieved 2012-07-17.
- ^ "App Engine Service Level Agreement - Google App Engine - Google Code". 1999-02-22. Retrieved 2012-02-14.
- ^ "Google App Engine Blog: Happy Birthday High Replication Datastore: 1 year, 100,000 apps, 0% downtime". Googleappengine.blogspot.com. 2012-01-05. Retrieved 2012-02-14.
- ^ "Premier Accounts - Google App Engine - Google Code". 1999-02-22. Retrieved 2012-02-14.
- ^ "Uploading and Downloading Data - Google App Engine - Google Code". 1999-02-22. Retrieved 2012-02-14.
- ^ aral. "aral/gaebar". GitHub. Retrieved 2012-02-14.
- ^ "approcket - Live synchronization between AppEngine and MySQL - Google Project Hosting". Retrieved 2012-02-14.
- ^ "gawsh - Google Apps Web Service Helpers - Google Project Hosting". Retrieved 2012-02-14.
- ^ "gae-filestore - Simple Virtual File System on Google App Engine DataStore - Google Project Hosting". Retrieved 2012-02-14.
- ^ "The JRE Class White List - Google App Engine - Google Developers". 1999-02-22. Retrieved 2013-06-14.
- ^ "Python Runtime Environment - Google App Engine". 2009-11-10. Retrieved 2009-11-10.
- ^ "Google Cloud SQL Databases - Cloud SQL - Google Cloud Platform". Google Cloud Platform.
- ^ "Using Google Cloud SQL - App Engine standard environment for Java - Google Cloud Platform". Google Cloud Platform.
- ^ Google Developers (7 April 2008). "Campfire One: Introducing Google App Engine (pt. 3)" – via YouTube.
{{cite web}}:last=범용명(도움말)이 있습니다. - ^ "Modeling Entity Relationships - Google App Engine — Google Developers". 2012-06-26. Retrieved 2012-07-17.
- ^ Gallagher, Sean (2008-04-09). "Analysis: Google App Engine alluring, will be hard to escape". Ars Technica. Retrieved 2012-07-17.
- ^ a b "typhoonae - Typhoon App Engine - Google Project Hosting". Retrieved 2012-07-17.
- ^ AppScale은 Google App Engine과 동등한 오픈 소스 백업으로 출시됩니다.TechCrunch(2013-06-24)2013-09-18에 회수.
- ^ [1] 2010년 2월 20일 Wayback Machine에서 아카이브 완료
- ^ Google I/O 2011: YouTube에서 앱 엔진 백엔드
- ^ "Backends Python API Overview - App Engine standard environment for Python - Google Cloud Platform". Google Cloud Platform.
- ^ "Backends Python API Overview - App Engine standard environment for Python - Google Cloud Platform". Google Cloud Platform.
- ^ "Google Cloud SQL: your database in the cloud - The official Google Code blog". 6 October 2011.
- ^ "Cloud SQL Features - Cloud SQL Documentation - Google Cloud Platform". Google Cloud Platform.
- ^ "Google App Engine General Questions". Google Developers. Retrieved 2015-06-18.
- ^ "Understanding Application Quotas with Google App Engine". Retrieved 2010-04-16.
참고 문헌
- Sanderson, Dan (October 26, 2012), Programming Google App Engine (2nd ed.), O'Reilly Media, p. 536, ISBN 978-1449398262
- de Jonge, Adriaan (October 31, 2011), Essential App Engine: Building High-Performance Java Apps with Google App Engine (1st ed.), Addison-Wesley Professional, p. 304, ISBN 978-0-321-74263-6
- Guermeur, Daniel; Unruh, Amy (November 24, 2010), Google App Engine Java and GWT Application Development (1st ed.), Packt Publishing, p. 480, ISBN 978-1-84969-044-7
- Roche, Kyle; Douglas, Jeff (December 31, 2009), Beginning Java Google App Engine (1st ed.), Apress, p. 375, ISBN 978-1-4302-2553-9
- Sanderson, Dan (November 23, 2009), Programming Google App Engine (1st ed.), O'Reilly Media, p. 400, ISBN 978-0-596-52272-8
- Severance, Charles (May 22, 2009), Using Google App Engine (1st ed.), O'Reilly Media, p. 262, ISBN 978-0-596-80069-7
- Ciurana, Eugene (February 2, 2009), Developing with Google App Engine (1st ed.), Apress, p. 164, ISBN 978-1-4302-1831-9
외부 링크
- 공식 마케팅 페이지
- 공식 웹사이트
- Google 클라우드 플랫폼 공식 블로그
- 릴리스 노트
- Google App Engine - Google 인프라에서 웹 애플리케이션을 실행하세요.Stanford University의 Google 엔지니어 Guido van Rossum의 기술 토크입니다.(비디오 아카이브가 필요)
- Google App Engine을 채택의 이점
- Google App Engine에서 외부 데이터베이스 사용
- 지원되는 Java 프레임워크 및 라이브러리
- Web2py book - 온라인 문서 - Google App Engine 도입 레시피
- Google Cloud SQL 샘플 프로젝트
- Google Cloud는 node.js를 지원합니다.
- Appmd: Python 개발 샘플 프로젝트.앱 엔진/장고/구글 폐쇄/엔드포인트/재료 설계