Git, AWS - EC2
1. Git
1) git
- 체계적인 개발과 프로그램의 배포를 도와주는 형상 관리 도구, 또는 버전 관리 시스템
2) 형상 관리 도구
- 프로젝트의 개발 단계에서 소스 코드의 버전을 효과적으로 관리하기 위함
- 같은 파일을 여러명이서 동시에 작업할 수 있음
3) repository
- 모든 파일의 변경 사항을 저장할 수 있는 저장소
- Local Repository : local저장소
- Remote Repository: GitHub와 같이 Git 서버에서 제공되는 Repository
4) commit
- 이전 변경사항 기준으로 새로 변경된 내용을 기록하는 단위
5) branch
- 공동 작업시 충돌 방지를 위한 시스템
6) git ignore 자동 생성 사이트
https://www.toptal.com/developers/gitignore/
2. GitHub
1) 배포를위한 SSH로 진행
2) 터미널에서 sshkey 발급
- 터미널(윈도우 깃배시) 명령어 : ssh-keygen -t rsa -b 4096 -C "인증할이메일gmail.com"
3) 깃허브에 등록
- 프로필의 settings - SSH and GPG keys - New SSH Key
- 터미널에서 ssh key복사해오기, 터미널 명령어 : cat ~/.ssh/id_rsa.pub
- Title : 사용할 이름 지정, key type : Authentication Key, key : 복사해온 키 입력
4) 로컬 레포에서 작업
- 깃허브 레포에서 ssh 주소 복사
- git init, git remote add origin 주소
- 이후 에드,커밋,푸쉬 진행
- 주소 등록 실패 에러시 터미널명령어 : ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts
- 위 경우도 실패 시 명령어 : sudo vi ~/.ssh/config 입력 이후
Host github.com
Hostname ssh.github.com
Port 443
위 코드 입력
3. AWS EC2
1) 배포를 위한 git설정
- 첫 배포시 : git clone, npm설치, 서버on
- 이미 배포한 서버 : git pull, 필요시 npm설치, 서버 재시작
2) EC2 인스턴스
- 우분투 20.04프리티어 - 64비트 - t2.micro 프리티어-새키페어생성 rsa .pem - 네트워크 디폴트설정 -스토리지 디폴트(8,gp2), 고급설정디폴트
- 보안그룹 인바운드 추가 - 사용자지정tcp - anywhere ipv4, http ipv4
3) 터미널
- 키페어 위치 접속 후 ssh -i ./다운받은keypair.pem ubuntu@퍼블릭IPv4주소 이후 yes
- pem키 권한 확인 : ls -al | grep
- pem키 권한설정 : chmod 400 keypair.pem
- 이후 ssh -i ./keypair.pem ubuntu@퍼블릭IPv4주소 로 우분투 접속
- 노드 설치(18버전)
curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt-get install -y nodejs
- mysql설치
sudo apt update
sudo apt install mysql-server
- 몽고디비 설치 (우분투 20.04)
sudo apt-get install gnupg
curl -fsSL https://pgp.mongodb.com/server-6.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-6.0.gpg \
--dearmor
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
sudo apt-get update
sudo apt-get install -y mongodb-org
- env업로드
https://jujiprogram.tistory.com/62
- git clone, npm install, node app.js 진행
- 포트 포워딩
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000
4) pm2
- 서버가 계속 켜진상태로 유지하는 라이브러리
- 어드민권한접근 : sudo -s
- pm2 설치 : npm install -g pm2
- pm2 실행 : pm2 start app.js
- pm2 명령어
pm2 list
pm2 monit (로그확인)
pm2 restart [idNumber]
pm2 delete [idNumber] (pm2 끄기)
pm2 log
pm2 logs --lines [number]
'항해14기 본과정 > 항해14기 개발일지' 카테고리의 다른 글
[항해 14기] 개발일지18 (쿠키/세션, JWT, RDS) (0) | 2023.04.24 |
---|---|
[항해 14기] 개발일지17 (Node.js 1LV 과제, 2LV 과제) (0) | 2023.04.24 |
[항해 14기] 개발일지15 (몽고디비, npm 명령어) (0) | 2023.04.24 |
[항해 14기] 개발일지14 (Node.js 입문) (0) | 2023.04.24 |
[항해 14기] 개발일지13 (Node.js 입문) (0) | 2023.04.24 |