[인수인계] hb5u Secondary RHMS 운영 가이드 — EOS → Moojoco
초록
EOS가 2026-07-21 세션에서 hb5u(RTX 5060)에 구축한 Secondary RHMS의 인수인계 문서. 설치 위치, 운영 방법, 동작 원리, 주의사항, 이어받을 과제를 Moojoco에게 전달.
수신: Moojoco (hb5u 상주 에이전트)
발신: EOS (EC2 상주 에이전트)
일시: 2026-07-21
1. 배경 — 왜 네 집에 RHMS를 설치했는가
EC2(t3.small, RAM 1.9GB)에서 RHMS(Hopfield Memory System)가 514MB를 상시 점유하고 있었다. 2026-07-21 Tailscale MagicDNS 재활성화 사건으로 972MB까지 폭증하여 EC2 전체가 swap에 빠졌다. 분석 결과(논문 2026-07-21-eos-rhms-memory-bloat-analysis):
- 베이스 메모리 514MB는 다국어 임베딩 모델의 어휘 크기(V=250,002)가 지배함
- 폭증은 DNS SERVFAIL → from_pretrained() 재시도 루프 → 이중 할당(f≈0.89) 구조
사령관 판단: hb5u(RTX 5060)는 항상 켜두는 기기이므로, RHMS Secondary를 hb5u에 올리고 EC2는 Primary로 유지하는 이중화 구조를 택함.
2. 네 집에 설치된 것
2.1 파일 위치
/home/moos/rhms/
├── app.py # RHMS FastAPI 서버 (EC2 버전에서 경로 패치)
├── .env # RHMS 키 + HF_HUB_OFFLINE=1 (권한 600)
├── rhms.db # SQLite 패턴 DB
└── model_download.log
~/.cache/huggingface/hub/
└── models--sentence-transformers--paraphrase-multilingual-MiniLM-L12-v2/
# 458MB, 이미 로컬 캐시 완료
2.2 systemd 서비스
user-level systemd로 등록됨 (sudo 없이 moos 계정으로 운영):
systemctl --user status rhms # 상태 확인
systemctl --user restart rhms # 재시작
journalctl --user -u rhms -n 50 --no-pager # 로그
서비스 파일: ~/.config/systemd/user/rhms.service
linger 활성화 → moos 미로그인 상태에서도 자동 유지.
2.3 헬스체크
curl http://localhost:8090/health
# {"status":"ok","service":"rhms","model":"...MiniLM-L12-v2","multilingual":true}
2.4 .env 핵심 항목
RHMS_MODEL=sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2
RHMS_MULTILINGUAL=true
HF_HUB_OFFLINE=1 ← DNS 의존성 완전 차단
TRANSFORMERS_OFFLINE=1
RHMS_KEY_EOS=... ← EC2와 동일한 키셋
3. 현재 동작 원리
EC2의 에이전트들은 rhms_http_client.py를 통해 RHMS에 접근:
에이전트 (EC2)
└─ rhms_http_client.py
├─ Primary → http://127.0.0.1:8090 (EC2 로컬, 정상 시 사용)
└─ Secondary → http://100.125.27.70:8090 (네 주소, Primary 5초 타임아웃 시 자동 전환)
네 RHMS는 평소 대기 상태이고, EC2 Primary가 내려가면 자동으로 요청을 받는다.
4. 네가 알아야 할 운영 규칙
4.1 절대 건드리지 말 것
~/rhms/.env내 RHMS_KEY_* — EC2 키와 동기화됨. 키 교체 시 EOS 또는 사령관이 알릴 것HF_HUB_OFFLINE=1— 절대 0으로 바꾸지 말 것. DNS 장애 트리거 재현됨
4.2 재시작이 필요한 경우
systemctl --user restart rhms
# 모델 재로드 ~30초 소요 (캐시에서 로드, 인터넷 불필요)
4.3 DB 위치
~/rhms/rhms.db — EC2 Primary DB와 독립적. 데이터 동기화는 현재 미구현 (향후 과제).
4.4 포트 노출
서비스는 0.0.0.0:8090 바인딩 → Tailscale 망 내 EC2에서 접근 가능. 외부 노출 여부는 네 방화벽 설정 확인 필요.
5. EOS가 이어받길 원하는 다음 과제
| 과제 | 내용 | 우선순위 |
|---|---|---|
| 포트 방화벽 확인 | 8090이 Tailscale 망 외부로 노출되어 있지 않은지 확인 | 높음 |
| DB 동기화 | EC2 Primary DB ↔ hb5u Secondary 양방향 복제 | 중 |
| 메모리 헬스체크 | swap 임계값 모니터링 → ntfy 알림 | 중 |
| GPU 추론 여부 확인 | RTX 5060이 실제 임베딩에 사용되는지 nvidia-smi 확인 | 낮음 |
6. 문제 발생 시 연락처
- EOS: ntfy
roops-comm광장 또는roops-eos채널 - 사령관: 최종 판단자. 키 교체·보안 조치는 사령관 직접 실행
- RHMS 원본 소스: EC2
/home/ec2-user/hyperbook/services/rhms/app.py - 폴백 클라이언트: EC2
agents/eos/rhms_http_client.py(커밋 2a41178)
이 문서는 EOS가 2026-07-21 세션에서 수행한 Secondary RHMS 구축 작업의 인수인계 기록이다. hb5u에 거주하는 에이전트가 이 서비스를 이어받아 운영·개선할 수 있도록 작성되었다.
작성: EOS — EC2 상주 에이전트 / 2026-07-21
