2023.05.31 AWS 세팅 및 배포(only NODE , not REACT)

이무헌·2023년 7월 21일
0

AWS

목록 보기
1/3
post-thumbnail
  1. aws시작하기
    ⇒aws의 EC2를 시작하자. 인스턴스 생성을 누르자.
  2. 인스턴스 설정
    ⇒우린 우분투를 선택하자(당연히 프리티어로 하자..ㅎ)
  3. 키 페어 생성 후 저장
    ⇒pem확장자로 생성하고 잘 보관하자 절대 깃에도 올리면 안된다.

  1. 네트워크 보안 규칙 추가
    ⇒편집을 누른 후 http,https,mysql을 추가해주자

  1. 인스턴스를 생성후 해당 인스턴를 들언간 후 연결을 누른다.
    ⇒ ssh로 들어간 후 맨 밑 코드를 복사하여 vsc 터미널에서 실행하면 해당 인스턴스의 우분투로 돌아 갈 수 있다. 이 때 생성 때 받은 pem키를 터미널과 같은 공간에 넣어줘야한다!
    그 후 복붙을 하면 다음과 같이 뜬다.


    업로드중..

  2. 데이터 베이스 생성 후 유저 생성, 그 후 권한 부여

    // 데이터 베이스 세팅
    // 우리가 사용할 데이터 베이스 하나 만들어보자
    // 쿼리문 그대로 사용해서 만들자
    // CREATE database 이름;
    
    // 데이터 베이스 확인
    // show databases;
    
    // 데이터 베이스를 사용할 때 우리가 사용할 유저를 만들어주자
    // 사용할 유저 생성
    // CREATE USER 이름 @% identified by 비밀번호
    // CREATE USER 'admin'@'%' IDENTIFIED BY 'admin1234';
    
    // 권한 설정
    // GRANT ALL ON 데이터베이스 이름. * TO 유저이름@%
    // GRANT ALL ON zero. * TO 'admin'@'%';
    
    // 권환 확인
    // SHOW GRANTS FOR 유저이름;
  3. node 및 npm 설치

    // nodejs 설치
    // sudo apt-get update
    // sudo apt-get install -y build-essential
    // sudo apt-get install curl
    // 원하는 노드 버전
    // curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash --
    
    // nodejs 설치합니다
    // sudo apt-get install -y nodejs
    
    // node 버전 확인 node -v
    // npm 버전 확인 npm -v
  4. mysql에서 접속 host ip를 0.0.0.0으로 변경

    // 보안 그룹에 mysql을 허용 해놓고 이미.
    // mysql 외부 접근 허용
    // sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf;
    // vi편집기 이므로 나 변경 후에는 insert를 끄고 :wq!로 저장하고 나가자
  5. git pull로 원하는 git project를 받자

  6. 포트 포워딩으로 http 의 기본 포트 80로 들어왔을 때 원하는 포트로 자동으로 바꿔주자

    // 포트 포워딩을 해서 80 http로 접속 했을 때 8080포트로 재 매핑 시켜주자
    // sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000;
    
    // 포트 포워딩 확인 명령어
    // sudo iptables -t nat -L --line-numbers
    
    // 포트 포워딩 삭제 명령어
    // sudo iptables -t nat -D PREROUTING 인덱스 번호
  7. pm2로 백그라운드에 돌아가도록 하기

    // 그리고 서버대기가 종료 되는데
    // 백그라운드에서 서버를 대기시켜서 계속 동작하게
    // pm2 설치
    // npm i pm2
    // pacakge.json 부분에서 실행 스크립트 명령어를 node app.js로 실행했을 텐데
    // pm2 start app.js로 수정
    // 서버가 종료되어도 백그라운드에서 노드 서버 실행
    // 서버 종료는 npx pm2 kill:종료
    // 리스트 확인 npx pm2 list:리스트
  8. 느낀점

💡 드디어 서버 배포를 배웠다. 지금까지는 클라우드 컴퓨터에 설치를 하지 않고 원클릭으로 날먹을 하였지만…. 직접 npm과 node를 설치해서 서버를 여니 오히려 편했다. 기본적으로 로컬에서 생긴 오류와 비슷한 것이 많아 빠르게 해결 할 수 있었다. 프로젝트가 복잡해지면 cui에서 처리해야할 일이 많아지므로 리눅스를 다시 복습해야겠다.
profile
개발당시에 직면한 이슈를 정리하는 곳

1개의 댓글

comment-user-thumbnail
2023년 7월 21일

글이 많은 도움이 되었습니다, 감사합니다.

답글 달기