Facts
-
express와 prisma를 이용해 처음으로 REST API를 만들었다.
-
AWS EC2와 깃허브를 이용해 클라우드 서버에 프로젝트를 실행시켜 보았다.
-
try catch 구문을 적극적으로 이용해 보았다.
Feelings
-
프로젝트/과제 를 진행할 때마다 새로운 시도를 해보며 오류들을 잡아가는 것이 신났다
-
어려운 것을 시도해가며 풀어가는 게 개꿀잼이다
Finding
- 회의할 때 과제에 집중한다고 가끔씩 흘려듣는 상황이 생기는데.. 이를 좀 주의해야될 것 같다.
Future
-
다음 주 부터 있을 [팀 프로젝트]에는 코드 공유와 리뷰가 중요할 것 같다.
-
알고리즘 테스트 전용 깃허브 파일에 기록하는 습관을 가져야겠다.
오늘의 Troubleshooting
아이템 시뮬레이터 과제
AWS EC2 배포
- AWS 사이트에 들어가 EC2 사이트로 들어간다! (로그인 필수)
https://ap-northeast-2.console.aws.amazon.com/ec2
- 인스턴스 시작 버튼을 눌러 세팅을 마친 후 (프리티어) 키 페어를 생성해준다!
=> 이렇게 만든 키페어를 이용해 서버에 직접 연결해줄 것이다!
- 그렇게 생성한 인스턴스의 보안그룹에 접속한다!
- 인바운드 규칙에 포트 22의 SSH가 있는지 확인한 후 자신의 서버연결을 위해 포트를 새로 만들어 준다!
- GitBash와 키페어[itemSimulator.pem] 이용하여 EC2 인스턴스에 연결 해준다!
ssh -i <키페어파일> ubuntu@AWS의 퍼블릭 IP
# 예시
ssh -i "C:/Users/user/Downloads/itemSimulator.pm" ubuntu@3.39.252.243
-
연결한 곳에서 Node.js를 설치해준다!
# sudo -E bash 로 환경설정 저장
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
# apt-get 패키지 매니저로 nodejs 설치
sudo apt-get install -y nodejs
# yarn package manager 설치
npm install -g yarn
- Github에서 만든 repository를 이용해 프로젝트를 clone 해줍니다!
git clone <Github Repository URL>
# 예시
git clone https://github.com/bbie-6772/itemSimulator.git
=> 이제 프로젝트를 EC2에 복사하는 건 성공했다!
- 프로젝트를 실행!
node /itemSimulator/app.js
=> 근데 GitBash를 끄면 서버가 다운된다..
- 위의 문제로 PM2(Process Manager)라는 모듈을 사용해볼 것이다!
# 관리자 모드
sudo -s
#yarn을 이용해 pm2를 전역에 설치
yarn global add pm2
#pm2 를 이용해 서버를 킨다!
pm2 start /itemSimulator/app.js
#pm2 추가 명령어
#pm2 서비스 목록 출력
pm2 list
#list로 본 [id]로 지정한 pm2 서비스를 멈춘다
pm2 stop [id]
#list로 본 [id]로 지정한 pm2 서비스를 재시작한다
pm2 restart [id]
#list로 본 [id]로 지정한 pm2 서비스를 삭제한다
pm2 delete [id]
#pm2 서비스 로그 출력
pm2 log
EC2에 .env 파일 만들기
- AWS EC2에 배포를 성공하고 INSOMNIA를 통해 직접 접속해서 API를 실행 해보았다!
-
어라..? Localhost에서 작동되었으나 EC2로 들어가니 작동이 안됀다!!
=> 아 맞다 .env 파일은 클론되지 않았지..
-
그래서 .env 파일을 EC2 서버에 직접 생성해주기로 했다!
-
Linux 파일 생성 명령어 사용
# vim 에디터로 .env 생성
vim .env
# 1. 이후 화면에 .env 파일 코드를 복사해서 붙여넣기
# 2. :wq 명령어를 입력후 enter를 눌러 저장하고 나가기
# nano 에디터로 .env 생성
nano .env
# 1. 이후 화면에 .env 파일 코드를 복사해서 붙여넣기
# 2. crtl+x 로 나가면서 y를 눌러 저장하기 (+enter로 editor 나오기)
=> 프로젝트 끝!