안녕하세요. 스타트업에서 근무 중인 신입 개발자입니다. 근무하면서 얻은 정보를 정리하며 올려봅니다. 사내환경 같은 경우는 각자 로컬 환경에서 개발하고, 어느 정도 작업이 완료됐다 싶으면 테스트 서버(EC2)에 프로젝트를 올리는 작업을 아래와 같이 진행하게 됩니다.
- EC2 기본 셋팅 (AMI)
- EC2 Node.js 설치
- GitHub Clone
- Nginx 연동
1. EC2 기본 셋팅 (AMI)
AWS EC2에 접속하셔서 필수 패키지 설치를 진행합니다.
1 | sudo yum update -y |
Port 설정
EC2의 포트 80, 3000이 열려있어야 합니다. EC2포트 설정은 여기서 다룰 내용이 아니니 생략하겠습니다. 포트 설정은 원하시는 포트를 사용하셔도 됩니다만 기본 포트를 권장합니다.
GitHub 설정
GitHub에 프로젝트를 업로드해주세요. GitHub 설정은 여기서 다룰 내용이 아니니 생략하겠습니다.
2. EC2 Node.js 설치
AWS EC2에 접속하셔서 아래 명령어를 순차적으로 입력합니다. 다른 버전 노드를 설치해도 무방합니다만 로컬에 있는 노드 버전과 동일하게 설치하는 것을 권장합니다. 다소 시간이 걸리는 작업입니다.
1 | wget https://nodejs.org/dist/v6.7.0/node-v6.7.0.tar.gz |
설치를 완료하셨다면 아래의 명령어로 Node, NPM 버전을 확인합니다
3. GitHub Clone
이미 프로젝트가 GitHub에 업로드되었 다고 가정하고 진행하겠습니다.
1 | git init |
node_modules 디렉토리는 gitignore 시키는 것을 권장합니다.
1 | cd gitclone 폴더이동/ |
노드 모듈을 설치한 이후 해당 노드 프로젝트에 알맞게 노드 서버를 실행시켜주세요. 저 같은 경우는 npm start
로 프로젝트를 실행시켰습니다.
EC2 IP:3000로 접속하시면 해당 노드 서버가 실행 있는 것을 확인하실 수 있습니다. 만약 접속이 안되시면 EC2 IP 및 inbound 설정을 확인해보세요.
4. Nginx 연동
nginx를 실행시킨 이후 EC2 IP로 접속하시면 아래 그림과 같은 화면이 출력되시면 nginx 설정으로 진행하시면 됩니다.
1 | sudo service nginx restart |
Nginx 기본 포트는 80으로 설정되어있습니다.
1 | sudo vi /etc/nginx/nginx.conf |
위의 그림과 같이 server {
아래의 location을 붙여 넣습니다.
} Nginx를 재실행시킵니다.
1 | location / { |
1 | sudo service nginx restart |
Nginx를 재실행시키시고 EC2 IP에 접속하시면 Nginx 화면이 아니라 노드 서버 화면이 나오시는 것을 확인할 수 있습니다.
최대한 쉽게 설명하려 노력했으나 도움이 됐을지 의문입니다. 어려운 주제는 아니지만, 문서로 정리해보니 이틀이라는 시간이 걸리긴 했습니다만 뭔가 코딩하는 거랑 비슷한 느낌이라고 할까요? 결과물을 보니 뭔가 뿌듯하고 재미도 있네요. 다들 이런 재미로 블로그를 하시나 봅니다.
현재 회사에서 노드를 기반으로 서비스하고 있어 node 중심적으로 블로그 진행할 거 같습니다. 노드나 스타트업에 관심이 있는 분이시면 종종 찾아와 주시기 바랍니다.