2009년 9월 30일 수요일

Google App Engine(GAE)를 사용하자 -1부

Google App Engine (이하 GAE)가 무엇인가?

gae는 직접 개발한 web application을 구글의 인프라에서 운영이 가능하게 한다.
단지 application을 upload하는 것만으로
쉽게 만들고, 쉽게 유지보수하고, 특히 쉽게 트래픽과 데이터 스토리지를 확장할 수 있다.

개별적인 도메인(물론 자신가 보유한)을 사용할 수도 있고 appspot.com이라는 도메인의 서브도메인을 사용할 수도 있다.

또한 Java 런타임 환경을 제공해 줌으로 JVM을 포함한 Servlet 등을 사용할 수 있다.

GAE는 초기 구축 비용이 들지 않으며, 리소스(스토리지,대역폼)등은 기가바이트 단위로 측정된다.
그리고 자금한도내에서 최대 리소스의 양을 조절할 수 있따.

처음 GAE를 구축하게 되면 500M의 스토리지와 충분한 CPU자원이 할당이 되며 월 5백만페이지뷰를 커버할만한 대역폭이 주어지며 무료이다.
그리고 대역폭을 넘어서는 리소스에 대해서만 합당한 비용을 지불하면 된다.

어플리케이션의 환경

GAE는 많은 부하와 큰 데이터를 신뢰성있고 쉽게 운영이 가능하다.
GAE는 다음과 같은 특징을 가지고 있다.

  • 일반적인 web 기술을 전부 사용가능한 동적 web 서비스
  • 쿼리, 정렬, 트랜잭션이 가능한 저장공간
  • 자동으로 처리되는 확장과 로드밸런싱
  • Google 계정을 이용한 이메일 송수신을 위한 API
  • 완벽하게 로컬 PC에서 개발가능한 환경
  • 웹상의 요청이 아닌 작업이 처리가능한 task queue
  • 특정시간이나 일정한 주기로 스케줄되어져서 실행이 가능한 작업

샌드박스

application은 운영체제로의 접근이 제한된 보안 환경에서 작동된다. 이러한 제한은 GAE가 다수의 서버에서 웹 요청을 처리하는것과 요청이 있을때만 서비스를 기동시키는 것이 가능하게 한다. 샌드박스는 application을 하드웨어와 운영체제 및 서버의 위치에서 독립된 보안되고 안정적인 환경으로 구별지어 준다.

자바환경

일반적인 Java API의 환경에서 자바 개발이 가능하다. JSP를 포함한 표준 Servlet 환경을 사용할 수 있다.
Java runtime은 Java 6를 사용하며 GAE Java SDK는 Java 5 와 6에서의 개발을 지원한다.

기본적으로 개발환경은 JRE 6을 포함하고 있다. 샌드박스 환경에서의 제약은 JVM에서 구현된다는 것이다.
모든 app는 샌드박스의 제약을 벗어나지 않는 한도내에서  라이브러리나 JVM bytecode를 사용할 수 있다.
예를들어 소켓을 열거나 파일을 저장하려는 bytecode는 runtime exception이 발생한다.


댓글 없음:

댓글 쓰기