[Tistory] AWS EC2 배포(REACT + Nodejs + express + mysql)

원글 페이지 : 바로가기

AWS EC2 인스턴스 생성 https://ap-northeast-2.console.aws.amazon.com/console/home?region=ap-northeast-2 https://ap-northeast-2.console.aws.amazon.com/console/home?region=ap-northeast-2 ap-northeast-2.console.aws.amazon.com AMI 선택 Ubuntu Server 22.04 LTS 선택 인스턴스 유형 선택 기본 세팅 설정 -> 프리 티어 사용(t2.micro) 인스턴스 구성 기본세팅 설정 스토리지 추가 기본 세팅 설정 (프리티어 경우 30까지 설정 가능하지만, 일단 기본) 태그 추가 관리하고 싶다면 태그 추가(일단 넘어감) 보안 그룹 구성 방화벽 규칙 설정 HTTP, HTTPS, 사용자 지정 TCP 추가 server : 8000, react : 3000, mysql 설정 시 : 3306 추가 인스턴스 시작 검토 시작하기 누르면 Key Pair 설정 가능 ssh 접속을 위해 꼭 필요하므로 .pem 다운로드 필수 Key Pair 저장 위치 꼭 기억하기 탄력적 IP EC2 중지 후 재실행 시 ip가 변경될 수 있으므로 탄력적 IP 생성 후 사용하면 좋음 https://ndb796.tistory.com/258 AWS EC2에 탄력적 IP(Elastic IP)를 이용해 고정 IP 부여하기 AWS EC2는 재미있는 특징이 있습니다. 그것은 바로 기본적으로 EC2 인스턴스를 생성하여 서버를 구동시키면 그것은 고정 IP가 아니라는 점입니다. 따라서 탄력적 IP(Elastic IP)를 이용해 고정 IP를 할 ndb796.tistory.com AWS EC2 인스턴스 접속(putty) Window 환경이므로 putty로 AWS EC2 인스턴스(ubuntu) 접속 puttyGen으로 .ppk 파일 생성 상단의 Conversoins -> Import Key 후, AWS에서 다운받은 .pem 파일 선택(.pem 파일은 모든 파일로 변경하면 보임) Save private key 눌러서 .ppk 파일 생성(.pem 파일과 같은 이름으로) putty 접속 Connection -> SSH -> Auth 에서 Browse 클릭 후 .ppk 파일 지정 Host Name : ubuntu@aws의 ip 주소 Saved Sessions 지정 후 Save 하면 현재 설정 저장됨 Open 프로젝트 Clone & Ubuntu 환경 세팅(putty) nodejs, npm 설치 $ sudo apt-get update
$ sudo apt-get install -y build-essential
$ sudo apt-get install curl

$ curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash –
$ sudo apt-get install -y nodejs

// npm 설치
$ sudo apt install npm

// 설치 후 버전 확인
$ npm -v
$ node -v mysql 설치 mysql 설치 $ sudo apt-get update
$ sudo apt-get install mysql-server

// 설치 확인
$ dpkg -l | grep mysql-server

// 실행 여부 확인
$ sudo netstat -tap | grep mysql

// 재시작
$ sudo systemctl restart mysql.service mysql 접속 $ sudo mysql -u root -p
// 초기에는 비밀번호 설정 없으니 그냥 enter root 비밀번호 설정 > use mysql

// 현재 암호 확인
> select Host, User, authentication_string from user;

// 비밀번호 변경
> alter user ‘root’@’localhost’ identified with mysql_native_password by ‘1234’;

// 적용 후 종료
> FLUSH PRIVILEGES;
> exit mysql 외부 접속 설정 $ cd /etc/mysql/mysql.conf.d
$ sudo vi mysqld.cnf mysqld.cnf 에서 bind-address 찾아서 127.0.0.1 -> 0.0.0.0 으로 변경 …
bind-address 0.0.0.0
… // 재시작
$ sudo systemctl restart mysql.service

$ sudo mysql -u root -p > create user ‘maplix_test’@’%’ identified by ‘1234’;
> grant all privileges on *.* to maplix_test@’%’; Workbench 접속 Connection 생성 Connection 접속 후 DB 생성(import) Query에서 비밀번호 설정 ALTER USER ‘maplix_test’@’%’ IDENTIFIED WITH mysql_native_password BY ‘1234’; 프로젝트 clone git 설치 // 설치
$ sudo apt install git

