Jan 05, 2016
소개
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
우리의 서비스 개발 목표
3
Social Networking 기반 Life Stream Logging 서비스
4
우리의 고민 ?
어떻게 초기에 적은 비용으로 애플리케이션을 호스팅할 수 있을까 ?
장비에 대한 초기 투자 비용을 어떻게 줄일 수 있을까 ?
대용량 스토리지 및 트래픽을 어떻게 관리비용 부담을 줄이고 서비스할 수 있을까 ?이미지 1 장 100K * 1 인당 100 장 * 천만명의 사용자
= 97,656,250M = 95,367G = 93T
사용자가 늘어나는 경우 어떻게 투명하게 확장할 수 있을까 ?
5
Google App Engine 이란 ?
Google 이 제공하는 응용 프로그램 개발 및 호스팅 플랫폼
스토리지 /장비 /네트워크 등을 관리하지 않고도 호스팅 가능
Google 웹 사이트에서 사용하는 동일한 기술을 제공
개발자는 코드를 작성하여 배포하고 모니터링
Google 은 사용한 양 만큼만 비용을 청구장비 사용에 대한 기존의 호스팅 비용 청구 방식이 아닌스토리지 /네트워크 트래픽 /CPU/ 서비스에 대한 비용 청구 방식
6
Google App Engine 의 사용료
Google App Engine 의 사용료는 항상 무료로 시작
무료 할당량 이상 사용시 비용 청구한도 초과시 HTTP 403 or 리소스 할당 거부 or 경고GAE 는 폭주률을 통해 과도한 리소스 폭주를 통제
http://code.google.com/intl/ko-KR/appengine/docs/quotas.html
할당량 한도
개발자당 애플리케이션 수 3
애플리케이션당 저장용량 500MB
애플리케이션당 파일 수 1,000
파일당 크기 1MB
할당량 한도
하루 이메일 수 2,000
일일 입력 대역폭 10,000MB
일일 출력 대역폭 10,000MB
하루 CPU 메가사이클 수 200,000,000
하루 HTTP 요청 수 650,000
하루 데이터저장소 API 호출 수 2,500,000
하루 URLFetch API 호출 수 160,000
고정 할당량 1 일 할당량
7
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
8
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)
9
Google App Engine 의 개발 환경
Java 6 Virtual Machine
JSP/Servlet Standard, GWT완전하지 않지만 프레임워크도 사용할 수 있음
IDE : Eclipse, IntelliJ IDEA, NetBeans
Development Server 지원SDK 에 Jetty Web Container 내장
리모트 Application Deployment 지원
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
프레임워크 지원 ( 비공식 )
14
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
Google App Engine 을 이용한 개발
15
Demo
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
17
Google App Engine 의 제약사항
과연 기대하는 것 만큼 성능이 나올까 ?성능 때문에 많은 사람들이 사용을 꺼려한다 .
어느 정도 개발 환경의 유연성이 보장되는지 ?Google 에 제공하는 환경을 따라야 하므로 유연성 매우 부족API 가 다른 Framework 와 같이 사용함에 있어서 제약 많음
정말 비용을 줄여주는지 ?개발자는 리소스 사용을 줄이는 코드를 작성할 필요가 있다
CPU, Memory, Network Traffic, Storage
데이터에 대한 보안 및 관리는 어떻게 ?Google 은 우리가 생각하는 것만큼 보안을 유지해줄까 ?
Data Store 의 데이터의 2 차 가공은 ?
예제 및 발표자료는 ?
모든 자료는 ?네이버 개발자 홈 : http://dev.naver.com/projects/edward
Subversion– http://dev.naver.com/scm/viewvc.php/trunk/Google%20App
%20Engine/?root=edward
문의 Email [email protected]
JBoss User Group 홈페이지http://cafe.naver.com/jbossug
18
19
Q & A
Q & A