이번 글에서는 AWS EC2를 이용하여 Node.js를 배포해보겠습니다. 우분투를 해보시지 않았다면 조금 어려운 부분이 있을 수도 있습니다.
AWS EC2 시작하기
EC2 같은 경우 S3와 다르게 비용이 꽤 나옵니다. 그러므로 필요할 경우가 아니면 반드시 인스턴스를 중지해야 합니다. 아닐 경우 청구서 보고 저처럼 깜짝 놀랍니다 ㅜㅜ
AWS EC2에 접속하고, 인스턴스 시작 버튼을 눌러줍니다.
우분투를 사용할 것이기에 18.04 버전의 우분투를 선택해줍니다.
인스턴스 유형 선택에서 이미지와 같이 체크하고 검토 및 시작 버튼을 눌러줍니다.
쭉쭉 넘어와서 7단계에서 보안 그룹 편집을 클릭해줍니다.
테스트용이기에 다음과 같이 구성하였습니다. 전세계 누구나 아무 곳에서 들어올 수 있습니다. 그리고 검토 및 시작 버튼을 눌러줍니다.
시작하기를 눌러줍니다.
키 페어 관련한 팝업창이 나타납니다. 새 키 페어 생성을 하시고 키 페어 이름을 설정하시고 키 페어 다운로드를 누릅니다. 키 페어의 경로는 반드시 사용자에 저장해주세요. 안그러면 나중에 unbuntu에서 권한 문제가 발생할 수 있습니다.
모든 설정을 마쳤으면 인스턴스 시작 버튼을 눌러줍니다.
인스턴스 보기를 눌러줍니다.
인스턴스가 리스트에 보입니다. 상태 검사는 몇분 지나면 2/2.. 이런 식으로 바뀝니다.
만약 저와 UI가 다르면 왼쪽 상단에 New EC2를 활성화해주시면 됩니다.
인스턴스 ID를 눌러 인스턴스 요약으로 이동합니다. 그 후 연결 버튼을 눌러줍니다.
SSH 클라이언트 탭을 눌러 이동해줍니다. 4번의 예를 보면 ssh -i ~ 명령어를 복사하여 unbuntu 환경에서 입력해줍니다.
window에서 우분투 실행하기
window의 cmd 같은 경우 일반적으로 ssh 명령어를 실행할 수 없습니다. 그래서 저는 우분투를 설치하여 사용합니다.
물론 putty를 설치하시고 ssh를 실행해도 상관없습니다.
PuTTY
완전하고 안정적인 텔넷 및 SSH 클라이언트
putty.softonic.kr
빨간색 부분을 체크하신 후 재부팅을 해줍니다. 재부팅을 하였으면 Microsoft Store에서 ubuntu를 검색하신 후 설치해줍니다.
설치가 완료되었으면 이제부터 ubuntu를 사용할 수 있습니다.
우분투에서 윈도우 폴더에 접근하려면 cd /mnt 를 하시면 됩니다. 명령어에 대한 설명은 생략하겠습니다.
윈도우 파일인 c가 리스트에 보입니다.
키 페어로 인스턴스 연결하기
다시 본론으로 돌아오겠습니다. 아까 키 페어를 저장한 곳으로 cd를 사용하여 이동한 후, 인스턴스에 연결 화면에서의 ssh -i ~ 로 되어있던걸 입력해줍니다. 한글자라도 틀리면 안됩니다.
만약 잘되었다면 명령줄이 ubuntu@ip:~$ 이런식으로 됩니다.
인스턴스 연결에 성공하였습니다.
인스턴스에 우분투를 이용하여 Node 환경 만들기
만약 만들어 놓은 프로젝트가 있으면 알맞는 환경에 gitclone를 사용하여 다운로드하시면 됩니다. 저 같은 경우는 gitclone를 사용하지 않고 우분투에서 express-generator를 이용하여 Node 환경을 구축해보겠습니다.
sudo apt update 명령어를 입력해줍니다. 만약 yes/no 가 나온다면 yes를 해주세요.
sudo apt install npm 을 입력해주세요. 마찬가지로 yes/no가 나온다면 yes를 눌러주세요.
npm -v 를 입력해서 3.5.2처럼 나온다면 설치가 잘된겁니다.
npm을 설치하였으니 이제는 Node를 설치해보겠습니다.
sudo apt install nodejs 를 입력해주세요. 마찬가지로 nodejs -v로 설치가 잘되었는지 확인합니다.
npm, node 설치가 완료되었습니다. 이번엔 npm인 exress-generator를 설치해보겠습니다.
sudo apt install node-express-generator 를 입력후 yes/no가 나오면 yes를 입력해주세요.
express [생성할 폴더이름] --view=pug 를 입력해줍니다. 이후 생성한 폴더로 이동 후 ll을 입력하고 관련 파일들이 잘 생성되었는지 확인해줍니다. 빨간색 부분처럼 생성되었다면 성공적으로 하신 겁니다. 이후 express 관련 npm 설치를 위하여 npm i 명령어를 입력해줍니다.
vi 에디터를 이용해 코드를 잠깐 수정해보겠습니다.
vi ./bin/www 를 입력해줍니다. 다음과 같이 9줄에 있는 console.log 코드를 추가해줍니다.
vi 에디터에서 수정하면 a 누르고 코드를 입력한 다음 : 입력후 wq 를 넣어줍니다. vi 관련한 설명은 생략하겠습니다.
5번째 줄 코드는 보면 3000이라는 것이 있는데 이것이 포트 번호입니다.
wq 명령어로 vi 에디터를 나온 후 npm start 명령어를 입력하여 Node를 실행시켜줍니다.
모든 설정이 끝이 났습니다.
퍼블릭 IPv4 DNS의 주소를 복사해줍니다.
브라우저 주소창에 포트번호를 붙여서 입력해줍니다.
아주 잘 실행되는 걸 볼 수 있습니다.
맺으며
지난 포스팅에선 정적 웹 호스팅을 하였는데 이번 글에서는 EC2를 이용하여 동적 웹 호스팅을 진행하였습니다. 우분투에 대한 기초 지식이 필요한터라 우분투를 모르시는 분은 좀 어려우실수도 있습니다.
반드시반드시 인스턴스는 중지해줍니다!!
막히는 부분이나 모르시는 부분이 있으면 언제든지 댓글 남겨주세요 :)
Node.js의 버전업을 원하시면 아래 글을 참고해주세요!
[Node.js] Ubuntu에서 Node.js 버전업 하기
distro-stable version 설치 (apt) 간단하게 apt를 이용해 설치해보겠습니다. $ sudo apt update $ sudo apt install nodejs $ sudo apt install npm 그런데 버전이 너무 낮습니다. 최신 버전을 받기 위해 PPA(P..
kingofbackend.tistory.com
읽어주셔서 감사합니다.
'...' 카테고리의 다른 글
왜 개발자는 잘못된 기술 선택을 밥 먹듯이 하나? (4) | 2021.06.05 |
---|---|
[Java] 인터페이스와 추상클래스 (4) | 2021.06.01 |
[Java] 자바의 동작과정 Java Compiler와 JVM (13) | 2021.05.11 |
[CA] 바이너리 파일과 바이트 파일 그리고 컴파일, 링크 (4) | 2021.05.10 |
[JS]자바스크립트 동작의 삼위일체! - V8, Web API, Event Loop (7) | 2021.05.03 |