// 설치 확인
$ git git clone clone할 프로젝트 요청 서버는 AWS IP 주소 server로 post, get 하는 모든 front 파일 서버 수정하기 localhost -> AWS ip 주소 sever 내 mysql 연결 AWS 외부 접속 host: AWS IP 주소 port: 3306 user: username password: password database: mysql 내 생성된 db명 build가 이미 된 상태여야 함 build 방법 VScode(프로젝트 개발 환경) 내 front_end 폴더 안에서 npm run build build가 정상적으로 완료되면 front_end 폴더 안에 build 폴더가 생성되고, 그 안에 index.html 정상적으로 생성 front 변경 시마다 build 해줘야 함 // 프로젝트 clone
$ git clone 프로젝트 주소

// 프로젝트가 변경되면 다시 git pull
$ sudo git pull Front 배포 – Nginx(putty) Nginx 설치 $ sudo apt-get install nginx -y Nginx 설정 파일 생성 // 기본 설정 파일 삭제
$ sudo rm /etc/nginx/sites-availallbe/default
$ sudo rm /etc/nginx/sites-enalbed/default

// 프로젝트에 대한 nginx 설정 파일 생성
$ cd /etc/nginx/sites-available
$ sudo touch maplix.conf
$ sudo vi maplix.conf //maplix.conf

server {
listen 80;
location / {
root /home/ubuntu/프로젝트명/front_end/build;
index index.html index.html;
try_files $uri /index.html;
}
} // 심볼릭 링크 생성
$ sudo ln -s /etc/nginx/sites-available/maplix.conf /etc/nginx/sites-enabled/maplix.conf Nginx 시작 // 시작
$ sudo systemctl start nginx
// 중지
$ sudo systemctl stop nginx
// 상태 확인
$ sudo systemctl status nginx
// 재시작
$ sudo systemctl restart nginx 접속 브라우저에서 IP 입력 500 Error 시 $ chmod 711 /home/ubuntu Back 연결 – pm2 (putty) // server.js 파일있는 폴더로 이동
$ cd back_end

// server 실행
$ node server

// pm2 (항상 켜진 서버)
$ sudo npm install pm2 -g

$ pm2 start server.js node 안 먹히면 back_end 폴더 내에서 nodejs, npm 재설치 참고 링크 https://velog.io/@wooreal/AWS-React-project%EB%A5%BC-AWS-EC2%EC%97%90%EC%84%9C-%EB%B0%B0%ED%8F%AC%ED%95%98%EA%B8%B0with.-git-putty-nginx [AWS] React project(express)를 AWS EC2에서 배포하기(with. git, putty, nginx) create-react-app 으로 생성한 react 프로젝트를 AWS EC2를 이용하여 배포하기. react 프로젝트는 이미 생성된 가정하에 시작한다. 1. AWS EC2 인스턴스 생성 AWS EC2 로 이동한다. 계정이 없다면 먼저 AWS 가입 velog.io https://dang2dangdang2.tistory.com/187 AWS 서버에서 NGINX 사용해서 REACT 배포하기 일단 node.js 와 npm이 깔려 있다는 전제로 시작하겠읍니다. 참고로 전 react 깃랩에서 git clone해서 땡겨왔읍니다. nginx 설치 sudo apt-get install nginx -y 기본적인 nginx 명령어 #nginx 시작 sudo service nginx start dang2dangdang2.tistory.com https://han-py.tistory.com/408 [React Web] AWS EC2 배포 ALL-IN-ONE React 프로젝트 AWS EC2에서 우분투 환경으로 배포하는 방법에 대해 알아보자. 필자도 react 배포 시 아래의 내용을 참고하여 배포를 한다. 그리고 오류가 난다면 주기적으로 추가하고 있다. 0. 들어 han-py.tistory.com https://m.blog.naver.com/software705/221337666338 [AWS Mysql] AWS ec2 Mysql 서버구축및 외부접속하기 [ AWS ec2 Mysql 외부접속] ec2 인스턴스에 mysql 서버를 설치하여 외부에서 접속하는 과정에 순… blog.naver.com https://velog.io/@issac/AWS-EC2%EC%97%90-MySQL-%EC%84%9C%EB%B2%84-%EA%B5%AC%EC%B6%95%ED%95%98%EA%B8%B0 [AWS] EC2에 MySQL 서버 구축하기 EC2에 MySQL 서버를 구축하고, 원격접속을 해보자. velog.io 2022년 공모전 당시 작성했던 내용을 옮겨서 작성한 글입니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다