250219 포트폴리오 프로젝트(32)

geenee·2025년 2월 19일
0

Portfolio

목록 보기
38/38

취업 이후.. aws 프리티어 기간이 끝나는걸 잊고있다가... 갑자기 결제 알람이 떠서..ㅋ 후다닥 모든걸 지웠었지..
그리고 다시 돌아온 배포 시간.. 다시 처음부터 설정해주고 배포를 해야한다ㅠㅠ!

AWS EC2 인스턴스 생성

EC2 > 인스턴스 > 인스턴스 시작

애플리케이션 및 OS 이미지(Amazon Machine Image)

AMI를 이전에는 Amazon Linux 2 AMI를 선택했었는데 그 사이에 업된 버전이 나왔음
그래서 나는 Amazon Linux 2023 AMI를 사용해보기로 함
linux2로 해보니 nodejs 버전이 안맞아서(18이상이 설치가 안되고 그래서 다른 명령어들도 오류가 남.. 억지로 18이상으로 설치할수는 있음) 한번 이버전으로 다시 해보려고 함

인스턴스 유형

t2.micro 사용(프리티어사용가능 붙어있는거)

키 페어(로그인)

없으면 생성해주고 있으면 있는거 선택
얘는 잃어버리면 안됨 리눅스에 접근 못함~

인스턴스 시작~

탄력적 IP 주소 설정

[AWS] EC2 고정 IP 사용하기
네트워크 및 보안 > 탄력적 IP > 탄력적 IP 주소 할당 > 할당(그대로)

생성된 항목 체크 > 탄력적 IP 주소 연결

인스턴스랑 프라이빗 주소 선택 후 연결

putty로 aws linux 접속


저장했던 ppk 파일 추가해주고

hostname은 ec2-user@퍼블릭 IPv4 주소 로 해주고 open

이렇게 잘 뜨면 접속 성공!
참고로 마우스 오른쪽 버튼(shift+insert) 누르면 붙여넣기고
드래그 후 왼쪽 버튼(혹은 ctrl+shift+c) 누르면 복사가 됨

aws linux 환경 설정

[AWS] React project(express)를 AWS EC2에서 배포하기(with. git, putty, nginx)

EC2 소프트웨어 업데이트

$ sudo yum update

git 설치

$ sudo yum install git

NGINX 설치

$ sudo yum install -y nginx

NVM 설치 및 활성화

$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
$ . ~/.nvm/nvm.sh

node 설치

$ nvm install node

yarn이랑 npm도 설치해주는데 npm은 이미 설치가 되어있어서 스킵
linux2에서는 yarn 설치 명령어를 실행했을 때 nodejs 버전때문에 에러가 났었음
node -v 버전 확인

git clone

$ git clone {remote repository address}

.env 파일 작성

각 클라이언트/서버 폴더에 들어가서 .env 파일을 작성해준다

$ vi .env

insert 누르면 입력
esc 누르고 :wq 입력 후 엔터 저장
ls -a 명령어로 숨겨진 파일까지 볼 수 있음 .env 파일 생성 확인

node_modules 설치

$ npm install

여기서도 nodejs 18버전 이상으로 쓰라는 오류가 났었음 nodejs 18버전 이상으로 쓰라는 오류가 났었음

클라이언트 빌드

$ npm run build

nginx 설정

위에 첨부한 링크 그대로 해주면 된다!

EC2 인바운드 규칙 추가


5000 -> nodejs 서버 포트
3306 -> mysql 포트
80 -> http 포트

mysql 설정

AWS ec2 MySQL 설치

$ 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 주소를 사용한 부분은 전부 배포 주소로 변경해줘야함!

nodejs 서버 실행

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

Kakao 도메인 등록

EIF - 카카오 맵 api 사용 도중 TypeError: Cannot read properties of undefined (reading 'maps')

메인 페이지에 카카오맵을 띄우는데 오류가 나서 개식겁 ㅠㅠㅠㅠ
배포 도메인 꼬옥 추가해주면되...

이렇게해서 EC2 배포 끝!

profile
코딩 공부 기록용

0개의 댓글