안녕하세요~ 장선진입니다.

지난번에 전자신문사 주최로 Google App Engine 세미나를 주최했었습니다.
자세한 내용은 다음과 같습니다.



여러분들께서 세미나때 사용한 PPT를 요청하셔서 이렇게 올려드립니다.
좋은 참고가 되었으면 좋겠네요~1











저작자 표시 비영리
신고

WRITTEN BY
jangsunjin
전세계 사람들의 삶의 질을 높일 수 있는 소프트웨어를 만들어 함께 나누는 것이 꿈입니다. 이 세상 그 무엇보다 사람이 가장 소중합니다.

받은 트랙백이 없고 , 댓글이 없습니다.
secret
안녕하세요~ 장선진입니다.

평소 구글앱엔진(Google App Engine) 등 클라우드 컴퓨팅(Cloud Computing)에 많은 관심을 가지고 있었는데, 얼마전에 KT에서 UCloud라는 IaaS(Infrastructure as a Service)형 클라우드 컴퓨팅 서비스를 내놓았습니다.

평소 PaaS(Platform as a Service)형 클라우드 컴퓨팅에 많은 관심을 가지고 있었지만, 최근 IaaS형 클라우드 컴퓨팅 서비스 역시 나름의 가치가 있고 Amazon의 S3를 하이브리드하게 연동하여 활용한 사례들을 보면서 클라우드 컴퓨팅 기술을 연합하여 활용하는 것이 큰 가치가 있다고 생각합니다.

IaaS형 클라우드 컴퓨팅의 한계는 기존의 웹 호스팅과 유사한 구조를 가지고 있다는 점입니다. 하지만 나름의 자유도가 높다는 측면이 있죠~
PaaS형 클라우드 컴퓨팅의 한계는 Platform에 의존적이어서 플랫폼에서 지원하지 않는 부분에 대한 한계를 절감하게 된다는 점이지만, 반대로 Google App Engine의 경우 워낙 중요한 서비스를 제공하기 때문에 이러한 서비스를 IaaS형 클라우드 컴퓨팅 서비스와 연계한다면 멋진 구조를 만들 수 있습니다.

KT ucloud biz 웹 사이트는 https://ucloudbiz.olleh.com 입니다.



깔끔한 웹 사이트를 넘어 클라우드 콘솔에 접속하면 다음과 같은 관리 및 주요 이벤트 확인을 할 수 있습니다.


우선 주요 이벤트를 잘 확인할 수 있다는 점이 마음에 듭니다.

VM을 선택하실때 Windows Server나 Linux Server를 선택하실 수 있습니다. 저는 평소 Linux를 많이 사용하므로 당근 Linux Server를 선택하였습니다.



자세한 서버상의 상태를 확인할 수 있습니다. 아직 설치한것이 없어서 사용량이 0%이군요~
지금부터 호스팅한 서버에 설치된 것들을 차근 차근 옮기려고 합니다.

자체 운영중인 SVN 및 Issue Tracker 등을 옮겨서 설치할 예정입니다.

특이한 점은 Port Forwarding을 통하여 포트를 개방하여야 한다는 점입니다. 실제로 해보니 거의 실시간으로 적용되구요~ VM 인스턴스 만드는데 2~3분정도밖에 걸리지 않아서 빠르게 이용할 수 있었습니다.

Ping Test를 해본 결과 속도도 제법 나옵니다.

시스템에 접근하려면 Linux 답게 SSH 터미널을 이용하면 됩니다. 저는 Putty를 이용하였습니다.


몇가지 시스템 관련된 명령어를 시험삼아 입력하여 보았습니다.
보시다시피 아주 깨끗한 상태입니다.

Cent OS이니 편하게 관리하면 될 것 같네요~

여러분들도 한번 IaaS 서비스를 이용해보시면 좋을 듯 합니다.
특히 해외의 PaaS형 클라우드 컴퓨팅 서비스의 경우 네트웍이 느린 문제가 있는데요~ 국내를 대상으로 한 서비스를 구축하신다면 나름 장점이 있을 것 같습니다.

그럼 참고하시기 바랍니다.
감사합니다.


저작자 표시 비영리
신고

WRITTEN BY
jangsunjin
전세계 사람들의 삶의 질을 높일 수 있는 소프트웨어를 만들어 함께 나누는 것이 꿈입니다. 이 세상 그 무엇보다 사람이 가장 소중합니다.

