## 금도 서버 구성도 서버실 랙 사진과 현재 컨테이너/포트 운용 현황을 바탕으로 물리 배치와 논리 토폴로지를 정리했습니다. 운영 시 참조용으로 사용하며, 변경 시 본 문서도 함께 갱신합니다. ### 물리 랙 배치(위 → 아래) 아래는 랙 상의 장비 배치도입니다. --- ```mermaid %%{init: {"theme": "base", "flowchart": {"nodeSpacing": 30, "rankSpacing": 40, "useMaxWidth": false}, "themeVariables": { "fontSize": "20px", "lineHeight": "24px" }}}%% graph TB subgraph "Rack Cabinet" direction TB R235["192.168.0.235 rack1 (R820)"] R236["192.168.0.236 rack2 (R820-2)"] MON["KVM/Monitor"] R102["192.168.0.102 nA100 (R760xa)"] R166["192.168.0.166 Sub AI (PT620)"] R029["192.168.0.29 Desktop"] R017["192.168.0.17 Synology NAS"] R066["192.168.0.66 GitLab & Nginx Proxy"] end R235 --> R236 --> MON --> R102 --> R166 --> R029 --> R017 --> R066 style R102 fill:#e5f5ff,stroke:#1890ff,stroke-width:1.5px style R066 fill:#fff7e6,stroke:#fa8c16,stroke-width:1.5px style R017 fill:#f6ffed,stroke:#52c41a,stroke-width:1.5px ``` 참고: 실제 장비 높이(U)와 정확한 선반 위치는 현장 라벨 기준으로 보정 가능합니다. ### 논리 네트워크/서비스 토폴로지 내부망 192.168.0.0/24 환경에서 리버스 프록시를 중심으로 주요 서비스가 분기됩니다. --- ```mermaid %%{init: {"theme": "base", "flowchart": {"nodeSpacing": 30, "rankSpacing": 40, "useMaxWidth": false}, "themeVariables": { "fontSize": "20px", "lineHeight": "24px" }}}%% graph TB INET[인터넷] FW[게이트웨이/방화벽] PROXY["192.168.0.66\nNginx Proxy / GitLab"] INET --> FW --> PROXY subgraph APPS["Application Servers"] direction TB A100["192.168.0.102 A100 (rvtouch3d, vnexa-abb, jupyter)"] RACK1["192.168.0.235 rack1 (3DP, vnexa-api, metaverse)"] RACK2["192.168.0.236 rack2 (java WAS)"] DESK["192.168.0.29 desktop (centos svc)"] SUBAI["192.168.0.166 sub ai (posivibes, db, gitlab_web)"] GDS["192.168.0.66 gds (fastapi, jupyter, webui, mail)"] A100 --> RACK1 --> RACK2 --> DESK --> SUBAI --> GDS end PROXY -->|HTTP/HTTPS 라우팅| APPS NAS["192.168.0.17 Synology NAS"] NAS -. 백업/스냅샷 .- A100 NAS -. 백업/스냅샷 .- RACK1 NAS -. 백업/스냅샷 .- RACK2 NAS -. 백업/스냅샷 .- GDS ``` ### 장비 인벤토리 | IP | 호스트/별칭 | 하드웨어/호스트명 | 주요 컨테이너 및 포트(Host→Container) | | :-- | :-- | :-- | :-- | | 192.168.0.102 | A100 서버 | `gds-PowerEdge-R760xa` | vnexa-abb-api 8000→8000, rvtouch3d-api(frontend 3002→3000, grafana 3003→3000, app 8001→8000, prometheus 9092→9090, postgres 5434→5432, redis 6381→6379), jupyter-gpu 8888→8888 | | 192.168.0.235 | geumdo rack1 | `gds-PowerEdge-R820` | 3DP 80/3000/3306/8080/8090/2212, vnexa-api 3001/2213, metaverse nodam 52530/52532-33/53306/2236 | | 192.168.0.236 | geumdo rack2 | `gds-PowerEdge-R820-2` | java WAS 8092→8080, 4446→443, 33064→3306, 2233→22 | | 192.168.0.29 | geumdo Desktop | `desktopserver` | docker_centos 8091→80, 4445→443, 33063→3306, 2230→22 | | 192.168.0.166 | Sub AI 서버 | `gds-PT620` | posivibes 8084→8080, 2240→22; db 9011/9013/33062/2228; gitlab_web 8081→80, 4430→443, 2224→22; 기타(docker_all) | | 192.168.0.66 | GitLab/Nginx/유틸 | `gds` | fastapi 8000→8000, fastapi_new 8001→8001, jupyter 8888→8888, open-webui 9000→8080, ollama 11434→11434, poste-io 메일 포트군, was/securedb 등 | | 192.168.0.17 | Synology NAS | Synology | 파일공유/백업(스냅샷/rsync/HyperBackup) | ### Docker 공통 운용 메모 - 스토리지 드라이버: `overlay2` - 기본 네트워크: `bridge`(172.17.0.0/16), `host`, `none` - A100 서버는 프로젝트 분리를 위해 추가 브리지(`vnexa-abb-api_default`, 172.22.0.0/16) 사용 - 정기 점검: 외부 노출 포트 최소화, 불필요 컨테이너 정리, 이미지 업데이트 ### 운영 체크리스트 - GitLab 접근 경로: 192.168.0.66(프록시) 및 192.168.0.166(컨테이너) 동시 운용 여부 확인 - NAS 백업: 각 서버의 애플리케이션 데이터/DB 스냅샷 주기 검토 및 복구 테스트 - 관리 인터페이스(iDRAC/IPMI) 주소 기록 및 비상접속 절차 정리