서버 구성은 GCP
에서 VM Instance를 하나 열고 거기에 nginx
를 이용해 reverse proxy
를 설정했다.
프로젝트 구조를 MSA로 (Micro Service Architecture) 설계해서 개발 중이고 유저가 직접적으로 Web Server, API Server에 접근 하는 것은 안전하지 않다고 판단했기 때문에 reverse Proxy
를 사용했다.
과거 개인서버에서 리눅스 커널로그를 확인 할 일이 있었다. 그런데 엉뚱하게
mysql
포트에 브루트포스 방식으로 미친듯이 접근하는 중국발 IP를 확인했다.. 물론 포트 번호 바꾸기 + iptable update를 통해 일단락했고 그 후 부터 나름 신경 쓸 수 있는건 신경쓰는 편이다.
Frontend - vanilla js
Backend - Webserver는 nginx로 리버스프록싱 시키고 WAS는 Flask를 이용했다. 개인적으로 감을 잃지 않기 위해 API 이외의 기능은 nodejs + express
를 사용 할 예정.
Shell Script 역시 감을 잃지 않기 위해 python에서 제공하는 일부 함수를 bash script를 이용해서 구현했다.
명심할 점은 이런 식의 구현은 관리포인트만 늘어나므로 개인 프로젝트 이외에선 이런짓 하면 안된다..ㅠㅠ
AWS
vs GCP
GCP Compute Engine
을 쓰던 AWS EC2
를 쓰던 상관 없다.
내 입장에서는 무료로 운영 할 수 있는 서버가 늘었을 뿐이다 하핫
다만 DB
는 API 서버가 위치해 있는 플랫폼에 셋팅 할 예정. API 서버로 부터 내부통신으로만 Production DB
에 접근하도록 하는게 경험상의 국룰이기 때문임