받은 트랙백이 없고 , 댓글  2개가 달렸습니다.
  1. 저는 예전에 CentOS에서 가상 서버를 사용하여 서비스를 운영한 적이 있습니다.
    Port Fowarding을 사용하였더니 속도에 문제가 있어서 나중에는 걷어내고 지금은 실서버를 사용하고 있습니다.

    KT uCloud CS도 Port Fowarding을 사용하는데 속도는 문제가 없나요?


    예전에 제가 구성한 환경은 다음과 같습니다.

    CentOS : 가상 머신은 VirtualBox를 사용하여 구성
    Ubuntu Server
  2. 선입견으로 국내 Cloud는 AWS나 GAE의 Cloud와 상당한 차이가 날것이라고 생각했습니다.
    포스팅을 보니 웹상에서 실시간으로 가상서버를 생성 및 설정 하는것이 AWS와 흡사하네요.

    해외서버에서 국내 Cloud상의 서버로 접속해도 속도 문제가 발생하지는 않나요?
    AWS와 GAE은 상당히 좋은편이라 안정적으로 사용중입니다.

    국내 Cloud는 어떤지 궁금하네요. 어떤가요?
secret
안녕하세요~ 장선진입니다.

최근 클라우드 컴퓨팅(Cloud Computing)에 대한 관심이 많이 늘어났습니다.
사실 저는 클라우드 컴퓨팅이란 용어보다는 유틸리티 컴퓨팅(Utility Computing)이라는 용어가 더 익숙합니다. 예전부터 SaaS(Software as a Service)와 함께 유틸리티 컴퓨팅의 동생벌되는 클라우드 컴퓨팅에 저 역시 많은 관심을 가지고 있었습니다.

특히 개인적인 차원에서 쉽게 접근하여 활용할 수 있는 Google App Engine에 관한 기술적인 관심도 많이 있었습니다.
최근 이러한 저의 생각들을 함께 공유할 수 있는 시간을 가졌습니다.

제2회 공개SW역량프라자 정기기술세미나(2010년 7월21일)에서 "Google App Engine의 이해"란 주제로 클라우드 컴퓨팅과 Google App Engine에 대한 생각들을 함께 나누었습니다. :-)

발표자료를 공유합니다. 
나름 고민하다가 처음 클라우드 컴퓨팅이란 개념을 접하시는 분들에게 클라우드 컴퓨팅이 필요한 이유부터 천천히 이야기를 시작해서 Google App Engine이 어떠한 역활들을 할 수 있는지 기술적인 부분까지 다루었습니다.

나중에 Google App Engine에 대한 테크니컬 세션을 가졌으면 좋겠네요~

Google App Engine의 이해
View more presentations from jangsunjin.


혹시 슬라이드 쉐어에서 보기 힘드신 분들을 위하여 PDF 파일을 첨부합니다. 


제 생각에는 아마도 발표자료의 흐름이 빠르기 때문에 보시기가 쉽지 않을 수 있습니다. 데브멘토에서 제 발표를 녹화하여 올려져 있습니다. 참고삼아 한번 보시는 것도 좋을 것 같습니다. 여튼 좋은 참고가 되셨으면 좋겠습니당~

혹시 보시면서 잘 모르시는 부분은 언제든지 글 남겨주세요~ :-)
저작자 표시 비영리
신고

WRITTEN BY
jangsunjin
전세계 사람들의 삶의 질을 높일 수 있는 소프트웨어를 만들어 함께 나누는 것이 꿈입니다. 이 세상 그 무엇보다 사람이 가장 소중합니다.

받은 트랙백이 없고 , 댓글 하나 달렸습니다.
  1. 구글 앱 엔진에 관신을 갖던 차에 많은 도움이 되었습니다. 감사합니다 ^_^
secret
최근 Google App Engine에 많은 관심을 가지고 이런 저런 테스트를 하고 있습니다.

Google App Engine for Java의 경우 이클립스 플러그인이 제공되기 때문에 쉽게 프로젝트를 생성하고 간편하게 테스트할 수 있습니다. GAE for Java용 이클립스 플러그인에 대한 자세한 정보는 http://code.google.com/appengine/docs/java/tools/eclipse.html 에서 확인할 수 있습니다.

프로젝트가 진행되면서 많은 라이브러리들이 필요할 경우에는 아시다시피 Maven을 사용하는 것이 효과적입니다. Maven은 여러모로 훌륭한 의존성 관리를 해주며, 이행종속관계에 따른 라이브러리 관리를 쉽게 해줍니다.

이러한 기능은 프로젝트 규모가 클수록, 어플리케이션이 복잡할수록 많은 효과를 발휘합니다. 이에 따라서 Maven을 사용할 수 있는 Google App Engine for Java 프로젝트를 구축하는 방법을 Step by Step으로 확인해 보겠습니다.


