190 likes | 608 Views
Google App Engine Google 의 App 개발 / 호스팅 플랫폼. 김병곤 fharenheit@gmail.com. 20100524 v0.4. 소개. JBoss User Group 대표 모 통신사에서 분산 컴퓨팅 기반 개인화 시스템 구축 Process Designer – ETL, Input/Output, Mining Algorithm, 통계 … Apache Hadoop/Pig/HBase Apache Cassandra Distributed Cache Log Aggregator
E N D
Google App EngineGoogle의 App 개발/호스팅 플랫폼 김병곤fharenheit@gmail.com 20100524 v0.4
소개 • 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의 사용료는 항상 무료로 시작 • 무료 할당량 이상 사용시 비용 청구 • 한도 초과시 HTTP 403 or 리소스 할당 거부 or 경고 • GAE는 폭주률을 통해 과도한 리소스 폭주를 통제 고정 할당량 1일 할당량 http://code.google.com/intl/ko-KR/appengine/docs/quotas.html 6
Google App Engine의 사용료 • Google App Engine의 사용료는 리소스 사용량 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을이용한 개발 Demo 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%20Engine/?root=edward • 문의 Email • fharenheit@gmail.com • JBoss User Group 홈페이지 • http://cafe.naver.com/jbossug 18
Q & A Q & A 19