TIL 21 | AWS 란 ?

kim seung chan·2021년 9월 12일
1

AWS는 Amazon Web Service의 줄임말 입니다. AWS는 소위 클라우드 서비스라고도 합니다. 클라우드 서비스는 서버 등의 인프라스트럭쳐를 필요한대로 on demand로 사용할 수 있는 서비스 입니다. 즉, 유저가 직접 서버를 구입하고 설치할 필요 없이 AWS상에서 클릭 몇번으로 서버를 구축하고 사용할 수 있습니다.

EC2

  • Elastic Compute Cloud
  • AWS 상에서 사용하는 Server. EC2 서버에 API를 배포하게 된다.
  • EC2는 다양한 사양 옵션을 제공한다. t2.nano (CPU 1, 0.5 GB memory) 부터 x1.32xlarge (CPI 128, 1952 GB) 까지 다양하게 제공함으로 필요한 사양의 EC2 인스턴스(instnace)를 선택해서 사용하면 된다 (물론 사양이 좋을 수록 비싸다).

RDS (Relational Database Service)

  • AWS의 database 서비스
  • RDS를 사용하면 사용자가 직접 서버를 생성해서 데이터 베이스를 설치하고 설정하고 관리 하지 않아도 된다.
  • 그러면서 동시에 비용도 더 저렴하다. 사용자가 직접 데이터 베이스를 설치하고 운영하는 것보다 RDS를 사용하는것이 더 저렴함. 즉, RDS를 사용 하지 않을 이유가 거의 없다.

AWS S3

  • AWS S3(Simple Storage Service)는 이름 그대로 파일을 쉽게 저장할 수 있는 공간을 제공하는 서비스.
  • 파일을 저장 할 수 있을 뿐만이 아니라 파일마다 고유 주소를 부여해주기 때문에 S3에 저장한 파일을 웹상에서 쉽게 읽어들일수 있다.
  • 주로 사이트상의 이미지들을 저장하고 사이트에서 읽어들여 렌더링 해주는데 사용한다.

배포과정 코드

1. 우분투 서버 열기

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

2. 우분투 서버에 node 설치

curl -sL https://deb.nodesource.com/setup_10.x | sudo bash -

sudo apt-get update
sudo apt-get install nodejs

3. 프로젝트 clone 및 install

git clone 주소
cd 프로젝트 파일명 
npm install

4. server.js

vi setver.js
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 istall express --save

5. build run server

npm run build
node server.js

0개의 댓글