1. 이클립스에서 메이븐 프로젝트 생성
여러분의 이클립스에 이미 메이븐 플러그인이 설치되어 있다고 가정하겠습니다. 만약 아직 메이븐 플러그인이 설치되어 있지 않다면, Galileo 기준으로 Help >> Install New Software >> Add 에서 Location 정보에 http://m2eclipse.sonatype.org/update/ 를 넣은 후 설치하시기 바랍니다.

그러면 아래와 같이 Maven Project를 선택하여 새로운 메이븐 프로젝트를 만들 수 있습니다.


Use default Workspace location을 선택하시면, 현재 워크스페이스 디렉토리 아래에 메이븐 프로젝트가 생성됩니다. 만약 다른 위치에 메이븐 프로젝트를 생성하고 싶다면 Browse... 버튼을 클릭하셔서 위치를 변경하시면 됩니다.



2. Google App Engine for Java용 Archtype Catalog 추가
다음에는 Archtype 플러그인을 선택할 수 있는 화면이 나옵니다. 여기에 우리가 원하는 Google App Engine for Java 용 Archtype이 없으므로 Configure... 버튼을 클릭합니다.


그리면 다음과 같이 Archtype Catalog를 추가할 수 있는 화면이 나옵니다. Add Remove Catalog... 버튼을 클릭하신 후 Catalog File에 http://www.mvnsearch.org/maven2 를 추가한 후 간단한 설명을 Descrption에 넣습니다. 저의 경우 Maven Archtype for GAE/J 라고 넣었습니다.


자 이렇게 Archtype Catalog를 추가한 후에는 Catalog에 appengine-quickstart Archtype 이 나타납니다. 선택한 후 Next 버튼 누르세요~



3. 메이븐 프로젝트의 코디네이트(Coordinate) 입력

메이븐의 모든 아티팩트(Artiface)는 코디네이트를 가지고 있습니다. 메이븐을 잘 모르시는 분들을 위하여 조금 더 설명을 드리면, 메이븐으로 관리되는 모든 프로젝트는 Group Id, Artifact ID, Version, Type 등의 프로젝트를 유일하게 식별할 수 있는 값을 가지고 있으며, 이 값이 코디네이트라고 합니다.

자 저의 경우 최근 공개소프트웨어 공모전에서 Vision Software in Life 란 어플리케이션을 개발하고 있으므로, 아래와 같이 코디네이트를 정했습니다.

참고로 Properties에 appengine_home에는 미리 다운로드 받으신 Google App Engine for Java SDK가 위치한 경로를 넣어주시기 바랍니다. 만약 SDK를 다운로드 받지 않아셨다면 http://code.google.com/appengine/downloads.html에 가셔서 다운로드 받으시기 바랍니다.

자 Finish 버튼을 클릭하면 간단하게 메이븐을 활용한 Google App Engine for Java 프로젝트가 생성됩니다.



4. 패키징과 실행하기

Maven의 Archtype 플러그인이 훌륭하게 GAE/J 프로젝트를 생성해 주었네요 :-)


하지만, 에러가 하나 있군요~ 간단하게 Quick Fix 하실 수 있습니다.


그리고 Maven의 경우 J2SE-1.5 표준으로 Java SDK를 설정하기 때문에 현재 활용하고 계신 JDK로 Edit 버튼을 클릭하셔서 수정하실 수 있습니다. 필수는 아닙니다.



이 부분이 중요한데 Maven의 pom.xml만 있는게 아니고 앤트의 build.xml도 존재합니다.
Maven으로 Package하시고, Ant로 실행시키는 구조이기 때문입니다. 아까 입력한 appengine_home 프로퍼티는 sdk.dir의 location 값입니다. 만약 이 부분이 설정되어 있지 않다면, 간단하게 SDK의 경로를 입력하세요.


자 Package 해 볼까요 :-)


아마 Package 가 모두 성공하셨을 것입니다. Build도 간단하게 하실 수 있습니다. Ant Build... 선택합니다.


그리고 runserver를 선택하여 develpment server를 실행할 수 있도록 설정합니다.


그러면 다음과 같이 GAE/J가 실행된 내역을 확인할 수 있습니다. ;-)




5. Repository 추가하기

pom.xml에서 Repository를 하나 더 추가하기를 권장합니다. 바로 Google Maven Repository입니다. 필수는 아닙니다만, 나중에 Google 관련 Maven을 업데이트 하실 때 편할 것 같습니다.



