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