All Articles

wecode 6주차_3일 TIL_도전! AWS 서버 열기

미리 말하지만 타이틀에 ‘도전’ 이라고 써 있는 것처럼 성공적인 결과물은 아닙니다… 그냥 이런 과정을 거치면 되는구나 정도로 넘어가셔야 합니다. 이번 포스팅의 설명은 친절한 편이 아닙니다.. 중간중간 넘긴 부분이 많습니다 ㅠㅠ

왜냐… aws에서 자꾸 인증문제가 생겨서 세션 중간중간에 뻘짓을 했기 때문이져

image.png

IDC(Internet Data Center)란?

사진과 같은 서버 방 같은거! 층이나 장을 빌려서 서버 쓰는 것. But, 관리 비효율성, 인건비… 등의 문제로 인해 가상화 해보자! 해서 나온게 바로!

EC2

아마존 입장에선 컴퓨터 하나 만든다고 생각하면 되고, 우리는 아마존한테 서버를 빌린다고 생각하면 된다.

우리는 돈을 내면 안되니깐 프리티어라고 750시간 무료로 쓸 수 있는 걸 쓸것. 사용한 기준으로 월 750시간이 무료이다! 아마..?ㅋㅋ 자세한 건 aws 홈페이지에서 확인할 수 있다

그 밖에 알면 좋은 것들…

Secuirty Group

IP주소에 대한 방화벽

RDS(Relational Database Service)

AWS의 데이터베이스 서비스

Load Balancer

동일한 서버가 있으면 load balancer가 중간에서 골고루 들어가도록(?) 분배를 해줌

EC2 생성해보자!

  1. 서비스탭의 -EC2 클릭 그리고 인스턴스 시작 누름
  2. 우분투서버 18.04 선택(프리티어 사용 가능이라고 써있음)

인스턴스 세부 정보 구성 설정은 이렇게..

  1. 인스턴스 개수 : 1
  2. 네트워크 : 기본값
  3. 서브넷(Sub-network) : 기본값 2a(처음껄로)
  4. 퍼블릭 ip 자동할당 : 기본값 활성화로
  5. 종료방식 : 중지 => 종료 하면 서버 날려버림(우발적인 종료로부터 보호 체크)

키 발급받기

image.png

키 생성하고 잘 보관해야함.

image.png

키 다운하고 인스턴스 시작해야함. 한번 안 받으면 끝임

이어서

터미널에서 cd ~/.ssh 한담에

ssh-keygen 하면 키를 생성할 수 있음

image.png 엔터 쭉쭉~ 저기서 비번 설정하면 실행 할때마다 비번 입력해야되서 ㄴㄴ

다시 ssh 디렉토리에서 ls 해보면 id_rsa id_rsa.pub known_hosts 세개가 생겼음

cat id_rsa.pub 하면 키 생성할 수 있음 키 복붙하고 깃허브로 고고

그 전에!! chmod -R 400 명령어를 통해 권한설정을 해야함. 권한설정을 하지 않으면 아마존에서 나의 키를 쓸 수가 없음 ㅠㅠ

github settings 들어가서 SSH Keys 누르면 New SSH Keys 눌러 title은 내맘대로 하삼~ 나는 ubuntusiro로 했음

image.png

내 repository로 들어가서.. git clone 클릭하면

image.png

이게 뜨는데 Use SSH 누르고 주소 복붙

git clone 하고 복붙한 주소 붙이면 끝~

우분투 서버 열기

ssh -i 다운로드/dooreplay.pem ubuntu@나의 aws ip주소

띄어쓰기 주의! ssh 하고 띄어쓰기 한 담에 -i 고고!
그담에… 뭐했더라… 일단 이거

ssh 키 생성

ssh-keygen -t rsa -b 4096 -C "이메일주소"

하면 키가 새로 생성된것임 ssh 디렉토리로 들어간담에 cat id_rsa.pub 하시오

여기서 나온 키값을 예리님께 보내면 성공~ 나는 위코드 기준으로 설명을 썼지만.. 누구에게 이 키 값을 공유하면 좋을진 모르겠다 ㅋㅋ

그러고 나서

우분투에 node랑 다시 깔기 왜냐

우분투 서버엔 아무것도 안 깔려있거든. 내 컴터랑 다르게! 그냥 새 컴터 샀다고 생각하고 개발에 필요한 프로그램들을 다 다운받으면 된다.
curl -sL https://deb.nodesource.com/setup_10.x | sudo bash -

sudo apt-get update sudo apt-get install nodejs

git에서 repository clone해오기

git clone 프로젝트 repo 주소

그러면 우리는 아마존 서버에 repo를 까는거!

일단 npm install 하고.. 안되면 갓 sudo 찬양하라! sudo 명령어를 쓰면 웬만한 건 다 해결쓰

(과정 중간중간에 npm -v 이런식으로 버전 체크 꼭! 그럼 깔았는지 안 깔았는지 알 수 있음)

build하기

npm run build 명령어를 쓰면 모든 개발코드들이 합쳐지게 됨

vi 명령어 쓰면 코드편집기 쓸 수 있음

image.png

오와 신기신기!

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(8080, () => {
  console.log('listening: ' + env);
});

이거 붙붙 서버주소 8080을 3000으로 바꾸고 esc:wq + Enter 이 명령어 쓸 때 주의사항.. 한꺼번에 누르지 말고 순차적으로 누르자. 맴이 급해서 한방에 누르면 멋없다

그 담엔.. npm install express

node server.js

하면 떠야 하는데!!!!난 자꾸 node.scss가 안 깔려 있단 에러가 났다.. 이렇게. 스크린샷, 2019-09-06 20-07-55.png

우분투의 문젠가 싶었는데 맥을 쓰는 동기님도 나와 같은 에러가 떴다… 그 분이 맥을 사기 당한 것인가.. 아니면 나와 같은 똥손인가 ㅋㅋㅋㅋㅋ

여튼 이 에러에 대해 해결하려면 EC2를 생성하는것부터 다시 해야한다는데… 추석연휴때 다시 한번 도전할 예정