자 이상으로 간략하게 Maven을 활용한 Google App Engine for Java 프로젝트를 생성하는 법에 관하여 살펴보았습니다. 많은 분들이 쉽게 Google App Engine for Java 를 활용하시는데 도움이 되었으면 좋겠습니다.

마지막으로 본 내용을 구성하면서 http://gae-j-maven.appspot.com/에 있는 내용을 많이 참고하였습니다.
감사합니다. ;-)
저작자 표시 비영리
신고

WRITTEN BY
jangsunjin
전세계 사람들의 삶의 질을 높일 수 있는 소프트웨어를 만들어 함께 나누는 것이 꿈입니다. 이 세상 그 무엇보다 사람이 가장 소중합니다.

받은 트랙백이 없고 , 댓글 하나 달렸습니다.
  1. 좋은 내용이네요... ^^;;
    음.그런데, maven plugin은 http://m2eclipse.sonatype.org/update/ 인것 같은데요.. 조금 착오가 있어신듯 합니다.
secret
Google App Engine for Java 용 이클립스 플러그인을 설치하는 방법에 관하여 알아보고자 합니다. 간단하게 Step by Step으로 살펴보겠습니다.

우선 먼저 Google App Engine for Java를 위한 이클립스 업데이트 URL을 알아야 합니다.
http://code.google.com/appengine/docs/java/gettingstarted/installing.html 에서 확인할 수 있습니다.



이클립스의 각 버전에 맞는 플러그인 업데이트 주소를 확인하실 수 있습니다. 여기에서는 이클립스 Galileo 버전을 중심으로 알아보겠습니다.


아래와 같이 우선 메뉴바에 있는 Help >> Install New Software를 선택합니다.



그럼 아래와 같이 Install 창이 나타납니다. 우선 처음 설치한다면 http://dl.google.com/eclipse/plugin/3.5 를 Work With: 텍스트 박스에 넣은 후 Add 버튼을 클릭합니다. 그럼 Add Site 다이얼로그 창이 나타나며, Name은 원하는 대로 정하셔서 넣으시면 됩니다. 본 예에서는 The Google Plugin for Eclipse라고 넣었습니다.



그럼 아래와 같이 Install 창이 나타납니다. 아래와 같이 모든 항목을 선택한 후 Next 버튼을 클릭합니다.



그러면 Install 창이 이어서 나오는데요, 앞에서 선택한 사항을 확인하는 창입니다. 맞다면 Next 버튼을 클릭합니다.



다음 Install 창에서는 소프트웨어 라이센스에 동의하는 절차가 진행됩니다. 당근 I accept the terms .... 을 선택하고 Next 버튼을 클릭합니다.



자 그럼 이클립스에서 백그라운드 모드로 플러그인을 인스톨하는 과정이 진행됩니다. 모든 인스톨이 완료된 후 Restart .. 하셔야 합니다. 이렇게 Restart 한 후에는 Toolbar 아래와 같은 아이콘들이 나타납니다.


첫번째 아이콘을 클릭하시면 새로운 GAE for Java 프로젝트를 생성할 수 있는 New Web Application Project가 나옵니다.



새롭게 작성한 Google App Engine for Java용 프로젝트를 자신의 GAE 계정에 배포하고 싶다면, 위의 아이콘 중에 마지막 아이콘을 클릭하면, 아래와 같은 창이 나타납니다. 만약 GAE에 계정이 없다면 http://code.google.com/appengine/에 가셔서 등록하시면 됩니다.


아울러 App Engine project setting... 를 클릭하면 App Engine에 배포될 어플리케이션 ID를 정할 수 있습니다. 만약 visionsoftwareinlife이 어플리케이션 ID라면 http://visionsoftwareinlife.appspot.com/ 에서 GAE에 배포된 어플리케이션을 확인할 수 있습니다.


이상으로 간단하게 GAE for Java용 이클립스 플러그인을 설치하는 방법과 배포하는 방법을 알아보았습니다.
쉽게 따라하실 수 있도록 Step by Step 형식으로 작성하였는데, 도움이 되셨는지 모르겠습니다. 하시면서 궁금한 점이 있으면 댓글 부탁드립니다.
감사합니다. :-)
저작자 표시 비영리
신고

WRITTEN BY
jangsunjin
전세계 사람들의 삶의 질을 높일 수 있는 소프트웨어를 만들어 함께 나누는 것이 꿈입니다. 이 세상 그 무엇보다 사람이 가장 소중합니다.

받은 트랙백이 없고 , 댓글  2개가 달렸습니다.
  1. 여기글보고 따라했는데 정말 잘됩니다. 감사합니다.^^
  2. 정말 감사합니다.
secret