본문 바로가기

Node.js

Node.js 무료웹호스팅 dotcloud

Node.js 를 제공해 주는 무료웹호스팅을 이리저리 찾아보다가 mongodb 까지 지원해 준다는 말에 바로 해보았습니다. 상당히 긱(geek)스러운 면이 있어서 더욱 좋더군요.ㅎ

- ubuntu에서 진행하였습니다. (osx의경우는 리눅스와 비슷합니다. 윈도우에서 할경우 bash가 필요하므로 시그윈를 설치하시고 해보시기 바랍니다.)

- dotclud 는 아직 베타 버전입니다. 서비스가 불안정할수도 있습니다. 또한 설치 내용(하단의 포스팅내용)이 수시로 바뀌므로 버전을 잘 확인해 보시고 참고하시기 바랍니다.

-포스팅이 상당히 깁니다...



1. 먼저 www.dotcloud.com 으로 이동합니다.

   당연히 계정이 필요하므로 signup 으로 들어가서 계정을 생성해 줍니다.


2. 계정만들기 참 쉽습니다.


3. 이제  새로운 어플리케이션을 만들어야 합니다.

   create your first application 클릭.


4. 생성되는 프로그램의 이름을 정해줘야 합니다.

   생성규칙이 있는데 대문자와 특수문자는 불가능합니다.

   (이유는 생성된 어플리케이션이 도메인 이름이 되기 때문에 불가능 하더군요.)

   저는 twitterkr 이라는 이름으로 정했습니다.

   create application 을 눌러줍니다.


5. 이제 dotcloud 를 설치해줘야 합니다.(이게 쬐끔 싫더군요. 내 컴터에 쓸데없이 막 설치 한다는게)

   보여주는대로 커맨드를 날려봅니다.

   $ sudo easy_install pip && sudo pip install dotcloud 

 

6. easy_install을 알수 없다고 하는군요.

   이와같이 나왔다면 5번그림의 os마다 명령어를 알려주고 있습니다.을 참고하시면 됩니다.


7. 저의 경우 ubuntu 이므로 sudo apt-get install python-setuptools 로 easy_install 를 설치 합니다.

   설치가 완료됨녀 다시 5번의 명령어를 날려줍니다.

   sudo apt-get install python-setuptools

   $ sudo easy_install pip && sudo pip install dotcloud 


8. 사용할려는 서버언어와 디비를 선택하면 하단의 명령어가 변경됩니다.

   저의 경우 node 와 mongoDB를 선택하면 그림과 같이 변경된 명령어를 실행해주면 됩니다.


9. $ git clone git://github.com/dotcloud/stack-node-mongo.git


10. 이제 자주 쓸 명령어들이 보입니다. 하지만 먼저!


11. 위의 10번까지 진행을 했다면 진행한 폴더에 stack-node-mongo 폴더가 생성됩니다.

    해당 폴더의 하위 파일및 폴더를  node가 설치된 곳으로 옮겨줍니다.


12. 폴더가 쬐끔 지저분해서 못알아 볼수도 있지만..(node , npm 파일들과 mode_modules 폴더가 보이시죠?)

     stack-node-mongo 폴더 안애 있던 파일들을 node 폴더로 옮겨주셔야 합니다.

      


13. 이제 dotcloud setup 명령어를 실행합니다.

   (하지 않으면 에러가 나면서  dotcloud setup 를 실행하라고 나오니 걱정마세요.)

   해당 명령어는 해당 피시와 1번에서 가입한 아이디 간의 인증 절차 입니다.

    dotcloud setup 


14. 해당 명령어는 한번만 실행하면 다음부터는 하지 않으셔도 됩니다.

    (예전 버전에서는 ssl 값을 복사해서 여기 붙이고 어쩌고 저쩌고 하는 복잡함에서 1번에서 가입한 아이디만으로도 인증이 끝납니다.)


