아주 간단 배포 정리 ( AWS EC2, GITHUB, PM2, 가비아 )

오성인·2023년 4월 15일
0

문제 의식: 이 글을 쓰게 된 이유는 강의 중 AWS EC2, GITHUB, PM2, 가비아 를 통해서 배포하는 부분을 보고, 이 부분을 정리하여 기록해 두면 후에 배포하는 시간을 더 단축시킬 수 있겠다 싶었다.

기본적인 뼈대는 이렇다
1. GITHUB에 프로젝트 repo를 생성하여 준비한다.(좀 더 안전하게 clone하고자 한다면 ssh키에 대해 검색해보자)
2. AWS EC2 서버를 생성 및 접속한다.
- (발급받은 보안 키로 인증해야 겠죠?)
- (포트 포워딩도 해야겠죠?!)
3. 생성한 서버의 CLI에서 필요한 소프트웨어를 설치하고 git clone으로 프로젝트 repo를 클론한다.
4. 아맞다 포트포워딩
5. PM2를 통하여 영구실행하고, 로그를 확인한다.
6. 가비아에서 도메인을 발급받고 AWS 주소와 연결한다.

1. GITHUB에 프로젝트 repo를 생성하여 준비한다.

  • 말 그대로 프로젝트 repo에 완성해서 add-commit-push 한다.

2. AWS EC2 서버를 생성 및 접속한다.

  • ec2 인스턴스 생성(운영체제, 사양, 키페어 생성 등 옵션체크) -> 키페어는 나중에 해당 서버 접속시 필요! 잘 보관!
  • git bash에서 'ssh -i 키패어 위치 ubuntu@ec2 인스턴스 퍼블릭 ip주소' -> 후에 나오는 거 대충 yes

3. 생성한 서버의 CLI에서 필요한 소프트웨어를 설치하고 git clone으로 프로젝트 repo를 클론한다.

  • node, mongodb 같은 소프트웨어 설치 시 해당 공식 사이트나 검색해서 찾으시면 됩니다.
  • git clone '내 repo http 주소', npm i로 패키지 다운~

4. 아맞다 포트포워딩

  • 해당 포트로 접속을 허용해주어야 외부에서 접근이 가능합니다.
  • ec2의 해당 인스턴스 정보창 -> 보안 그룹 ->인바운드 규칙 편집
  • TCP의 (3000번)우리 프로젝트 포트번호을 모두 접근(0.0.0.0/0)으로 설정해주고, http포트 80번도 모두 접근(0.0.0.0/0)으로 설정 (https는 443)
  • 3000번이랑 80번 모두 열렸지만, 80번 접속시 -> 3000번으로 자동이동해줘~를 설정하기 위해서 iptables 규칙 변경 명령어를 ec2 서버에서 입력 해준다.
  • 'sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000'
    (포트번호 다르면 대충 3000에다가 넣으시면 되겠죠?)

5. PM2를 통하여 영구실행하고, 로그를 확인한다.

  • pm2는 관리자 권환이 필요하기 때문에 명령어 입력을 통해서 관리자 계정으로 전환해줍니다 'sudo -s'
  • npm install -g pm2 전역으로 pm2 설치
  • pm2 start app.js pm2로 app.js 실행
  • !꿀! pm 명령어 (
    pm2 list : 현재 실행중인 서미스 목록 표시
    pm2 delete [id number] : list에 나와있는 id에 해당하는 서버 닫기
    pm2 log : 로그 보고싶을 때
    pm2 logs --lines [number] : number줄 만큼만 로그 보고 싶을 때
    pm2 monit : 해당 진행상황을 모니터링 할 수 있음!
    )

6. 가비아에서 도메인을 발급받고 AWS 주소와 연결한다.

  • 가비아 사이트에서 원하는 도메인 검색 후 발급받기 (돈이 듭니다.)
  • 관리 툴에서 -> DNS의 도메인 연결 -> DNS설정 -> 호스트에 '@', ip주소에 ec2 인스턴스 퍼블릭 주소 입력 후 설정완료!
  • 기다리면 연결 완료!
profile
기여하는 개발자

0개의 댓글