취업 이후.. aws 프리티어 기간이 끝나는걸 잊고있다가... 갑자기 결제 알람이 떠서..ㅋ 후다닥 모든걸 지웠었지..
그리고 다시 돌아온 배포 시간.. 다시 처음부터 설정해주고 배포를 해야한다ㅠㅠ!
EC2 > 인스턴스 > 인스턴스 시작
AMI를 이전에는 Amazon Linux 2 AMI를 선택했었는데 그 사이에 업된 버전이 나왔음
그래서 나는 Amazon Linux 2023 AMI를 사용해보기로 함
linux2로 해보니 nodejs 버전이 안맞아서(18이상이 설치가 안되고 그래서 다른 명령어들도 오류가 남.. 억지로 18이상으로 설치할수는 있음) 한번 이버전으로 다시 해보려고 함
t2.micro 사용(프리티어사용가능 붙어있는거)
없으면 생성해주고 있으면 있는거 선택
얘는 잃어버리면 안됨 리눅스에 접근 못함~
인스턴스 시작~
[AWS] EC2 고정 IP 사용하기
네트워크 및 보안 > 탄력적 IP > 탄력적 IP 주소 할당 > 할당(그대로)
생성된 항목 체크 > 탄력적 IP 주소 연결
인스턴스랑 프라이빗 주소 선택 후 연결
저장했던 ppk 파일 추가해주고
hostname은 ec2-user@퍼블릭 IPv4 주소 로 해주고 open
이렇게 잘 뜨면 접속 성공!
참고로 마우스 오른쪽 버튼(shift+insert) 누르면 붙여넣기고
드래그 후 왼쪽 버튼(혹은 ctrl+shift+c) 누르면 복사가 됨
[AWS] React project(express)를 AWS EC2에서 배포하기(with. git, putty, nginx)
$ sudo yum update
$ sudo yum install git
$ sudo yum install -y nginx
$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
$ . ~/.nvm/nvm.sh
$ nvm install node
yarn이랑 npm도 설치해주는데 npm은 이미 설치가 되어있어서 스킵
linux2에서는 yarn 설치 명령어를 실행했을 때 nodejs 버전때문에 에러가 났었음
node -v 버전 확인
$ git clone {remote repository address}
각 클라이언트/서버 폴더에 들어가서 .env 파일을 작성해준다
$ vi .env
insert 누르면 입력
esc 누르고 :wq 입력 후 엔터 저장
ls -a 명령어로 숨겨진 파일까지 볼 수 있음 .env 파일 생성 확인
$ npm install
여기서도 nodejs 18버전 이상으로 쓰라는 오류가 났었음 nodejs 18버전 이상으로 쓰라는 오류가 났었음
$ npm run build
위에 첨부한 링크 그대로 해주면 된다!
5000 -> nodejs 서버 포트
3306 -> mysql 포트
80 -> http 포트
$ sudo yum localinstall https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm
$ sudo rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
$ sudo yum install mysql-community-server
$ sudo systemctl enable mysqld
$ sudo systemctl start mysqld
$ sudo systemctl status mysqld
$ sudo grep 'A temporary password' /var/log/mysqld.log
$ mysql -u root -p
mysql > GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '비밀번호';
SQLyog에서 접속 확인
localhost에서 작업하던 DB 가져오기
server/.env 파일 수정(비밀번호,host주소)
코드내에서 localhost 주소를 사용한 부분은 전부 배포 주소로 변경해줘야함!
server 폴더에서 server.js 파일 실행
$ node server.js
server.js 파일 자동실행 설정
$ npm install -g pm2 # pm2 설치
$ pm2 start /home/ec2-user/20221201_ourtrip_project/server/server.js --name nodeserver
$ pm2 status
EIF - 카카오 맵 api 사용 도중 TypeError: Cannot read properties of undefined (reading 'maps')
메인 페이지에 카카오맵을 띄우는데 오류가 나서 개식겁 ㅠㅠㅠㅠ
배포 도메인 꼬옥 추가해주면되...
이렇게해서 EC2 배포 끝!