개인 포트폴리오/술렁술렁(전통주 플렛폼)

술렁술렁 프로젝트 - DB 구축, 백엔드 배포, 프론트 배포

roalwh 2023. 10. 13. 16:12

술렁술렁 프로잭트 - DB 구축, 백엔드 배포, 프론트 배포

1. 구성도

1-1. 배포 전 테스트 시 AWS, NCP 를 이용하여 아래와 같이 구성함

  • 프리티어 기준이 1개의 인스턴스 기준이다보니 여러대를 생성하면 프리티어도 같이 분산되어 프리티어 사용량이 빨리 채워진다.
  • 프리티어 항목이 좀있는데 생각보다 깐깐하게 체크해서 결국 프리티어를 사용하면서도 비용이 청구되는 상황발생함
  • 엘리스틱 빈스톡을 이용하여 배포,업로드 시 네트워크 사용을 하기때문에 프리티어 사용량이 빨리 소모된다.
  • NCP의 경우 10만원 금액권과함게 1년 서버한대 무료 조건이나 디비를 올려서 사용해봤지만 AWS 와달리 서버 상태가 너무 나쁘다.
  • 전통주 데이터 삽입 시 대략 쿼리가 대략 550줄 정도되는데 처리속도가 생각보다 느리다.
  • 이점도 있었지만 아무래도 비용 부담이 있는 부분이라 개인서버를 쓰고 있기때문에 개인서버를 활용하는 쪽으로 방향을 바꿧다.

1-2. 개인서버를 이용하여 아래와 같이 구성함

  • 위와 같이 구성하였다 DB를 별도로 사용할까 했지만 백단이랑 같이둬도 프로젝트 완료 후 사용량에 비해서 크게 문제 될것이 없다고 판단되어 한서버에 구성하였다. 필요시 이전 하면 된다 생각한다.
  • 비용면에서는 자유로워 졌으나 공유기의 DDNS을 사용하기 때문에 HTTPS 적용을 할 수가 없다. HTTPS 처리를 위해선 OS를 리눅스나 윈도우 서버로 교체해야한다.

2. DB구축

2-1. 서버 생성

  • OS : Ubuntu 20.04 / MariaDB 10.3.38 버전 설치
  • Hyper-V를 이용하여 백엔드, 프론트 배포용 가상 컴퓨터를 생성
  • 백엔드 배포용 서버에 MariaDB를 설치하여 운용 하는 방향으로 구축하였음

3. 백엔드 배포

Hyper -V를 이용한 가상컴퓨터 설정

  • DB를 구축한 서버를 이용함
  • Java17 버전을 사용했기 때문에 openJDK17 버전을 설치하여 백엔드 배포를 진행함

Git repo clone

  • 매번 복사 후 FTP 로 빌드된 파일을 옮기기 보단 git을 이용하여 서버에 프로젝트 를 생성한뒤 서버내에서 진행 할 수 있게 하였음.

  • 프로젝트 빌드후 빌드된 파일을 프로젝트명으로 지정한 디렉터리에 지정한뒤 java 명령어로 백그라운드로 실행함
  • 백그라운드 실행 명령어 ' nohup'
  • 웹에서 정상작동 확인

4. 프론트 배포

Hyper -V를 이용한 가상컴퓨터 설정

  • OS : Ubuntu 20.04 / node v18.17.1 /nginx 1.18.0를 사용하므로 서버에 설치한다.

  • 백엔드와 동일하게 프로젝트를 git clone 하여 가져온다.

  • 프론트 빌드 후 nginx 설정에 프론트 빌드 디렉터리 경로를 설정해준다. 이렇게 하면 빌드 후 별도 폴더 지정 할 필요없이 nginx 재시작만 하면 된다.

  • 80포트를 설정, nginx 시작시 참조할 디렉터리 설정, 기본파일 설정을 진행함

  • nginx 재시작 하여 웹 접속 테스트 진행

웹 서버 시작 후 접속 테스트