Google App Engine이란?

Download Report

Transcript Google App Engine이란?

JBoss User Group
Google App Engine
Google의 App 개발/호스팅 플랫폼
김병곤
[email protected]
20100524
소개

JBoss User Group 대표

모 통신사에서 분산 컴퓨팅 기반 개인화 시스템 구축
 Process Designer – ETL, Input/Output, Mining Algorithm, 통계…
 Apache Hadoop/Pig/HBase
 Apache Cassandra
 Distributed Cache
 Log Aggregator
 CEP(Complex Event Processing)
 Mining Algorithm – Association Rule, K-Means, CF, …

다수 책 집필 및 번역
 JBoss Application Server 5, EJB 2/3
 Oreilly RESTful Java 번역중
2
우리의 서비스 개발 목표
Social Networking 기반
Life Stream Logging 서비스
3
우리의 고민?



어떻게 초기에 적은 비용으로 애플리케이션을 호스팅할 수 있을
까?
장비에 대한 초기 투자 비용을 어떻게 줄일 수 있을까?
대용량 스토리지 및 트래픽을 어떻게 관리비용 부담을 줄이고
서비스할 수 있을까?
 이미지 1장 100K * 1인당 100장 * 천만명의 사용자
= 97,656,250M = 95,367G = 93T

사용자가 늘어나는 경우 어떻게 투명하게 확장할 수 있을까?
4
Google App Engine이란?

Google이 제공하는 응용 프로그램 개발 및 호스팅 플랫폼

스토리지/장비/네트워크 등을 관리하지 않고도 호스팅 가능

Google 웹 사이트에서 사용하는 동일한 기술을 제공

개발자는 코드를 작성하여 배포하고 모니터링

Google은 사용한 양 만큼만 비용을 청구
 장비 사용에 대한 기존의 호스팅 비용 청구 방식이 아닌
 스토리지/네트워크 트래픽/CPU/서비스에 대한 비용 청구 방식
5
Google App Engine의 사용료

Google App Engine의 사용료는 항상 무료로 시작
고정 할당량
1일 할당량
할당량
한도
할당량
한도
개발자당 애플리케이션 수
3
하루 이메일 수
2,000
애플리케이션당 저장용량
500MB
일일 입력 대역폭
10,000MB
애플리케이션당 파일 수
1,000
일일 출력 대역폭
10,000MB
파일당 크기
1MB
하루 CPU 메가사이클 수
200,000,000
하루 HTTP 요청 수
650,000
하루 데이터저장소 API 호출 수
2,500,000
하루 URLFetch API 호출 수
160,000
 무료 할당량 이상 사용시 비용 청구
 한도 초과시 HTTP 403 or 리소스 할당 거부 or 경고
 GAE는 폭주률을 통해 과도한 리소스 폭주를 통제
http://code.google.com/intl/ko-KR/appengine/docs/quotas.html
6
Google App Engine의 사용료

Google App Engine의 사용료는 리소스 사용량
리소스
단위
단위 비용
Outgoing Bandwidth
Giga Bytes
$0.12
Incoming Bandwidth
Giga Bytes
$0.10
CPU Time
CPU 시간
$0.10
Stored Data
월별 Giga Bytes
$0.15
Recipients Emailed
Recipients
$0.0001
7
Google App Engine에서 제공하는 서비스

JCache API를 이용한 Memcache

Remote API를 이용한 Data Store 접근

JavaMail을 이용한 Mail 송신 및 Mail 수신

XMPP 기반 메신저 서비스

Image 서비스를 이용한 resize, rotate, flip, crop

Task Queue를 이용한 백그라운드 처리

Google Account를 이용한 authentication 및 Email 접근

Blob Store

JSP/Servlet 지원

JDO/JPA 기반 Data Store

GWT(Google Web Toolkit)
8
Google App Engine의 개발 환경

Java 6 Virtual Machine

JSP/Servlet Standard, GWT
 완전하지 않지만 프레임워크도 사용할 수 있음

IDE : Eclipse, IntelliJ IDEA, NetBeans

Development Server 지원
 SDK에 Jetty Web Container 내장

리모트 Application Deployment 지원
9
Google App Engine 개발 환경 준비

Sun JDK 6

Eclipse Galileo

Eclipse Plugin
10
Google App Engine의 애플리케이션 생성하기

URL : <APPID>.appspot.com
11
Google App Engine으로 Deployment
12
Google App Engine의 Dashboard
13
프레임워크 지원(비공식)
Framework
Compatible Version
BlazeDS
3.2.0
DWR
2.0.5
Ehcache
1.6.0
Facelets
1.1.14
Log4J
Restlet
SiteMesh
2.4.2+
Spring MVC
2.5.6
Spring ORM
2.5.6
Tapestry
5.x
Struts 1,2
Tiles
2.0.7
14
Google App Engine을 이용한 개발
15
Google App Engine로 개발 시 고민해야 할 것들

Google App Engine의 개발 환경만으로는 개발하기 어렵다
 적당한 IoC Container를 사용해야 할 수 있다.

Data Store에 대한 적응이 필수다
 Data Store는 JDO/JPA 기반 ORM 모델이므로 RDBMS SQL 기반
코드 사용 불가(JDO/JPA QL 사용)

웹 사이트 개발 보다는 웹 서비스 개발로
 웹 사이트 개발에는 Google App Engine은 유연성이 떨어지므로
난관이 많다
 (REST 기반) 웹 서비스를 개발하는 것이 더 좋다!!
16
Google App Engine의 제약사항

과연 기대하는 것 만큼 성능이 나올까?
 성능 때문에 많은 사람들이 사용을 꺼려한다.

어느 정도 개발 환경의 유연성이 보장되는지?
 Google에 제공하는 환경을 따라야 하므로 유연성 매우 부족
 API가 다른 Framework와 같이 사용함에 있어서 제약 많음

정말 비용을 줄여주는지?
 개발자는 리소스 사용을 줄이는 코드를 작성할 필요가 있다
 CPU, Memory, Network Traffic, Storage

데이터에 대한 보안 및 관리는 어떻게?
 Google은 우리가 생각하는 것만큼 보안을 유지해줄까?

Data Store의 데이터의 2차 가공은?
17
예제 및 발표자료는?

모든 자료는?
 네이버 개발자 홈 : http://dev.naver.com/projects/edward
 Subversion
– http://dev.naver.com/scm/viewvc.php/trunk/Google%20App%20Engi
ne/?root=edward

문의 Email
 [email protected]

JBoss User Group 홈페이지
 http://cafe.naver.com/jbossug
18
Q&A
Q&A
19