AWS EC2 생성, 연결, 배포

khsi12345·2020년 9월 26일
0
post-thumbnail

SSH 생성 방법

  1. ssh-keygen
  2. ssh-keygen에서 파일명 설정 => 파일명.ssh
  3. cat ~/.ssh/id_rsa.pub
  4. github 가서 계정 settings에서 SSH and GPG keys에서 New SSH key 버튼 클릭
  5. title 입력과 3번 명령어 실행하면 나오는 코드를 입력.

pem key 생성 방법

EC2 설정에서 가장 마지막에 pem key를 기존것으로 설정 및 생성할 수 있는데 기존 pem key가 있다면 기존것을 사용,
없다면 새로운 pem key 생성.

AWS 서버 접속 방법

ssh -i pem파일명.pem ubuntu@EC2 IP4주소(0.0.0.0)(pem키가 있는 디렉토리에서 명령어 사용할때)
ssh -i ~/pem키가 있는 디렉토리/pem파일명.pem ubuntu@EC2 IP4주소(0.0.0.0)(pem키가 없는 디렉토리에서 명령어 사용할때)
위 명령어 실행시 permision error가 발생하면 chmod -R 400 파일명.pem을 실행하고 다시 위 명령어 실행.

인스턴스 종료 방법

작업에서 인스턴스 설정에서 종료 방지 기능 변경 작업에서 인스턴스 상태에서 종료 디스크 제거는 볼륨에서.

AWS EC2 생성, 설정

  1. AWS에서 인스턴스 시작
  2. 우분투 18.04 선택
  3. 프리티어 사용 가능한 항목 선택
  4. 인스턴스 개수 1 / 네트워크 기본값 2a / 퍼블릭 IP 자동 할당 서브넷 사용 설정(활성화) 종료방식 중지 / 종료 방지 기능 활성화 체크 /
  5. 스토리지 8기가 / 종료 시 삭제 체크
  6. 키와 값 설정하기no
  7. 보안 그룹 구성에서 기존 보안 그룹 선택에서 launch-wizard-1 선택

AWS EC2 서버에서 노드 환경 구성 및 프로젝트 실행

  1. AWS 서버에 접속
  2. sudo apt update -> curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash - -> sudo apt-get install -y nodejs
  3. git clone하기
  4. sudo npm install -g yarn or npm install
  5. 프로젝트 디렉토리 들어가기
  6. sudo yarn
  7. sudo yarn add express
  8. vi server.js
    i누르고(insert 모드 진입) 아래 코드 입력
const express = require("express");
const path = require("path");
const env = process.env.ENV;
const app = express();
app.get("/ping", function(req, res) {
 res.send("pong");
});
app.use("/", express.static(path.join(__dirname, "build")));
app.get("/*", function(req, res) {
 res.set({
   "Cache-Control": "no-cache, no-store, must-revalidate",
   Pragma: "no-cache",
   Date: new Date(),
 });
 res.sendFile(path.join(__dirname, "build", "index.html"));
});
app.listen(80, () => {
 console.log("listening: " + env);
});

esc키 누른 후 :wq 엔터

  1. sudo yarn build
  2. node server.js
  3. nohup node server.js& or EC2 IP4주소
    위 10번 11번 중 선택해서 서버 실행

3000포트 사용 확인 명령어

netstat -anp | grep :3000
netstat -lntp
ps -ef | grep node

포트 종료 명령어

sudo kill -9 포트넘

profile
프론트엔드 개발자. ios 앱, web, 만화(애니메이션)에 관심주기

0개의 댓글

관련 채용 정보