항해14기 본과정/항해14기 개발일지

[항해 14기] 개발일지16 (Git, EC2)

스쿼트잘함 2023. 4. 24. 22:01

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/

 

gitignore.io

Create useful .gitignore files for your project

www.toptal.com

 

 

 

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]