상세 컨텐츠

본문 제목

AWS EC2로 프론트서버배포

Coding/WEB

by hwlink 2021. 12. 25. 18:02

본문

Amazon Elastic Compute Cloud

다양한 오에스버전의 가상서버를 제공하는 아마존 웹서비스 

 

인스턴스 생성

 

1. EC2에서 사용할 os머신 설정 (프리티어 버전 우분투 18.04 64bit)

2. CPU 메모리 등 서버의 규모 선택 프리티어 t2.micro선택

3.인스턴스 구성

- virtual pirvate cloud AWS 가상 전용 네트워크 : 아이피 주소를 기반으로 한 논리적인 네트워크 공간 구성가능, 방화벽 접근제어 설정가능케 해준다. 

- 퍼블릭ip 자동할당 : 동적으로 공인아이피 부여, EC2 인스턴스 재시작시 자동으로 변경 추후 고정아이피를 사용하려면 Elastic아이피설정

- 종료방식 :

중지: 인스턴스 셧다운시에 os 정지 >> os이미지 보존 재시작시 다시 시작

종료: os종료 동시에 EC2인스턴스 삭제된다

종료방지기능 활성화

4.스토리지 추가 

EBS(Elastic Block Storage) EC2마운트에서 사용하는  스토리지 타입이다.

5.태그 추가 

키, 밸류 부여

6. 보안그룹구성

- EC2에서는 http, https 접속을 허용하여야하는데 그러기위해선 규칙추가를 해줘야한다.

- 기본적으로 모든 아이피주소로부터 ssh에 접속허용되어있다.

- EC2에서 포트 8000으로 웹서버를 돌리고 API호출이 되게 하려면 포트8000에 어떤 IP든 접속 할 수 있게 설정 추가해줘야한다

규칙추가 > 포트범위 8000설정 > 위치무관설정

 

키페어 지정 후 펜딩

 

 

터미널 실행

aws 아이피 주소 복사 후 하단 

1. 우분투 서버 열기

ssh -i key이름.pem ubuntu@나의 aws ip주소

2. 우분투 서버에 node 다시 깔기

curl -sL <https://deb.nodesource.com/setup_14.x> | sudo bash -

sudo apt-get update
sudo apt-get install nodejs

3. 프로젝트 clone 및 install

git clone 프로젝트_repo_주소
cd 프로젝트_repo_주소
npm install

4. server.js

vi server.js
// insert 모드로 아래 코드 복사 붙여넣기

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}`);
});
npm install express --save

5. build 후 run server

npm run build
node server.js

배포성공

 

 

 

 

관련글 더보기