Files
jongryangje/docs/기본 개발계획/15-naver-cloud-deployment-outline.md
2026-04-08 00:23:55 +09:00

5.2 KiB

네이버 클라우드 서버 사용 시 구성 개요

실제 서비스 서버는 아직 미정이나, 회의에서 클라우드(네이버 클라우드) 사용 방향으로 논의했다는 전제로, 그때 실제 어떤 식으로 구성하면 되는지 정리한 문서입니다. (구체 제품·요금은 NCP 정책에 따라 확인 필요.)


1. 전체 구성 개요

애플리케이션 스택이 CI4 + PHP 8.4 + MariaDB 11.7 + Apache 2.4 이므로, 네이버 클라우드에서 아래처럼 나누어 두는 구성을 가정할 수 있습니다.

[인터넷]
    │
    ▼
[로드밸런서]  ← 선택. 단일 서버면 생략 가능
    │
    ▼
[웹·앱 서버]  ← PHP + Apache + CI4 (소스 배포)
    │
    ▼
[DB 서버]     ← MariaDB (NCP Managed DB 또는 별도 Server에 설치)
  • 웹·앱 서버: PHP 8.4, Apache 2.4, CI4 프로젝트 배포. 세션·파일 업로드는 이 서버(또는 공유 스토리지)에 둠.
  • DB 서버: MariaDB 11.x. 네이버 클라우드 DB for MySQL (MariaDB 호환) 사용 시 관리·백업이 편함. 또는 Server 한 대에 MariaDB를 직접 설치해 운영할 수도 있음.
  • 로드밸런서: 트래픽이 많거나 장애 대비로 웹 서버를 2대 이상 둘 때 사용. 초기에는 1대만 둔다면 생략 가능.

2. 네이버 클라우드(NCP)에서 쓸 수 있는 리소스

용도 NCP 제품 예시 비고
웹·앱 서버 Server (VPC, Linux) Ubuntu/CentOS 등에 PHP 8.4, Apache 2.4 설치. CI4 소스 배포.
DB DB for MySQL (MariaDB 호환) 또는 Server 1대에 MariaDB 설치 Managed DB면 패치·백업 자동화. 직접 설치면 비용·제어 유연.
로드밸런서 Load Balancer 웹 서버 다중화 시 사용.
스토리지 Object Storage 또는 서버 내 디스크 첨부파일·로그 등. CI4 writable/ 경로는 서버 로컬 또는 공유 볼륨.
SSL/도메인 Certificate Manager 또는 Let's Encrypt HTTPS 적용 시.
백업 Server 스냅샷, DB for MySQL 자동 백업 정책에 따라 보관 기간·복구 절차 정의.

실제 제품명·요금은 네이버 클라우드 플랫폼 문서를 참고하면 됩니다.


3. 서버 1대 구성 예시 (최소 구성)

초기에 웹 1대 + DB 1대 또는 웹+DB 한 대로 시작할 때 예시입니다.

옵션 A: 웹 서버 1대 + DB for MySQL(MariaDB) 1대

  • Server 1대: OS(Ubuntu 22.04 등) + Apache 2.4 + PHP 8.4 + CI4 배포.
  • DB for MySQL: MariaDB 호환 엔진 선택, 전용 VPC/Subnet에서 웹 서버만 접속 허용.
  • CI4 .env: database.hostname 을 DB for MySQL 엔드포인트로 설정.

옵션 B: 웹+DB 한 대 (소규모)

  • Server 1대: Apache + PHP + CI4 + MariaDB 모두 설치.
  • 구성이 단순하고 비용 최소. 트래픽·데이터가 적을 때 적합. 백업·스냅샷으로 복구 대비.

공통으로 필요한 것:

  • PHP 8.4, Apache 2.4, MariaDB 11.x — 로컬 개발과 동일 버전 권장.
  • CI4 envproduction 으로, baseURL, database.*, session.* 등 운영값으로 설정.
  • 디렉터리 권한: writable/ 쓰기 가능, app/Config/ 등은 읽기만.
  • 방화벽: 80/443만 개방, 22(SSH)는 지정 IP만. DB 포트(3306)는 웹 서버에서만 접근 가능하도록.

4. 지자체별 “내부 서버 vs 클라우드” 공존

06 개발계획·25.11.24 메모에 따르면:

  • 지자체 내부 서버 설치형을 우선 고려하면서,
  • 외부 서버/클라우드형도 지원하는 유연한 구조가 영업상 유리하다는 의견이 있었습니다.

따라서 실제 구성은 다음처럼 나뉠 수 있습니다.

고객/지자체 구성
클라우드 사용 (우리 쪽 또는 지자체 NCP) NCP Server + DB for MySQL(또는 Server에 MariaDB) 위에 CI4 배포. 위 2~3절 참고.
지자체 내부 서버 지자체가 제공한 물리/가상 서버에 Apache + PHP + MariaDB 직접 설치 후 동일 CI4 소스 배포.

애플리케이션(CI4)은 웹 서버 + DB 주소만 설정하면 되므로, “실물 서버”이든 “네이버 클라우드”이든 동일 소스로 배포할 수 있게 두는 것이 좋습니다.
즉, 실제 어떤 식으로 구성해야 하냐는 “네이버 클라우드를 쓸 때”는 위와 같이 하고, “지자체 내부 서버를 쓸 때”는 그 서버에 맞춰 PHP/Apache/MariaDB만 설치해 같은 방식으로 구성하면 됩니다.


5. 정리

  • 네이버 클라우드 사용 시: 웹·앱은 Server에 PHP + Apache + CI4, DB는 DB for MySQL(MariaDB) 또는 Server 한 대에 MariaDB 설치. 필요 시 로드밸런서·Object Storage·SSL 추가.
  • 실제 서비스 서버가 아직 미정이므로, 위 구성을 “클라우드 선택 시 참고용”으로 두고, 확정되면 도메인·SSL·백업·모니터링까지 구체 계획을 잡으면 됩니다.
  • 지자체별로 내부 서버 / 클라우드가 다를 수 있으므로, 동일 소스·환경 변수만 바꾸어 배포할 수 있게 유지하는 것이 좋습니다.