React를 EC2에 배포하고 실행하기 전에 Node.js가 설치 되어있어야 합니다.
Node.js가 설치되어 있지 않으면 링크를 참고하세요..
https://ksshim.tistory.com/146
AWS EC2 Linux 2003에 Node.js 설치
AWS EC2 인스턴스에 React를 배포하기 전에 Node.js 가 설치되어 있지 않으면 먼저 설치해야 합니다. 1. nvm 설치하기 $ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash 2. nvm 명령어를 사용
ksshim.tistory.com
1. EC2에 Git 설치 및 설치된 버전 확인
$ sudo yum update // 초기에 package 들을 update 해준다.
$ sudo yum install git
$ git --version
git version 2.40.1
2. 프로젝트 소스를 저장할 디렉토리로 이동
$ pwd
/home/ec2-user/app
3. git clone 실행
$ git clone https://github.com/계정명/레포지토리명.git
Username for 'https://github.com': git계정
Password for 'https://git계정@github.com': git계정 비밀번호
정상적으로 수행되지 않으면 링크 참고하세요.
https://ksshim.tistory.com/142
AWS EC2 인스턴스에 SpringBoot 프로젝트 배포
ec2 서버에서 git에 있는 소스를 내려받은 후, gradlew를 이용해서 소스를 빌드하는 과정입니다. 1. EC2에 Git 설치 및 설치된 버전 확인 $ sudo yum update // 초기에 package 들을 update 해준다. $ sudo yum install g
ksshim.tistory.com
4. 프로젝트가 정상적으로 다운되었는지 확인
ll 명령어로 레포지토리명 디렉토리가 생성되었는지 확인
5. npm install 및 build
내려받은 소스 디렉토리에서 lib를 설치 및 build를 합니다.
$ npm install
$ npm run build
6. 웹서버 설치하기
EC2에서 React를 실행하기 위해서 웹서버가 있어야 하는데 여기서는 Express를 사용하겠습니다.
express 설치
$ npm install express
7. server.js 파일 생성
내려받은 소스 루트 디렉토에서 server.js 파일을 생성합니다.
const http = require("http");
const express = require("express");
const path = require("path");
const app = express();
const port = 3000;
app.get("/ping", (req, res) => {
res.send("pong");
});
app.use(express.static(path.join(__dirname, "build")));
app.get("/*", (req, res) => {
res.set({
"Cache-Control": "no-cache, no-store, must-revalidate",
Pragma: "no-cache",
Date: Date.now()
});
res.sendFile(path.join(__dirname, "build", "index.html"));
});
http.createServer(app).listen(port, () => {
console.log(`app listening at ${port}`);
});
8. 서버 실행
$ node server.js &
"app listening at 3000" 문구가 나오면 정상적으로 배포가 된 것입니다.
9. 배포스크립트 참고 (deploy.sh 파일)
#!/bin/bash
REPOSITORY=/home/ec2-user/app/front
echo "> git pull"
git pull
echo "> npm install"
npm install
echo "> npm build"
npm run build
echo "> check the currently running app PID"
CURRENT_PID=$(pgrep -f server)
echo "> currently running app PID : $CURRENT_PID"
if [ -z "$CURRENT_PID" ]; then
echo "> currently running app no";
else
echo "> kill -15 $CURRENT_PID stop"
kill -15 $CURRENT_PID
sleep 5
fi
echo "> new app deploy"
node server.js &
'AWS' 카테고리의 다른 글
AWS EC2 인스턴스에 CodeDeploy Agent 설치 (0) | 2024.04.03 |
---|---|
AWS S3 bucket 만들기 (0) | 2024.03.27 |
AWS EC2 Linux 2003에 Node.js 설치 (0) | 2024.03.21 |
AWS EC2 인스턴스에 SpringBoot 프로젝트 배포 (배포 스크립트) (0) | 2024.03.21 |
AWS EC2 프리티어 메모리 부족현상 (0) | 2024.03.21 |