정화 코딩

[Back-end] AWS EC2 인스턴스를 이용한 백엔드 배포 본문

Web Development

[Back-end] AWS EC2 인스턴스를 이용한 백엔드 배포

jungh150c 2024. 9. 7. 03:22

EC2 인스턴스 생성하기

AWS에서 회원 가입 후 로그인을 한다. 루트 사용자 이메일로 로그인 하면 된다.

(AWS는 내가 알기로 1년 동안 무료로 사용 가능하고, 기한이 끝나면 다른 메일 주소로 새로운 계정을 만들어서 사용하면 된다고 한다.)

메뉴에서 ec2를 클릭하고 "인스턴스 시작" 버튼을 클릭해준다.

 

이름 및 태그: 원하는 이름으로 설정한다.

애플리케이션 및 OS 이미지(Amazon Machine Image): 원하는 운영체제를 선택한다. 나는 리눅스를 선택하였다.

인스턴스 유형: 프리티어 사용 가능한 것으로 설정한다. 아마도 기본으로 t2.micro로 되어있을 것이다.

키 페어(로그인): 이미 키가 있다면 선택해주면 되고, 없다면 새 키 페어를 생성해준다. 

나머지 설정들은 그대로 두고 "인스턴스 시작"을 눌러준다.

 

인바운드 규칙 설정하기

 

SSH 접속을 위해 22번 포트를 열어 놓고, 노드 서버 연결을 위해 3000번 포트를 열어 놓는다. 나는 prisma studio도 사용하기 위해 5555번 포트도 뚫어주었다. 

 

인스턴스에 mySQL, git 설치하고 세팅하기

(installing mysql in linux using the mysql yum repository 문서 참고)

설치해준 후 레포지토리를 클론한다.

인스턴스를 생성할 때 설정한 키 페어는 로컬디스크 > 사용자 > Junghwa 아래에 둔다.

p.s. 일반적으로 데이터베이스는 백엔드 서버와 다른 곳에 두는 것으로 알고 있다. 하지만 이번이 첫 배포이기도 하고 시간이 여유있지 않았던 터라 같은 인스턴스에 배포했다. 

 

인스턴스에서 백엔드 서버 실행하기

ssh -i codeit-key.pem {인스턴스의 퍼블릭 IPv4}

명령 프롬프트에 위와 같은 명령어를 입력하여 인스턴스로 접속한다.

Host ec2
    Hostname {인스턴스의 퍼블릭 IPv4}
    User ec2-user
    IdentityFile ~\codeit-key.pem

참고로 로컬디스크 > 사용자 > Junghwa > .ssh > config에 위와 같은 내용을 적어주면

ssh ec2

이렇게 간단하게 인스턴스로 접속할 수 있다.

해당 프로젝트가 있는 폴더로 이동 후 prisma 초기 설정, npm 패키지 설치, .env 파일 생성 등 초기 세팅을 해준다.

명령 프롬프트에 npx prisma studio를 입력하면 5555포트로 데이터베이스를 볼 수 있다. (http://{인스턴스의 퍼블릭 IPv4}:5555)

node index.js &

백엔드 서버 프로그램이 있는 폴더로 가서 위와 같은 명령어를 입력하여 백엔드 서버를 백그라운드로 실행시킨다.

ps -ax | grep node

ps는 현재 실행 중인 프로그램을 보여준다. 따라서 위와 같이 입력하면 현재 실행 중인 프로그램 중 node가 들어간 것들을 출력해준다.

kill {프로그램 아이디}

ps로 확인한 프로그램 아이디를 통해 프로그램을 종료시킨다.

exit

작업이 끝나면 인스턴스과의 연결을 끊는다. 

 


 

난생 처음으로 스스로! 내 손으로! 배포를 해봤다. 넘 뿌듯하잖아???

 

Comments