AWS에 node.js 배포하기 - 01 --> EC2서버 임대 + 서버 제어

하이루·2021년 12월 16일
0

서버의 조건 --> 언제나 응답 가능해야함

언제나 요청에 응답하려면,

1) 컴퓨터가 항상 켜져있고 프로그램이 실행되어 있어야하고,
2) 모두가 접근할 수 있는 공개 주소인 공개 IP 주소(Public IP Address)로 나의 웹 서비스에 접근할 수 있도록 해야해요.

서버란?

서버는 단순 컴퓨터를 뜻합니다. Node.js로 만든 것 또한 마찬가지입니다.

  • 따라서 외부 접속이 가능하게 설정한 다음에 내 컴퓨터를 서버로 사용할 수도 있어요.
  • 우리는 AWS 라는 클라우드 서비스에서 편하게 서버를 관리하기 위해서
    항상 켜 놓을 수 있는 컴퓨터인 EC2 사용권을 구입해 서버로 사용할 겁니다.

aws EC2 콘솔페이지 : https://ap-northeast-2.console.aws.amazon.com/ec2/v2/home?region=ap-northeast-2

EC2 구매 과정

인스턴스 : 클라우드에 떠있는 컴퓨터들

--> 서버란 것은 컴퓨터를 의미한다.
EC2란 것은 aws서버를 사용함에 있어서 해당 서버를 구성할 컴퓨터를 말하는 것이다.
따라서 새로운 인스턴스를 통해 EC2를 산다는 것은 서버용 컴퓨터를 산다는 것과 비슷한 의미이다.

1. 인스턴스 탭으로 가서 새로운 인스턴스를 시작

2. 새로운 인스턴스에서 내가 원하는 종류와 버전의 os( 우분투(리눅스), 윈도우, 맥 등등 )을 선택

--> 초반 1년동안은 무상으로 사용할 수 있다.
(프리 티어 확인)

3. 새로운 인스턴스의 성능을 선택한다.

--> 위에서 설명했듯이 인스턴스는 서버를 위한 컴퓨터이다.
따라서 자원(cpu, Memory, 등등)이 할당되어 돌아가게 되는데, 얼마나 자원을 할당할 것인지에 대한 내용이다.
또한 네트워크 성능 같은 부분도 여기서 선택한다.

--> 자원이 많이 들어갈수록 유지비가 비쌀 것이다.

4. 인스턴스의 네트워크 연결과 보안과 관련된 부분이다.

5. 마지막으로 서버에 접속하기 위한 권한을 주는 키페어를 만든다.

( 중요 ! ) 반드시 키페어를 다운로드 받아서 보관할 것 --> 이것이 있어야 서버에 접속할 권한을 얻음

인스턴스를 시작 한 후 다시 인스턴스 탭으로 가면 인스턴스가 실행되어 있음

--> 클라우드 서버에 컴퓨터를 하나 만든 것


서버 종료하기 --> 인스턴스 종료를 누를 경우 인스턴스가 삭제됨 --> 매우 중요 !!

--> 이후 인스턴스를 멈춰야겠다 싶을 때는 우클릭 후, 인스턴스 중지 버튼!

--> 우클릭 후, 인스턴스 종료는 인스턴스를 삭제시킨다는 말과 같다. 즉, 인스턴스를 없애면서 내부의 내용을 전부 날려버린다.
(매우 위험)


서버 접속하기

EC2접속에 대한 기본 상식

SSH(Secure Shell Protocol)

--> 다른 컴퓨터에 접속할 때 쓰는 프로그램입니다. 다른 것들 보다 보안이 상대적으로 뛰어남
--> 접속할 컴퓨터가 22번 포트가 열려있어야 접속 가능
--> AWS EC2의 경우, 이미 22번 포트가 열려있음 --> EC2 콘솔의 보안 부분에서 확인가능

윈도우에서 서버에 접속할 경우 --> gitbash라는 프로그램을 이용


git bash

--> bash는 'Bourne Again Shell'의 줄임말
--> 스티브 본(Steve Bourne)이라는 사람이 개발한, 최초의 유닉스 '쉘 프로그램'인 sh의 확장판이라는 의미

쉘(shell) 프로그램이란?

쉘(Shell)이란 키보드로 입력한 명령어를 운영체제(OS)에
전달하여 해당 명령어를 실행하게끔 하는 프로그램

유닉스 프로그램의 확장판이라는 의미

--> 리눅스 환경 때문 !
리눅스는 유닉스(Unix)계열의 운영체제를 본 떠 만들어졌기 때문에 리눅스는 유닉스의 커맨드라인 툴들을 물려받았음

--> git bash 사이트 : https://git-scm.com/downloads

맥의 경우 리눅스 환경이 구축되어 있기 때문에 기존의 terminal을 그냥 사용하면 되지만,
윈도우의 경우 그렇지 않기 때문에 다른 프로그램의 도움을 받아야 한다.

git bash를 사용한다면 Windows(윈도우) 운영체제(OS) 환경에서도 리눅스 커맨드를 사용할 수 있게 된다.

출처: https://parkjh7764.tistory.com/39 ( 더 잘 설명되어 있음 )


git bash를 이용하여 EC2에 접속

1. gitbash를 실행하고, 아래를 입력!

ssh -i 받은키페어를끌어다놓기 ubuntu@AWS에적힌내아이피

--> 키페어는 인스턴스를 시작할 때, 설정한 후 다운 받았던 키패드를 의미함( 접속 권한 부여 ) --> 그 키패드의 경로

--> 아이피는 EC2 콘솔로 가서 세부정보에 퍼블릭 IPv4 주소를 의미함

--> ubuntu@ 부분은 ubuntu라는 계정으로 접속한다는 의미이며 ubuntu는 변경이 없을 때 기본계정임

--> 즉, 해당 ip의 서버에 ubuntu라는 계정으로 접속할 것이라는 의미

--> 완성되면 이런 느낌의 코드가 됨

ssh -i /path/my-key-pair.pem ubuntu@13.125.250.20


1-2 Key fingerprint 관련 메시지가 나올 경우 Yes를 입력

이제 접속 완료


2 사용 후 접속 종료하기

git bash를 종료할 때 --> 중요 !!!!!!!!!

--> exit 명령어를 입력하여 ssh 접속을 먼저 끊어주세요.

간단한 리눅스 명령어

리눅스는 윈도우 같지 않아서, '쉘 명령어'를 통해 OS를 조작한다. (일종의 마우스 역할)

팁! 리눅스 커널에서 윗화살표를 누르면 바로 전에 썼던 명령어가 나옵니다.

[가장 많이 쓰는 몇 가지 명령어]

ls: 내 위치의 모든 파일을 보여준다.

pwd: 내 위치(폴더의 경로)를 알려준다.

mkdir: 내 위치 아래에 폴더를 하나 만든다.

cd [갈 곳]: 나를 [갈 곳] 폴더로 이동시킨다.

cd .. : 나를 상위 폴더로 이동시킨다.

cp -r [복사할 것][붙여넣기 할 것]: 복사 붙여넣기

rm -rf [지울 것]: 지우기

sudo [실행 할 명령어]: 명령어를 관리자 권한으로 실행한다.
sudo su: 관리가 권한으로 들어간다. (나올때는 exit으로 나옴)

profile
ㅎㅎ

0개의 댓글