운영 DB 를 RDS 로 — Neon 임시 연결 걷어내기
무엇을
운영 서버가 09-08 배포 이후 DB 에 한 번도 연결되지 않았다. 운영 시크릿이 임시로 Neon(싱가포르)을
가리키는데 POSTGRES_HOST 가 비어 있고, 운영 이미지 0.1.1 은 DATABASE_URL 을 읽지 않는다.
RDS 는 설계에만 있고 만들어진 적이 없다. RDS 를 만들어 운영 DB 로 옮긴다.
근거: _project/decisions/108
왜
백업(RDS 를 고른 원래 이유) · 같은 리전 · 퍼블릭 비노출(SEC-1) · 개발·운영 분리.
완료 조건
- DB 보안 그룹
assist-db— 5432 인바운드 소스가 운영 EC2 에 붙은assist-web과 같은 그룹이다 (2026-09-11 런북 3-2 대조 명령으로 두 ID 일치 확인) - RDS
callguard-pg— 생성됨. 마스터 사용자callguard· 초기 DBassist(2026-09-11describe-db-instances확인). PostgreSQL 17 · db.t4g.micro · 단일 AZ · 퍼블릭 액세스 아니요 · 백업 7일 · 삭제 방지는 콘솔에서 따로 확인한다
2026-09-11 이름 정정 — 처음엔 AWS 자원까지
callguard-*로 적었는데, 그건 k8s 오브젝트 이름이다. AWS 자원은 원안assist-*(EC2 보안 그룹assist-web)이고 RDS 만 식별자·사용자가callguard, DB 는assist다. 연결 문자열은…:5432/assist?sslmode=require. 런북 6·12-2·17 을 이 값으로 고쳤다.
- 클러스터 안에서 접속 확인 — 서버 파드에서
('assist', 'callguard') ssl True(2026-09-11, 런북 17-1)db/schema.sql적용 — 22 테이블 (2026-09-11, 런북 17-2 ·main의 파일)server-env교체 —DATABASE_URL·POSTGRES_*둘 다 RDS, AWS 정적 키 제거, 재시작 (2026-09-11). ⚠ 첫 시도는 암호가 빈 값으로 들어가fe_sendauth: no password supplied였다 — 웹 터미널에 붙여 넣을 때 딸려 온 빈 Enter 를read가 먼저 받았다. 빈 입력이면 다시 묻는 반복문으로 바꿔 넣었다(런북 12-2 에 반영할 것)- 운영
GET /hub/knowledge-gaps200 ({"gaps":[],"total":0,…}, 2026-09-11) — 운영이 DB 에서 읽은 첫 응답. 파드 로그의psycopg오류 여부는 보지 않았다- 백업
~/server-env.backup.yaml삭제(shred -u) —0.1.3배포 확인 뒤 2026-09-11 삭제,ls -la ~로 확인- 런북 6·12-2·17·19장을 실물(
callguard이름,server-env)에 맞춰 수정 — 2026-09-11.secret.example.yaml도 함께 (DATABASE_URL·POSTGRES_*둘 다 ·sslmode=require· AWS 키 제외)
런북을 따르면 순서가 위 목록과 조금 다르다 — 6(RDS) → 12-2(시크릿 교체·재시작) → 17-1(접속 확인) → 17-2(스키마) → 19(검증). 접속 확인과 스키마 적용을 서버 파드 안에서 서버와 같은
DATABASE_URL로 하므로 시크릿을 먼저 바꿔야 한다.psql파드는 쓰지 않는다(암호를 명령줄에 넘기지 않으려고).
⚠ 전사 저장(POST /hub/transcripts)은 이 티켓으로 살아나지 않는다 — w4-schema-qa-followup ①
(어댑터 복합키) + 이미지 0.1.2 가 필요하다.