[Nest.js] 험난한 첫 서버 배포기

xii·2023년 7월 10일
0

여기 서버 배포를 처음 하는 사람이 있습니다.

이 사람은 그냥 온갖 인터넷을 뒤져가면서 배포를 했는데요.

여러분은 부디 한 번에 성공하시길 바라며 제 서버 배포 과정을 적습니다.

🗄️ AWS EC2 인스턴스 생성

EC2 인스턴스를 우선 생성해주었습니다.

저는 ubuntu 환경, t2.micro, 프리티어 최대인 30GB로 생성했습니다.

키 페어는 rsa로, 외부 접속은 다 허용해주었습니다.

고급 세부 정보같은 건 설정 안했습니다. 초보가 건드리기에는 너무 무섭습니다...

탄력적 IP 할당하기

- 생성 햇으니 이제 서버 배포 된 건가요 ?!

- 아직 한참 남았습니다 ^^

탄력적 IP도 할당해주어야 한다고 하네요.

자세한 이유는 나중에 찾아보도록 하고 할당해주러 가겠습니다.

왼쪽 탭에서 네트워크 및 보안 에 있는 탄력적 IP를 클릭해줍니다.

우측 상단의 탄력적 IP 주소 할당을 클릭하면 다음과 같은 화면이 뜹니다.

솔직히 뭐라는지 모르겠어서 구글링해서 찾아보고 그냥 넘겼습니다.

저대로 놔두고 그냥 할당 클릭해줍니다.

이제 전 화면으로 돌아가서, 할당된 IP를 체크해주고 우측 상단의 작업 버튼을 클릭해줍니다.

그러면 탄력적 IP 주소 연결이 보이실텐데요, 그걸 클릭해주세요.

여기서 인스턴스를 클릭하면 프라이빗 IP 주소는 자동으로 하나밖에 안 나오더라구요.

저는 재연결은 비허용해주었습니다.

연결 버튼을 클릭하면 탄력적 IP도 연결 끗.

🏗️ 서버를 올리러 EC2 갈까요 서버를 올리러 Docker를 갈까요

제목은 반쯤 장난입니다.

다시 인스턴스 화면으로 돌아와서, 연결 버튼을 클릭해줍시다. 여전히 우측 상단에 버튼이 있습니다.

그러면 ssh 클라이언트라는 창으로 넘어갈텐데, 거기 있는 명령어를 일단 복사해두세요.

명령어가 많은데 뭐 복사해야 해요?

맨 아래에 예 : ssh -i ... 로 시작하는 거 복사하시면 됩니다.

아까 키 페어 생성하실 때 받은 .pem 파일을 적당한 디렉토리로 옮겨주시고, 서버 올릴 준비를 합시다.

저는 바탕화면으로 옮겨서 /Desktop에 있습니다.

터미널을 열고 디렉토리를 요리조리 옮겨 .pem 파일이 있는 곳까지 옮겨줍니다.

그리고 명령어를 쳐요.

chmod 400 여러분파일이름.pem

권한 설정 명령어입니다.

이제 이걸 갖고 아까 복사하신 ssh -i ... 명령어를 붙여넣으시면 접속이 되실 겁니다.

접속했다고 끝은 아니겠죠? 당연히 아닙니다.

sudo apt install curl 
curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash 

source ~/.bashrc 

nvm install node

요런 짓거리도 해주고,,, (한줄씩치새요)

git clone 레포지토리주소를 통해 소스를 받아옵니다.
혹시 .gitignore 때문에 깃허브에 안 올라온 파일이 있으면 적당히 디렉토리를 움직여서 cat >파일이름.확장자 명령어로 만들어주세요.

저같은 경우에는 .env 파일이 안 올라와 있어 직접 만들었습니다.

이제 코드도 긁어왓으니 돌아가나요?
아니요, DB 넣어야 해요.

🗃️ 디비디비딥 디비디비디비딥 DB

DB 구축 쪽은 이 분의 블로그를 보시면 좀 더 좋을 것 같습니다.
저도 저기 보고 했거든요.

암튼 여기에도 쓸게요.

도커부터 깔아주겠습니다.

sudo apt-get install docker.io

docker pull (DB이름) # 저같은 경우에는 mysql을 썼으므로 mysql이라고 썼습니다

docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=[비밀번호] --name [container명] mariadb

docker ps # 확인용, 건너뛰셔도 됩니단

docker exec -it [container명] /bin/bash # 컨테이너 내부 진입

mysql -u root -p # mysql cli 접속

create schema 테이블이름;

exit

exit

이제 mysql도 설정했으니 redis 차례입니다.

sudo apt-get install redis-server # 레디스 설치

sudo systemctl start redis # 레디스 실행

# 외부로 포트를 열겠습니다
sudo vi /etc/redis/redis.conf 
# 이 명령어 치고 쭉 내리다가 
# bind 127.0.0.1 :: 1 이라고 쓰여있는 거 발견하시면
# 그대로 bind 0.0.0.0 으로 바꿔주시면 됩니다

sudo systemctl restart redis # 재시작

이제 redis까지 마쳤으니 인스턴스 설정 한 번만 더 하고 가죠.

🪤 인바운드 보안 그룹 설정

적당히 만져서 포트 열고 IP 설정 해주시면 됩니다.

저는 몰라서 그냥 다 0.0.0.0 해놨는데 이러면 보안에도 안 좋으니까,, 여러분은 잘 열길 바랍니다.

포스팅 끗

profile
내가 그다지 사랑하던 그대여 내 한평생에 차마 그대를 잊을 수 없소이다 내 차례에 못 올 사랑인 줄은 알면서도 나혼자는 꾸준히 생각하리라 자 그러면 내내 어여쁘소서 - 이상, <이런 시>

0개의 댓글