node.js 서버와 그누보드5 서버 병행
본문
현재 런칭을 위해 개발하고 있는 서비스를 react.js로 개발하고 있습니다, react.js 앱 (빌드된 *.js 파일) 자체는 그누보드5를 설치한 PHP 서버를 통해서 제공되며 node.js 서버는 graphql을 이용한 내부 API 제공을 위해서만 구현해둔 상태 입니다.
문제는 그누보드5 내장 기능에 있습니다. 가령 글 올리기와 같은 내부 기능을 node.js 환경에서 사용을 가능하게 하도록 하고 싶으나 현재 개발된 이(node.js -> php 실행)를 지원하지 않고 있는 상황이며, 이미 작성된 그누보드5 코드를 node.js로 포팅할수도 없는 노릇이네요.
따라서 그누보드5 코드를 node.js 서버 내부에서 써야 하는 상황이 생기면, node.js 서버에 요청이 들어왔을때 PHP를 올리고 있는 Apache 서버에 요청을 보내서 -- 두 서버는 같은 서버 기기 내에 있습니다 -- 응답을 받아 처리하는 방식으로 진행하려 합니다. 이를테면, `./bbs/write_update.php`와 같은 코드를 실행 시켜야 할때는 node.js에서 POST로 매개변수와 함께 요청을 쏜 뒤, 결과를 node 서버에서 받고 다시 유저에게로 전송 하는거죠.
세션 변수와 같은 가동에 중요한 데이터들은 Redis로 node.js 서버와 PHP 서버 양쪽이 공유하고 있습니다. 따라서 작동에는 문제가 없어 보입니다. 하지만 문제는 퍼포먼스 입니다. 로컬 서버로 보내는 요청이 서버 성능에 큰 영향을 미칠 정도 일까요? TTFB와 같은 네트워크 처리 시간은 크게 상관이 없는 상황입니다.
따라서 질문을 정리하자면 다음과 같습니다:
1. 같은 기기에서 동작하고 있는 node.js API 서버에서 그누보드5를 제공하는 PHP 서버로 요청을 전송하여 그누보드5 코드를 실행하는 것은 과연 무거울까요? (혹은 성능이 많이 차이가 날까요?)
2. 리눅스 서버를 호스팅해주는 여러 VPS 서비스들 (혹은 일반 국내 호스팅 서비스들) 이 과연 로컬에서 로컬로 보내는 요청에 대해서 트래픽 계산을 할까요?
-
혹시라도 '왜 편하게 그누보드5를 포기하고 node.js로 직접 서버를 개발하지 않는가' 하는 의견을 가지시는 분들이 있을까봐 첨언하자면, 개발 기간이 길지 않는다는 점이 가장 큰 이유일 것이고 무엇보다 대부분의 'reinventing the wheel' 은 상당히 결과가 좋지 않음을 제 스스로 알기 때문이라고 말씀 드리고 싶습니다.
답변 1
똑같은 작업을 해본적은 없지만, 아는 범위 내에서 설명드리겠습니다.
1. 비동기 요청을 보내는거라면 문제가 없습니다만, 동기요청을 보내면 문제가 발생할 가능성이 높아집니다. 이 문제를 해결하기 위해선 nodejs 데몬을 여러개 실행하는 방식을 사용해야 할것입니다. nodejs 데몬이 늘어난다면 큰 문제는 없을걸로 보여집니다.
2. 사설아이피(192.168.x 또는 10.0.x) 를 이용한 내부망을 구성한 경우는 내부 트래픽에는 과금하지 않습니다. 어짜피 트래픽이 상단 스위치 밖으로 나가지 않습니다. 클라우드의 경우는 과금을 합니다.(대표적으로 aws. 물론 트래픽 비용은 공인 아이피 트래픽보다 많이 저렴합니다.)
ps) 님이 선택하신 방법은 현재 상황에서 최선이라는데 동의합니다. 중요한건 정해진 시기에 아웃풋이 나올수 있느냐는 것이죠. 아무리 좋은 기술과 아이디어도 시기를 맞추지 않으면 성공하기 어렵다는게 제 지론입니다.