티스토리 뷰
누군가에 의해 촉발(?)된 google app engine 에 대한 관심을 내가 아는 지식의 범위내에서 정리를 좀 해보고자 한다.
기존의 방식
일단 우리가 기본적으로 게시판이 있는 site 하나를 운영한다고 생각해보자. site 가 운영(run) 되는 server 는 기본적으로 MySQL 같은 DBMS 가 깔것이며, php script engine(interpreter) 등을 돌리면서 apache 같은 http server 를 띄울 것이다. 여기서 user 는 apache server 를 통해서 우리의 web page 에 접근하게 된다. 이 때 동시 접속자를 처리하는 능력은 하드웨어 성능과 함께 apache server 의 처리 능력에 달려있다. 그렇기 때문에 만약 게시판의 인기가 폭발하게 된다면 우리는 많은 사용자의 request 를 처리하기 위하여 apache web server 를 여러개 띄우고 특정 domain 으로 접속해서 들어오는 user 들의 traffic 을 분산시켜 줄 또 하나의 server 를 띄워서 traffic 분산을 위한 처리를 해 줘야 할 것이다. 그리고 게시판의 글들이 많아짐으로 인하여 MySQL 의 용량을 증가시켜 주는 등의 작업을 해줘야 할 지도 모른다.
기존의 방식
일단 우리가 기본적으로 게시판이 있는 site 하나를 운영한다고 생각해보자. site 가 운영(run) 되는 server 는 기본적으로 MySQL 같은 DBMS 가 깔것이며, php script engine(interpreter) 등을 돌리면서 apache 같은 http server 를 띄울 것이다. 여기서 user 는 apache server 를 통해서 우리의 web page 에 접근하게 된다. 이 때 동시 접속자를 처리하는 능력은 하드웨어 성능과 함께 apache server 의 처리 능력에 달려있다. 그렇기 때문에 만약 게시판의 인기가 폭발하게 된다면 우리는 많은 사용자의 request 를 처리하기 위하여 apache web server 를 여러개 띄우고 특정 domain 으로 접속해서 들어오는 user 들의 traffic 을 분산시켜 줄 또 하나의 server 를 띄워서 traffic 분산을 위한 처리를 해 줘야 할 것이다. 그리고 게시판의 글들이 많아짐으로 인하여 MySQL 의 용량을 증가시켜 주는 등의 작업을 해줘야 할 지도 모른다.
google app engine
google app engine 은 이부분을 자신들이 해 주겠다고 하는 것이다.그러니 너희들은 더이상 우리는 apache 같은 web server 를 돌리지 않아도 되며, 이부분에 해당하는 것들을 google 이 service 해 주겠다는 것이다. 그러니 너희들은 CGI program 같은 python 이나 php program 등이나 만들어서 google 의 platform 에 올리라는 것이다. 이 것이 google app engine 이 하는 일이다.
그럼 이 상황에서 궁금증은 당연히 어떻게 google 이 제공하는 web server 를 이용해서 내가 만든 python program(application) 을 돌리게 할 것이며, 내가 만든 program 이 google 이 제공하는 database 를 사용할 수 있게 하는 가이다.
sample codes
모든 것들은 실제 그 형체를 보게 되면 이해가 빠를 수 있다. 아래 sample code 들이 있다. 참고하자.
http://code.google.com/p/google-app-engine-samples/
그리고 실제로 google app engine 으로 만들어진 site 들도 아래에 소개 되어 있다.
http://www.blogsdna.com/1232/top-10-best-web-application-hosted-on-google-app-engine.htm
Database
일단 database 부분은 좀 다르다. 보통 MySQL 같은 RDBMS(relational DBMS)를 많이 쓰지만 google 이 제공하는 DB 는 BigTable 이라 부르는 non-relational database 이다. 그러므로 우리가 기존에 사용하던 게시판 같은 것들을 그대로 사용할 수 없으며 기존의 DBMS 관련 table 이나 SQL 들을 Google App Engine의 datastore 용으로 수정해야만 한다. 이런한 porting 관련 사항들은 http://en.wikipedia.org/wiki/Google_App_Engine 의 Portability concerns 를 참고하자.
Web server
어찌되었거나 우리가 만든 app 은 web을 통해서 누군가에 의해 실행되어져야 한다. 프로그램은 어떤 경우에도 실행을 하라는 명령(command) 가 주어진다.(그것이 어떤 모양을 갖던지.) web 의 application 이라고 하는 것들, cgi 같은 것들은 그것이 특정 url 에 대한 접근으로 이루어진다. 다시 말하면 특정 url 에 접근하는 것이 곳 그것에 대한 실행으로 이루어지는 것이다.(물론 이것은 web server 의 특성에 따라 다를 수 있겠지만 일반적인 경우는 그렇다.)
마찬가지로 google app engine 도 그런 url 을 가져야 하며, 그 url 을 통해서 내가 google 에 upload 한 program 이 실행되어져야 한다. 그 과정이 deploy라고 할 수 있다. 일단 google 계정에 접근해서 create an application 을 하게 되는데, 이때 url 이 결정된다. 그리고 deploy 를 하게 되면 내 app 이 upload 가 되고, 이 url 과 연결되게 되는 것이다.(실제로는 web server 로 접근하게 되면, app.yaml 설정파일을 보고 관련 application 으로 mapping 시켜 주는 것이다.)
deploy 과정은 아래 경로에서 "App Engine 에 디플로이(deploy)하기" 부분을 참고하자.(http://namoda.springnote.com/pages/7360063)
사용
그러면 이제 app engine 을 가지고 무엇을 할 지 확실 해 졌다. 아무런 program 이든 내가 24시간 원하는 순간에 사용하고 싶은 것을 만들어서 올리면 될 것이다. 물론 python 이나 java 로 만들어야 겠지만 ~ ^^ 참고로 얘기하자면, 특정 url 에 접근했을 때 보여지게 될 page 를 제작하는 것이 python으로 쉽지않을 것이라 여겨진다. 이런 것을 쉽게 하기 위한 framework 들이 이미 많이 존재하고 있는데, google app engine 에서 기본적으로 webApp 을 제공한다.
가격
이것으로 상용서비스를 사용할 수도 있으나, 일정량의 트래픽은 무료로 제공되지만 그 이후에는 추가로 비용이 들게된다. 어느정도까지 무료인가를 보면, 1GB 의 storage 용량과 한달에 100만 page view 를 제공한다고 한다.(http://code.google.com/appengine/kb/billing.html#freequota)
이 이상이라면 돈을 지불해야 한다.(http://code.google.com/appengine/docs/quotas.html#Resources)
amazon 보다 싸다고 외치고 있는데, 어느정도 싼지는 잘 모르겠다.
PaaS
이런 서비스가 Cloud Computing 의 일종이라고 한다. Other Reference를 참고하자.
Other References
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 샤워기전
- 녹색농원
- 미스터피자주문
- 인공눈
- icon program
- 인테리어
- 과학
- 상식
- network error
- 스타치
- 칠오름
- 보드고글
- icon tool
- 그림편집
- 인공안구
- sudachi
- 의학
- 대일농장
- 영귤
- 영귤차
- breakpoint
- 제주영귤
- 제주녹색농원
- 편집프로그램
- 명언
- 늙기
- 데크에 바인딩묶기
- 고강도
- 무릎마사지
- 칠오름농장
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함