6.3 KiB
6.3 KiB
260307 24서버 정상복구 초기서버 기준 계획
작성일: 2026-03-07
상태: draft
전제: 51124는 현재 빈 초기 서버에 가깝고, 51123이 테스트 + 임시 운영 역할을 겸하고 있다.
1. 목표
- 51124를 다시 robeing 프로덕션 실행 서버로 복구한다.
- 51123의 임시 수용 상태를 종료하고, 원래 역할인
테스트 + 보조 + 인프라로 되돌린다. - 복구 후에도 IP/경로/시크릿 변경이 대량 수정으로 번지지 않도록 SSOT 구조를 함께 정착시킨다.
2. 복구 원칙
- 24는 처음부터 다시 쌓는다고 가정한다.
- 과거 상태를 추측 복원하지 않는다.
- 필요한 구성요소를 체크리스트로 다시 올린다.
- 서비스보다 기반을 먼저 복구한다.
- OS/계정/권한/디렉터리/SSOT/네트워크가 먼저다.
- 이 기반 없이 컨테이너만 올리면 재장애 가능성이 높다.
- 프로덕션 판정은 24에서만 확정한다.
- 23에서 정상인 것은 사전 검증 근거일 뿐이다.
- 최종 정상 판정은 24의 실제 헬스체크와 실경로 검증으로만 내린다.
3. 24 서버에 먼저 갖춰야 할 것
3.1 운영 기본 계층
- 배포 사용자 계정 및 SSH 접근
- Docker / Docker Compose
- 기본 로그 경로
- 시스템 시간대, 방화벽, 필수 패키지
- 재부팅 후 자동 기동 정책(systemd 또는 compose 운영 규칙)
3.2 프로젝트 루트 구조
/home/admin/robeing/home/admin/infra-config- 서비스별 배포 루트 경로
- 로그/데이터/마운트 경로
3.3 설정 SSOT 계층
/home/admin/infra-config/runtime.env/home/admin/infra-config/secrets.env- 서비스별
.env는 비워 두거나 로컬 오버라이드 전용으로 유지 - IP/포트/내부 호스트/외부 연계 주소는 runtime.env 기준으로만 관리
3.4 네트워크/연계
- 24 -> 23 DB 접근 확인
- 24 -> NAS 또는 대체 스토리지 접근 확인
- 23 gateway가 24 upstream으로 다시 붙을 수 있는지 확인
- 헬스체크/내부 포트/UFW 정책 선반영
4. 복구 대상 서비스
4.1 우선 복구
rb8001skill-emailskill-calendarskill-newsskill-slackskill-rag-fileskill-embeddingChromaDB
4.2 조건부 복구
robeing-monitor- 기타 실험/보조 컨테이너
원칙:
- 프로덕션 핵심 경로를 먼저 복구한다.
- 모니터링/실험 서비스는 핵심 경로 안정화 후 붙인다.
5. 단계별 실행 계획
5.1 Phase 1: 바닥 공사
- 24 서버 기본 패키지, Docker, 사용자 권한, SSH 키, 방화벽 구성
- 프로젝트 루트 디렉터리 생성
infra-config배치 및 권한 적용- Gitea Actions가 접근할 배포 경로 생성
완료 기준:
- SSH 접속 가능
- Docker 실행 가능
- 배포 경로/권한 오류 없음
5.2 Phase 2: 설정 이식
- 23 기준 운영값 중 24에 필요한 항목만 선별
runtime.env와secrets.env에 반영- 하드코딩 IP/경로가 남아 있는 서비스는 이 단계에서 제거
완료 기준:
- 각 서비스 compose가 24에서 동일한 SSOT 파일을 읽음
- 서비스 내부 코드에 23 전용 하드코딩이 남아 있지 않음
5.3 Phase 3: 데이터/스토리지 연계
- PostgreSQL 연결 확인
- ChromaDB 볼륨 및 데이터 경로 확인
- NAS 또는 공유 스토리지 마운트 확인
- 로그 저장 경로 확인
완료 기준:
- DB read/write 정상
- 필요한 파일 마운트가 실제 경로에서 읽힘
- 로그가 지정 경로에 기록됨
5.4 Phase 4: 서비스 기동
- 핵심 서비스부터
docker compose down && docker compose up -d --build - 각 서비스별 헬스체크 확인
- 컨테이너 포트/네트워크 실제 바인딩 확인
완료 기준:
docker ps기준 핵심 컨테이너 running/healthy- 서비스별 health endpoint 응답 정상
5.5 Phase 5: 23과 연결 복구
- 23 gateway upstream을 24 기준으로 재설정
- auth / gateway / upstream 로그를 같은 요청 기준으로 대조
- 실제 도메인 기준 요청 흐름 검증
완료 기준:
ro-being.com실제 경로에서 핵심 API 응답 정상- gateway/nginx/upstream 로그가 한 요청 기준으로 이어짐
5.6 Phase 6: 역할 정상화
- 24를 프로덕션으로 확정
- 23의 임시 실행 컨테이너 정리
- 23을 다시
테스트 + 보조 + 인프라역할로 축소 - 임시 예외 설정 제거 여부 확인
완료 기준:
- 프로덕션 트래픽 기준 서버가 24로 고정됨
- 23은 테스트/보험 역할만 수행
6. 검증 체크리스트
- 인프라
- SSH, Docker, disk, memory, UFW 정상
- 데이터
- 24에서 PostgreSQL 연결 정상
- ChromaDB 경로/볼륨 정상
- 공유 스토리지 접근 정상
- 서비스
rb8001health 정상- 핵심 스킬 health 정상
- monitor 필요 시 health 정상
- 요청 흐름
- 실제 도메인에서 gateway -> upstream 응답 정상
- 인증 경로 정상
- 로그가 요청 단위로 추적 가능
- 운영
- Actions 배포 성공
- 재기동 후 자동 복구 가능
- 23/24 역할 문서와 실제 구성이 일치
7. 실패 패턴 경계
- 23의 임시값을 24 복구값으로 착각하는 것
.env, compose, 코드, 문서가 각각 다른 값을 갖는 것- 컨테이너만 살아 있고 실제 도메인 요청은 실패하는 상태를 정상으로 오판하는 것
- 24 복구 전에 23 임시 설정을 정리해 버리는 것
8. 복구 완료 선언 조건
- 24에서 핵심 서비스가 healthy
- 실제 도메인 기준 핵심 경로 응답 정상
- 23 gateway와 24 upstream 연결 정상
- 문서, runtime.env/secrets.env, 배포 경로가 서로 일치
- 23 임시운영 예외 항목이 후속 문서에 정리됨