API World for Mobile Developers

Google App Engine - One of PaaS Leader 본문

PaaS

Google App Engine - One of PaaS Leader

미니렉스 2012. 12. 3. 18:39

구글 앱 엔진 ( Google App Engine )

Google 애플리케이션 엔진은 가장 잘 알려진 플랫폼 서비스 중 하나입니다. 기본 런타임 환경뿐만 아니라, 시스템 관리 및 수백만 사용자에게 확장할 수 응용 프로그램 구축에 관련된 많은 시도를 최소할 수 있도록 되어 있습니다. 이 클러스터에 코드 배포는 물론 모니터링, 장애 복구, 자동 스케일링 및 로드 밸런싱 등의 기능이 포함되어 있습니다.

Google 애플리케이션 엔진은 원래 파이썬을 기반으로 런타임 환경을 지원하며, JAVA는 물론 Groovy, JRuby, Jython, Scalar, Clojure와 같은 다른 JVM 언어와 자바 가상 머신 (JVMs)에 대한 지원이 추가되었습니다. SDK는 개발자의 바탕 화면에 Google App Engine을 시뮬레이션하는 풀스펙 로컬 개발 환경을 포함하고 있습니다.

프로그래밍 언어에 대한 몇 가지 제한 사항이 있습니다. C와 Pyrex 모듈이 지원되지 않기 때문에 예를 들어, 파이썬 모듈은 순수한 파이썬을 사용해야 합니다. 마찬가지로, 자바 응용 프로그램은 자바 런타임 환경(JRE)의 서브셋만 사용할 수 있습니다 (JRE 클래스 화이트리스트 : 하단부 리소스 참조). 새로운 쓰레드를 만들 수는 없습니다.

다음은 Google App Engine에 간단하게 작성한 "Hello World" 응용 프로그램을 보여줍니다.

from google.appengine.ext import webapp

from google.appengine.ext.webapp.util import run_wsgi_app

class MainPage(webapp.RequestHandler):

  def get(self):

    self.response.headers['Content-Type'] = 'text/plain'

    self.response.out.write('Hello, World!')

application = webapp.WSGIApplication([('/', MainPage)])

def main():

  run_wsgi_app(application)

if __name__ == "__main__":

  main()

필요한 실제 코드는 응용 프로그램에 따라 분명히 달라집니다. 위에서 제시된 약간의 응용 프로그램 로직이 있는 파이썬 예제의 경우, 명령어는 간단하게 정의할 수 있습니다. 이 SDK에 제공되는 모듈중의 몇개를 로딩한 다음, 모든 HTTP는 루트 URL에 GET 요청 처리 MainPage라는 요청 처리기를 정의 할 필요가 있습니다. 구현 방법은 self.response 개체를 사용하여 HTTP 응답을 작성할 수 있습니다. 함수 run_wsgi_app()는 WSGIApplication instance 를 생성하고 Google App Engine의 CGI 환경에서 실행됩니다. 사용자의 요구사항을 적당한  경우 그게 다 거기에있다.

Google 애플리케이션 엔진 데이터 저장소는 정렬, 쿼리, 유연한 동시성 제어 기능을 갖는 트랜잭션을 지원 합니다.  그것은 몇 가지 추가 기능과 낮은 수준의 BigTable 데이터 스토리지 시스템의 상단에 설치되어있는 강한 일관성 있는 배포 데이터베이스입니다. Google 애플리케이션 엔진의 쿼리 언어(GQL )는 구조적 쿼리 언어 (SQL)과 비슷하지만, SELECT 문에는 몇 가지 중요한 기능 제한이 있습니다. 예를 들어, GQL은 의도적으로 JOIN 문을 지원하지 않아서 유일한 단일 테이블 쿼리만을 사용 할 수 있습니다.

또한 풍부한 API 세트를 제공하지만, 환경정보에서는 일부 제한이 있습니다. 앞에서 언급 한 데이터 저장소 기능뿐만 아니라, 다음과 같은 라이브러리 함수들도 있습니다 :
  • 인증 : 응용 프로그램은 사용자 인증 방법을 Google 계정으로 사용할 수 있습니다. 그것은 Google  계정으로 직접 Sign-in 할 수 있고, 사용자가 인증 된 후에는 이메일 주소 및 사용자 이름에 접근하여 사용이 가능합니다. OpenID 사용자는 어떤 OpenID 제공 업체에서든지 ID를 만들고 Google 애플리케이션 엔진 응용 프로그램에 인증할 동일한 ID를 사용할 수 있습니다.
  • Memcached : Memcached 서비스는 응용 프로그램에게 여러 인스턴스로 액세스 할 수있는 메모리 기반 Key/Value 캐시를 제공합니다. 그것은 지속성과 트랜잭션 기능이 필요치 않은 빠른 액세스를 위한 데이터 저장소인 로컬 캐시 같은 임시 데이터에 유용합니다.
  • 작업 예약 : 매일 또는 매 시간마다 처럼 일정 주기에 실행되는 작업 예약을 지원하는 Cron 서비스가 지원됩니다. 응용 프로그램은 심지어는 큐 자체에 추가 작업을 실행할 수 있습니다. 요청을 처리하는 동안 예를 들어, 백그라운드 작업을 실행할 수 있습니다.


원본출처 : 

Choose the best PaaS cloud for your needs

Entry-level guidance to selecting a cloud platform from a diversity of choices


Comments