여는 글
구글링하면 nodejs만 배포하거나 vue 배포만 하는 글이 많고 둘 다 있다고 하더라도 막 시작하는 (나처럼 코드가 이미 한가득 작성되어 있지 않은) 단계의 글이 많아서 해결하는 데 시간이 오래 걸렸다.
그러니 이 글은 아래 경우에 해당되는 사람이 배포 할 때 도움이 되는 글이다.
1. nodejs, vuejs 를 동시에 배포해야하고 개발 마무리 단계다.
2. 개발 라이브러리가 frontend, backend 따로 구분되어 있다.
AWS 세팅 및 서버 구동하기
세팅은 아래 포스팅을 거의 참고했다. (참고하기 전에 아래 글을 먼저 읽고 참고하길 바람)
GitHub과 Node.js Express를 이용한 자동배포 환경 만들기(feat. AWS-EC2, AWS CodeDeploy, AWS CodePipeline) 1편 - 까
1편에서는 AWS EC2에 Node.js Express 프로젝트를 배포하는 과정에 대해서 설명합니다. https://aws.amazon.com/ko/ 클라우드 서비스 | 클라우드 컴퓨팅 솔루션| Amazon Web Services 제조 AWS를 활용한 Siemens의..
ookm1020.tistory.com
이 포스팅을 따라하다가 막힌 부분이 있었고 나와는 다른 구조로 되어 있어서 그렇다는 걸 깨달았다.
ssh 접속 할 때
나는 aws 이름이 codewriter였기 때문에 codewriter@ip 로 했는데 계속 실패했다.
이거 때문에 며칠을 구글링했는데 그냥 기본이름인 ubuntu로 하니까 바로 됐다...
그리고 굳이 가상머신->리눅스로 하지 않아도 윈도우 cmd에서도 충분히 된다.
시작 메뉴에서 openssh 설치 후 cmd에서 ssh를 쳐보면 설치확인을 할 수 있고 여기서 바로 접속할 수 있다. (권한 문제가 있다면 구글링하면 많이 나오므로 생략)
구글링하다보니 cmd 사용을 꺼리거나 그냥 putty를 많이 사용하던데 본인의 선택이다.
난 배포 가능 여부가 급해서 그냥 cmd로 했다.
[미래의 나를 위해 써두는 cmd 실행 명령어 순서]
바탕화면에 pem 파일이 있으므로 먼저 cd Desktop
ssh -i "olrangstore.pem" ubuntu@퍼블릭ip
(코드 갱신 시 git에 업로드 후 rm -rf olrang, git clone https://github.com/codelistwriter/olrang.git)
cd olrang
cd frontend/backend
npm run build/npm run start
GitHub에 파일을 업로드할 때
나는 vscode로 개발했고 .gitignore가 있었다.
근데 그대로 올려서 clone으로 내려받았더니 npm start가 안됐다.
문제는 .gitignore에 node_modules가 포함되어 있어 GitHub에는 backend, frontend 하위의 저 폴더가 업로드 되지 않아 npm start 명령어가 먹히지 않았던 것이다.
구글링해보니 package.json이 저 폴더를 대체할 수 있으며 node_modules는 내용이 많아서 git에 올리지 않는다고 하는 글을 봤다.
근데 나는 node_modules 폴더를 올리지 않으니 서버 명령어가 안 먹혔고 올리고 난 후에는 잘 동작한다.
npm start 명령 수행 위치
나는 기본 경로(ubuntu@ip~)에서 npm start하면 안 먹힌다.
vscode에서 개발했다면 frontend 폴더에서 npm run build한 후 backend 폴더로 이동해 npm run start 명령어를 사용하는 방식으로 구동했을 텐데 여기서도 그렇게 해야한다.
그러니까 기본 경로에서 cd 명령어를 이용해 frontend, backend 폴더로 이동한 후 vscode에서 하던 것처럼 구동 명령어를 해주면 된다.
닫는 글
배포를 진행하면서 진지하게 고민했는데 일단 결제 기능 구현되고 나면 부족했던 로그인, frontend에 alter 삽입하기 등을 다시 잡아볼 생각이다.
원래는 빨리 끝내고 포트폴리오를 하나 더 만들 생각이었는데 이것도 제대로 못하는 데 양이 많아봤자 무슨 소용이냐는 생각이 들었다.
아래는 public ip로 접속한 페이지!
현재는 DB 이용이 안된다.
개발 시에 로컬 기준으로 동작하도록 구현했기 때문이다.
다음은 배포한 주소에서도 DB사용이 가능하도록 하는 내용의 포스팅이다.
'포트폴리오(종료) > 올랑올랑 상점 (제품판매사이트) 제작 과정 (완료)' 카테고리의 다른 글
[import, Node.js, Vue.js] 결제 구현과 테스트 해보기 (0) | 2021.10.01 |
---|---|
[Node.js, Vue.js, AWS, MongoDB Compass] 연동하기 (0) | 2021.09.24 |
[Vue.js, Node.js] 쿠키로 로그인/로그아웃 구현 (0) | 2021.09.06 |
[Vue.js, Node.js] Node.js에서 보낸 response Vue에서 처리 (0) | 2021.08.29 |
[Vue.js, Node.js, MongoDB] DB 값 가져오기(ID 중복체크하기) (0) | 2021.08.26 |