TIL

2024.02.06 TIL 배포 / ubuntu / pm2

영우는여전히 2024. 2. 6. 22:14

배포하는데 생각보다 시간이 오래걸렸다.

 

Ubuntu 란?

 

리눅스에는 다양한 배포판이 존재한다. Red Hat, CentOS, Debian, Fedora, Linux Mint 등이 있다.

우분투도 또한 리눅스 배포판이다.

 

안전하고 안정적이다.

 

 

AWS에 우분트 EC2를 만든다

 

AWS 에서는 컴퓨터 하나의 단위를 Instance 라고 부른다.

 

인스턴스 하나 생성하는 것은 서버 컴퓨터를 하나 대여하는 것과 같다.

 

 

이거는 당연히 잊으면 안 된다.

 

인스턴스 시작을 하고

우분투로 선택한다음

프리티어로 기본으로 되어있는 것으로 선택하면 된다.

키페어 이름은 잘 기억해두고

유형은 RSA

파일형식은 .pem 로 다운 받아 잘 보관한다.

 

 

리눅스는 마우스가 없는 이유.

 

서버에서 자주 필요하지 않은 화면을 그려내기 위해

CPU, Memory(RAM)를 사용하는것보다 서버 프로그램을 운영하는데 사용하는게 훨씬 비용 효율적이기 때문에

이와 같이 사용하는것이 기본이자 관습이 되었습니다.

화면을 사용하지 않으니 당연히 마우스도 사용하지 않게 되었다고 한다.

 

 

aws에서 아시아 태평양 서울을 선택하고

 

EC2-> 인스턴스 생성 누른다.

 

 

우분투를 따로 깔려고 했었는데

 

엄청 오래걸리고 뭔가 복잡한 것 같아서

 

뭘까 했는데 그게 아니였다..

 

그냥 aws에서 인스턴스 생성 -> 서버 컴퓨터 한대 빌리기 같은 느낌.

 

그냥 쓰는 거였다.

 

 

키 페어 생성을 할 때는

 

권한 조정이 필요하니 잘 보관도 해놔야 한다.

 

이름 설정 -> 유형 RSA -> 키 파일 형식 .pem

 

 

키페어는 누군가의 의해 훼손되거나 수정되면 안된다고 한다.

 

소유자 한정으로 읽기전용으로 바꿔줘야 한다

 

# 다운로드 폴더로 접근합니다.

cd Download

# sparta_keypair.pem 파일의 권한을 읽기만 가능하도록 수정합니다.

sudo chmod 400 sparta_keypair.pem

 

맥 터미널에서는 ssh 바로 접속이 가능하다. -> 맥을 사자 맥을 사자 맥맥맥

 

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

 

이것만 기억하면 된다고 보면 된다.

 

우분투 접속하게 되고

 

이런 화면이 나온다.

 

 

EC2 Instance 에서는 모든 것을 명령어로 조작한다.

 

????

curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -

sudo apt-get install -y nodejs

 

노드 v18 깔기

apt-get 리눅스 운영체제에서 지원하는 패키지 매니저에서 원하는 패키지 까는 명령어다.

Advanced Package Tool

 

APT Developers / apt · GitLab

The APT package management tool

salsa.debian.org

 

# 설치된 Node.js 버전 확인하기
node -v

# 설치된 npm 버전 확인하기
npm -v

 

그 다음에 똑같이 터미널에서 깃 클론 하면 된다!

 

# 원격 저장소로 부터 코드 가져오기
git clone <Github Repository URL>

 

1. `cd nodejs-todo-list` : 원격 저장소로부터 가져온 프로젝트로 이동합니다.
2. `sudo npm install -g yarn` : yarn을 사용하기 위해, 전역으로 yarn을 설치합니다.
3. `yarn` : 원격 저장소로 부터 가져온 프로젝트의 의존성 및 패키지를 설치합니다.
4. `node app.js` : 프로젝트를 실행합니다.

 

나는 yarn 을 쓰기 싫어서 저거는 안 했다.

 

 

EC2 들어가서 인스턴스 아이디 누르면 퍼블릭 ip 주소가 있는데

 

브라우저에 이렇게 입력하면 된다.

 

http://<복사한IP>:3000

 

사실 아직 안 된다.

 

서버 방화벽에서 접속 허용이 안되었기 때문이다.

 

IP 주소는 컴퓨터가 가지는 고유한 주소 인데 

정확히는 통신이 가능한 모든 기기가 통신할 수 있도록

가지고 있는 인터넷에서의 특수한 주소라고 보면 된다.

 

 

각 기기가 어디에 있는지 알려주는 좌표와 비슷하다고 생각하면 쉬운데

 

이 주소가 공인 IP, 사설 IP 가 나눠지게 된다...

 

일반적으로 인터넷 사용하려면 무조건 하나 이상의 공인 주소가 있어야만 한다.

- **공인 IP주소(Public IP Address)**는 **인터넷 전체에서 유일**하며, 이 주소를 통해 외부에서도 접근이 가능합니다.
- 사설 **IP주소(Private IP Address)**는 하나의 **네트워크 내부**에서만 사용되며, 외부에서는 접근이 불가능합니다.

 

통신이 가능한(IP를 가진) 모든 기기는 포트(Port)라고 불리우는

데이터가 드나들 수 있는 통로가 있습니다.

하나의 포트는 여러 프로그램이 같이 사용할 수 없다는 의미가 됩니다.

만약, IP 주소를 집 주소에 비유하자면, 포트는 그 집 안의 특정한 방에 해당하는 것으로 생각하면 쉽게 이해할 수 있습니다.