프로젝트 빌드하기
이 글을 보고계신 분들은 이미 리액트 프로젝트가 있을거라고 생각한다.
빌드 명령어를 통해서 파일을 빌드한다.
$ npm run build
$ yarn build
CRA를 사용했다면 build 폴더가 생성되면서 빌드 파일들이 들어있다.
index.html과 js로 파일들이 변환된다.
이 상태로 서버에 올려봤자 서버에 접속한 사용자는 어떤 화면도 볼 수 없다.
서버에 접속할 때 사용자는 index.html을 볼 수 있도록 설정을 해주어야 한다.
S3 이용하기
이 때 S3의 정적 웹사이트 배포를 이용하면 접속할 때 index.html과 js를 브라우저에서 확인할 수 있도록 할 수 있다.
이 기능을 이용하면 따로 해주어야하는 것이 없기 때문에 React를 배포할 때 대부분 S3서버를 이용한다.
AWS S3로 React 배포하기
AWS S3, CloudFront, Route 53을 사용해서 React 배포하기
velog.io
EC2 이용하기
하지만 EC2를 사용해야한다면 그 설정을 위해서 웹서버를 동작하도록해주어야한다.
express 서버를 이용해서 동작하도록 해보자.
const http = require("http");
const express = require("express");
const path = require("path");
const app = express();
const port = 8000;
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}`);
});
이제 node server.js 명령어를 통해서 실행시켜주면 된다. 이 명령어는 서버를 끄면 같이 프로세스가 종료되기 때문에
sudo node server.js & 명령어를 이용하면 꺼지지않고 동작하게 된다.
[AWS] AWS EC2 인스턴스에 React로 만든 웹페이지 배포하기
AWS에는 사용자의 취향에 맞는 각종 서버들이 있습니다. 흔히 우리가 리액트로 만든 웹페이지는 정적 웹페이지가 많고, 정적 웹페이지는 S3만으로도 충분하나 이번에 EC2로 웹페이지를 한번 배포
sunnyfterrain.github.io
'react' 카테고리의 다른 글
[React] Github Actions로 CI/CD 적용하기 (1) | 2023.01.05 |
---|---|
[Vite] vite로 이유 모르게 웹소켓 통신이 안되는 경우(ws, sockjs) (1) | 2023.01.05 |
json-server 커스텀하기 (0) | 2022.12.19 |
[React] Lifecycle과 메소드 그리고 Hook (0) | 2022.12.12 |
[React] Redux-toolkit 입문하기 (0) | 2022.12.10 |