Experiences/Amazon Web Service

Amazon Web Service로 클라우드 서버 구축하기 - 2

프로그래머 2015. 4. 22. 00:25

이번에는 Node.js와 Express를 설치하고 기본 프로젝트를 생성하여 시작하여 서버를 운영해보자.


리눅스 환경에 node.js를 설치하는 방법은 여러가지가 있지만, 패키지를 통한 설치를 다룰 것이다.

다른 방법에 대해 알고 싶으면 출처 사이트를 보면 참고할 수 있다. 

지금 내용들의 출처 또한 링크에 다 포함되어있는 내용임을 밝힌다.

$> sudo apt-get install python-software-properties

$> sudo add-apt-repository ppa:chris-lea/node.js

$> sudo apt-get update

$> sudo apt-get install nodejs

출처 :규이의 블로그


위의 실행결과를 아래 그림들로 확인할 수 있다.



이제 node.js를 설치했다. Express 프레임워크로 프로젝트를 생성해주는 express-generator 패키지를 설치한 후 서버를 작동시켜보자.

sudo npm i -g express-generator (-g 옵션을 global로 설치한다는 뜻이다. )


자, 이제 간단한 우분투 명령어로 현재 켜있는 위치가 어디인지 확인하고, 무슨 파일들이 있는지 확인해보자.

우분투에는 ll 명령어와 pwd 명령어가 있다. 

ll(엘엘)은 ls -al 명령어를 alias 해준 명령어이다. (대신 ls -al 명령어를 입력해준 것과 같다는 말이다.)

pwd 명령어는 현재 자신이 있는 위치를 나타내준다.  (/home/ubuntu)


우리는 이 위치에서 간단하게 폴더를 하나 생성하자. 

mkdir 명령어가 디렉토리를 생성하는 명령어이다. 

$> mkdir 폴더이름


폴더를 만들고 그 폴더로 이동하자. 폴더 이동에 대한 명령어는 $> cd 폴더명 이다.

그렇다면 지금 위치는 "/home/ubuntu/폴더명" 일 것이다.


그 위치에서 이제 nodejs express 프로젝트를 생성해보자.

$> express --ejs helloworld


여기서 --ejs는 express 프레임워크에서 view에 해당하는 패키지 중에 jade, ejs, handlebars, hogan.js등이 있는데 기본이 jade이다. 

--ejs를 통해서 ejs 패키지로 프로젝트를 생성하겠다는 뜻이다.

위 화면까지 모두 완료 되었다면, 이제 프로젝트를 생성한 폴더로 이동한다.

$> cd 프로젝트명


폴더내의 package.json 파일에 보면 express와 관련된 패키지들의 dependencies가 저장되어있는데,

$> npm install

이 명령어를 통해서 그 관련 패키지를 설치 할 수 있다.



이제 서버를 실행만하면 서버가 가동된다.

프로젝트 내의 bin폴더의 www를 통해 서버를 실행할 수 있다. 
(app.js의 소스를 변경해서 app.js로 실행할 수 있지만 여기선 기본실행만 한다.)


아무 반응이 없을 것인데, 그게 서버가 켜진 것이다!!

그럼 사이트로 접속해보자. 기본 접속포트는 3000번이다.


아참! 1편에서 접속 아이피에 대해서 설명을 빠트렸다.

접속할 수 있는 아이피 주소는 어제 보았던 AWS EC2 Management Console을 통해서 확인할 수 있다.



자 이제 접속 IP도 확인했으니까 접속해보자!! 

............ 

잉? 접속이 안된다... 뭐지??? ;;;;;;


다 끝난줄 알았는데.. 왜 안되지...


사실 일부로 틀렸다. 

왜냐하면 기억해야 할 것이 있기 때문이다.


EC2 서버에서는 SSH 22번을 제외한 나머지 포트를 막고 있다.

그래서 포트포워딩을 해주어야한다. 

포트포워딩이라는 말이 어렵다면 요청(사용자 브라우저)하는 포트를 열어주어야한다는 뜻으로 이해하면 된다.


Instances 화면에서 가장 왼쪽으로 이동하면 Security Groups 라는 메뉴가 있는데, 거기에 있는 launch-wizard-1를 선택하자.


그러면 포트포워딩을 할 수 있는 화면이 나타나는데 여기서 Inbound(요청이 들어올 때)에 Edit 버튼을 눌러서 규칙을 추가 시켜준다.



Add Rule에서 Custom TCP Rule을 선택하고 3000번 포트를 써주고, 접속할 IP는 Anywhere, My IP, Custom IP 중 선택할 수 있다. 

Anywhere로 선택하면 누구든 접속할 수 있다는 뜻이다.



자, 포트 설정이 끝이났다. 마지막으로 접속을 해보자. 

과연...!!

자, 이렇게 기본적인 express 프로젝트 화면이 나타났다. 그디어 클라우드에 node.js로 서버를 올리게 되었다.

사실 알면 별것 아닌데, 알기전엔 조금 복잡하고 어렵기도 했다. 

무엇보다 클라우드 서버에 하나의 작은 프로젝트를 실행시켜보니까 기분이 좀 남다르고 재미있었다.

평소에 AWS와 같은 클라우드 서버에 관심이 있던 사람들은 이것으로 작은 성취를 이룰 수 있지 않을까 생각한다.


다음 글은 접속할 때 매번 IP주소를 쳐서 들어오려면 그 IP를 기억해야하는 불편함이 있다.

그래서 무료 DNS를 이용하여 좀 더 간편하고 기억하기 쉽게 접근하는 것을 다뤄보려고 한다.


끝까지 읽어주신 분들께 감사드리며, 이상있거나 수정해야할 부분이 있다면 언제든지 말씀해주시면 감사할 것 같다!