15. 이제 11번에서 제공한 명령어를 실행합니다.

    해당 명령어는 dotcloud 의 서버와 해당 로컬을 연결하는 작업입니다.(앞으로도 많이 쓰입니다.)

    $ dotcloud connect 생성한 어플리케이션 이(저의 경우는 twitterkr 입니다.)


16. 연결되었다고 정상적으로 나옵니다. 

     (파이썬에서 많이 본 모듈이름이  나오는군요. rsync ㅎㅎ)


17. 이제 push로 해당 폴더의 파일들을 서버로 업로드 시킵니다. (git 명령어와 비슷하군요.)

     $ dotcloud push 


18 이 화면이 11~12번까지의 파일을 복사한 이유입니다.

   해당 파일에 node 모듈까지 같이 있어야만 서버로 전송하여 정상적으로 작동하기 때문입니다.

   이 작업을 하지 않았다면 node 모듈을 찾지 못하므로 작동을 하지 않습니다.

   최초의 업로드시 인스톨까지 약간의 시간이 소요됩니다. (저의 경우 3분정도 소요되었습니다.)


19 . dns 정보와 함게 정상적으로 인스톨이 끝났다고 나오는군요.

     해당 주소로 접속해봅니다.


20. !!! 에러가 나는 군요..ㅜㅡㅜ 


21. 현재 업로드된(제 pc에 설치된) 모듈의 경우 위의 4가지 입니다. 

     but 서버에서 제공하는 버전과 맞지 않거나 모듈이 설치 되지 않았다면 에러가 발생할수 있습니다.


22. 기본적으로 실행되는 파일은 app/app.js 입니다.

     해당 파일을 보면 express와 mongodb 모듈을 사용하는것을 알수 있습니다.

    아무래도 버전이 맞지 않나 봅니다.


23. 해당 명령어로 필요한 모듈을 설치 합니다. 또한 설치된 모듈을 다시 서버로 올려야 하므로 dotcloud connect (어플리케이션 이름) , dotclud push 명령어를 실행해 줍니다.

 $ npm install express mongodb

 $ dotcloud connect 생성한 어플리케이션 이름(저의 경우는 twitterkr 입니다.)

 $ dotcloud push


24. 다시 제공해주는 경로로 이동해보면 웹페이지 화면이 정상적으로 출력되는것을 확인할수 있습니다.(뿌듯.)


25. 이제 제가 만든 프로그램을 어떻게 올리느냐 입니다.

     파일이름중에 dotcloud.yml 을 열어보면 위의 그림과 같은 정보들이 있습니다.

     이것은 dotcloud 서버에서 동작하게될 기본적인 옵션들입니다.

     여기에서 저는 제가 사용할 파일 이름으로 변경해 줬습니다.

 (경로는 변경하지 않았습니다. 기본경로는 위에 보시는 바와 같이 approot: app 폴더인것을 확인할수 있습니다.)

app.js ->test_mode.js 로 변경해주고 저장을 합니다.


26. 이제 app 폴더에 test_node.js 파일을 생성하여 기본적인 node 서버 생성 코드를 넣고 저장했습니다.

여기서 중요한것은 작동되는 서버의 아이피는  는 명시 하지 않으셔도 되며 포트를 8080 으로 지정해줘야 정상적으로 작동합니다.

(서버에 올라가면 자동으로 8080 포트로 연결해주는것 같습니다.)

파일을 변경해줬으니 이제 뭘해야 한다? 서버에 올려야 합니다.(슬슬 귀찬아 집니다.ㅋ)

$ dotcloud connect (어플이름)

$ dotcloud push 


27. 업로드가 완료되고 사이트를 접속하게 되면 

위와 같이 제가 짠 코드되로 웹페이지가 동작하는것을 확인할수 있습니다.




이상으로 기본적인 dotcloud 사용법입니다.

처음의 설치가 어렵지 한번설치한 다음부터는 간단합니다.

소스가 변경될때마다 그때그때마다

dotcloud connect 와 dotcloud push 명령어만 내려주면 됩니다.


- 힘드네요. mongodb는 다음시간에 적겠습니다..ㅜㅡㅜ