[TIL] 210701

프로젝트 데드라인인 오늘은 배포를 했다.
전에 미니프로젝트에서 한 배포와 비슷할줄 알았지만 node.js로 한거라 그런지 좀 달랐다.

일단 ec2 서버는 기존 instance로 쓰고 gabia에서도 전에 쓰던 주소로 했다.
터미널에서 키파일로 연결해주고부터 조금 달랐다.

📂node.js 설치해주기

curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
sudo apt-get install -y nodejs

📂mongodb 설치해주기

wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list

sudo apt-get update

sudo apt-get install -y mongodb-org

📂mongodb 실행, 접속, 계정생성

sudo service mongod start
mongo
use admin;	//admin으로 바꾸고
db.createUser({user: "test", pwd: "test", roles:["root"]}); //계정생성하기
exit
sudo service mongod restart

📂mongodb 편집

sudo vi /etc/mongod.conf

net에 있는 bindIp: 127.0.0.1 을 0.0.0.0으로 바꿔주고
security 앞에 # 지워주고 안에 authorization: enabled 추가해주고
:wq로 저장하고 나가기 :q!는 그냥 나가기
나가서도 sudo service mongod restart로 다시 시작해주고
여기에 Robo3T랑 연결해줄려면 create해서 Connection칸에 address를 자기 instance IP:27107
Authorization에서 username과 password를 설정해주면 연결해진다.

그리고 내파일을 ec2에 올려줘야하는데 filezilla로 연결해줘서 업로드 했다.

그리고 터미널 켜서 서버를 켜줘야 하는데 터미널을 끄면 서버도 같이 꺼지기때문에 pm2로 켜줬다

sudo -s
npm install -g pm2
pm2 start app.js

이렇게 켜주고 한번 테스트하러 일지를 쓸려고 쓰기버튼을 클릭하는 순간! 뙇! 안올라간다.
에러메세지가 뭔가 mongoose 연결부분이 문제인거같아서 보니

mongoose
    .connect("mongodb://localhost:27017/myBlog", {

localhost랑 연결되있어서 안되는건가 싶어서 찾아봤다

mongoose
    .connect("mongodb://ID:password@ec2_IP:27017/dbname", {

으로 바꿔주니 authorization error가 나왔다. 그래서 뒷쪽 db이름을 없애주고 해보니 성공했다.

mongoose
    .connect("mongodb://ID:password@ec2_IP:27017", {

이렇게 잘 마무리하고 잘 안되는 팀원들을 도와주다가 마감시간 12시 땡하고 잤다.

좋은 웹페이지 즐겨찾기