[AWS] EC2를 이용한 웹 배포와 도메인 연결 -2-

용용이·2023년 11월 30일
0

AWS

목록 보기
4/5

[AWS] EC2를 이용한 웹 배포와 도메인 연결 -1-

이전 포스팅에서는 AWS를 사용하여 EC2 인스턴스를 만들고 탄력적 IP 연결 및 CMD를 통해 EC2 인스턴스에 접근하는 방법까지 알아보았습니다.

이번 포스팅은 EC2 인스턴스에 간단한 웹 프로젝트를 배포해 보겠습니다.

저는 Node.js express를 사용하여 웹 서버를 구성하였는데 3030 포트로 요청이 올경우 접속된 아이피를 보여주는 간단한 구성입니다.

Node.js 템플릿은 기본 웹 템플릿이기에 따로 설명을 하지는 않겠습니다.
소스코드 전체가 궁금하실 경우는 깃허브를 통해 소스를 받으시길 바랍니다.
index.js 코드는 다음과 같습니다.

const express = require("express");
const cors = require("cors");
const app = express();

app.set("port", process.env.PORT || 3030);
app.set("host", process.env.HOST || "0.0.0.0");

app.use(cors())

app.get("/", function (req, res) {
  res.send("접속된 아이피: " + req.ip);
});

app.listen(app.get("port"), app.get("host"), () =>
  console.log(
    "Server is running on : " + app.get("host") + ":" + app.get("port")
  )
);

Visual Studio Code 내부의 cmd를 사용하여 로컬 서버를 실행해 보겠습니다.

접속해 보니 문제없이 접속됩니다.

이제 1편에서 생성한 EC2 인스턴스 환경에서 해당 프로젝트를 실행해 보도록 하겠습니다.
저는 사전에 깃허브에 해당 프로젝트를 게시해 놨습니다.

인스턴스 실행에 앞서 3030, 80(http), 443(https) 포트를 오픈하도록 하겠습니다.
"보안 그룹" 클릭 후 1편에서 생성한 EC2 인스턴스를 클릭한 후 "인바운드 규칙 편집"을 클릭합니다.

"규칙 추가"를 클릭 후 "사용자 지정 TCP" 지정 후 포트번호 3030을 입력한 후 허용 아이피를 사진과 같이 모든 아이피를 허용한다는 의미의 "00.0.0./0" 을 선택한 후 "규칙 저장"을 클릭합니다.

위와 같은 방식으로 80번, 443번 포트도 열어주도록 하겠습니다.

저는 별도의 웹페이지를 두지 않고 웹 서버만 구성하였는데 웹 페이지가 있을 경우 아래와 같이 진행하시면 됩니다.

웹페이지 빌드하기

웹페이지를 올리고자 하는 git clone repo주소

  • 우분투 서버에는 아무것도 깔려있지 않아 npm을 사용할 수 없기 때문에 설치해 줍니다.

  • 우분투 서버에 node 설치

curl -sL https://deb.nodesource.com/setup_14.x | sudo bash -
sudo apt-get install nodejs
  • clone 했던 곳에 가서 npm install 을 해줍시다.

  • build 를 해줍니다. 기본 명령어는 npm run build 입니다.

웹서버 설치하기

EC2 인스턴스에 접속 후 git을 통해 웹서버 실행에 필요한 파일을 다운로드하겠습니다.

git clone https://github.com/sm-dragon/Node_Express.git

EC2 에서 웹페이지 배포를 하려면 웹서버를 설치를 해야 합니다.
여기서는 nodejs Express 를 설치하겠습니다.

명령어를 쳐서 express를 설치해 줍니다.

curl -sL https://deb.nodesource.com/setup_14.x | sudo bash -
sudo apt-get install nodejs
npm install express
npm install cors

이제 서버를 실행해 보겠습니다.
node index.js 를 실행하여 Server is running on : 0.0.0.0:3030 이 잘 뜨는지 확인!

그리고 퍼블릭 IP주소를 브라우저에 쳐봅시다.

저는 43.201.209.183 이므로 43.201.209.183:3030 으로 브라우저에 접속하니
문제없이 서버가 동작하는 걸 확인할 수 있습니다.

이번 포스팅에서는 EC2 인스턴스에 간단한 웹 프로젝트를 배포해 보았습니다.
다음 편에서는 도메인에다가 EC2 인스턴스를 연결하여 도메인을 통하여 접속해 보도록 하겠습니다.

profile
Dragon

0개의 댓글