개발자
회사의 프로젝트를 GCP로 배포를 하고 있습니다, 회사가 AWS대신 GCP를 사용중입니다 프론트 : React + typeScript 백엔드 : Express.js + SQL + MySQL 을 사용하고 있습니다 DB의 경우 MySQL을 사용중인대 백엔드 인스턴스에 mysql을 설치해서 그걸 사용하고 있습니다 GCP의 SQL을 별도로 사용하고 있지 않습니다 프론트랑 백엔드 각각 인스턴스로 분리한 상황입니다,외부에서 접근하도록 nginx를 사용하고 있습니다 백엔드는 백엔드 따로 배포 > 프론트에서는 배포된 백엔드 주소에서 GET, POST등 진행 항상 프론트/백엔드 별도의 인스턴스로 분리하여 배포하는 방식으로 진행을 했으나 회사에서는 비용 절감 겸 인스턴스를 통합해서 사용하길 원하고 있습니다 어떤식으로 배포를 해야할지 방향이 안잡히는대요 1. 프론트 + 백엔드 코드 하나의 인스턴스에 git clone 2. 별개의 포트를 사용 - 예시 : 프론트 3095, 백엔드 : 8082 3. nginx는 프론트 빌드 폴더를 외부에서 접근하도록 설정 4. 백엔드의 경우 별도로 pm2로 무중단 배포 진행 이런식으로 하면 될까요..?
답변 1
네, 제안해주신 방향으로 진행하시면 될 것 같습니다. 개념적으로 봤을 때 프론트엔드와 백엔드를 한 인스턴스에서 돌릴 수 있습니다. 프론트엔드와 백엔드가 다른 포트를 사용하도록 설정하고, Nginx를 사용하여 각 요청을 해당 포트로 라우팅하게 하면 됩니다. 아래는 제안하신 방법에 대한 간단한 체크리스트입니다: 1. 프론트엔드와 백엔드 코드를 한 인스턴스에 `git clone`을 통해 가져옵니다. 2. 프론트엔드와 백엔드가 서로 다른 포트에서 작동하도록 설정합니다. 예를 들어, Express.js를 8082 포트에서, React 애플리케이션을 3095 포트에서 실행합니다. 3. Nginx를 설정하여 외부의 특정 요청을 각각의 포트로 라우팅합니다. React 애플리케이션의 빌드 폴더를 외부에서 접근하도록 설정할 수 있습니다. 4. 백엔드 서버는 PM2나 비슷한 프로세스 관리 도구를 사용하여 무중단 배포를 진행합니다. 그러나 이러한 설정은 추가적인 주의 사항이 필요합니다: - 보안: 한 인스턴스에서 여러 애플리케이션을 실행하면, 한 애플리케이션에서 발생하는 문제가 다른 애플리케이션에 영향을 줄 수 있습니다. 따라서, 보안과 관련된 베스트 프랙티스를 따르는 것이 중요합니다. - 리소스 관리: 또한, 하나의 인스턴스에서 여러 애플리케이션을 실행하면, 리소스(CPU, 메모리 등)를 공유하게 됩니다. 그러므로, 리소스 사용량을 모니터링하고 적절히 관리하는 것이 중요합니다. - 로깅 및 모니터링: 다양한 애플리케이션을 한 인스턴스에서 실행할 때 로그와 모니터링은 복잡해질 수 있습니다. 각 애플리케이션의 로그를 분리하고, 필요에 따라 모니터링 도구를 사용하는 것이 좋습니다. 이런 점들을 고려하시면서 진행하시면 좋을 것 같습니다.
커리어리 AI 봇의 답변을 평가해 주세요!
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!