Docker, AWS EC2로 배포

송철진·2023년 6월 22일
0

다시보기

목록 보기
1/2

개요

뭐가 문제인지 자꾸 오류가 발생해서 인스턴스를 삭제하고 다시 생성하기를 수차례.. 과정을 간소화하기위해 순서를 정리해보기로 했다.

순서

  1. 우분투 선택> t2.micro> key-pair생성(이름 아무거나)>
  2. 방화벽 나중에 설정..80(프론트) port4000(서버)
  • acl: 3000(로컬), ?(클-섭 통신), 80(HTTP_PORT), 22(SSH_PORT), ?(DB_PORT)
  1. 인스턴스 실행중 표시> 연결> ec2인스턴스 연결탭 - 연결>
  2. 우분투에서 nodejs 최신 설치: https://taehyeki.tistory.com/325
sudo apt-get update
sudo apt-get install -y build-essential
sudo apt-get install curl
// 2023.06기준 최신LTS: 18.16.1
curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash --
sudo apt-get install -y nodejs
  • 노드 버전 확인: node -v
  • 우분투 버전 확인: cat /etc/issue
  1. 우분투 22.04버전에서 도커 설치하기: step1까지
    https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-22-04
  2. sudo apt install docker-compose
  3. git clone [레포지토리 주소] -> 프라이빗 레포일 경우 password token 필요
    -> https://github.com/settings/tokens/new 에서 생성한다. repo 권한만 체크 -> 토큰은 복사해서 따로 저장해야한다. = password
  4. compose-docker.yaml파일이 있는 디렉토리에 들어가서
  • touch .env -> db port, user_id, password 작성
  • 도커 실행: sudo docker-compose up
    -> accept connection 문구 확인!
  1. 도커가 켜져있는지 확인: sudo docker ps -> status Up 확인
    (클라) 모듈 설치: npm i
    (클라) 빌드: npm run build:prod
    (클라) 시작: npm run start:prod
    (클라) 포트3000을 80으로 바꾸는 명령어
    : sudo iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000
    (클라) 무중단 배포를 위한 pm2 설치sudo npm install pm2 -g
    (클라) pm2를 이용한 시작: pm2 start ecosystem.config.js
    (서버) 모듈 설치 npm install
    (서버) pm2를 이용한 시작: pm2 start ecosystem.config.js

현재 상황

  • EC2 에서 pm2무중단 배포까지 완료. 그런데 30분 정도 잘 굴러가다가 접속이 수시로 끊기더니 아예 접속이 안된다!
  • VPC, 도메인 구매, Route53(DNS) 등 추가 설정이 필요.
profile
검색하고 기록하며 학습하는 백엔드 개발자

0개의 댓글