Infrastructure

이미 돌고 있는 구성 위에
얹습니다

새로 설계하는 스택이 아닙니다. 같은 패턴으로 서비스가 이미 나가 있고, 장애에서 배운 규칙이 구성에 반영돼 있습니다.

Stack

이미 프로덕션에서 돌고 있는 구성

새로 설계하는 스택이 아닙니다. 같은 패턴으로 이미 서비스가 나가 있고 그 위에 얹습니다.

ECS Fargate + ALB백엔드 런타임. 무중단 배포와 태스크 단위 확장. 서버를 직접 관리하지 않습니다.
Aurora PostgreSQL원장 정본. 컨테이너는 휘발성이라 파일 DB를 두지 않습니다.
S3 + CloudFront정적 프론트와 자산 배포. 내부 도구는 엣지에서 인증을 겁니다.
Cognito직원 SSO와 고객 계정 풀을 분리합니다. 내부 도구는 전 경로 게이트입니다.
SES도메인 인증(SPF/DKIM)을 마친 발신. 해외 거주 고객의 주 채널입니다.
Secrets Manager자격증명을 런타임에 주입합니다. 코드·저장소·환경파일에 두지 않습니다.

Learned

운영에서 배운 것

설계도에 없고 장애에서 나온 규칙입니다.

앱 DB 계정은 회전하지 않습니다컨테이너는 시크릿을 시작 시점에 한 번 고정 주입합니다. 자동 회전하는 시크릿을 앱 자격증명으로 쓰면 배포 직후엔 멀쩡하다가 며칠 뒤 회전 시점에 인증이 깨집니다. 앱 전용 비회전 계정을 따로 둡니다.
에러는 반드시 남깁니다DB·외부 호출 실패를 로깅하지 않으면 화면엔 500만 뜨고 로그는 비어 원인 파악이 늦어집니다.
스테이징을 먼저 거칩니다같은 구성의 스테이징에서 검증한 뒤 프로덕션으로 승격합니다.

Access

접근은 두 축으로 갈립니다

«누가 보느냐»가 게이트를 정합니다. 한 축으로 관리하면 반드시 새는 곳이 생깁니다.

표면대상게이트
운영 도구직원계정 SSO · 전 경로 게이트 · 지점 스코프
고객 표면외부 고객공개 + 보안 베이스라인(WAF · 요청 제한 · 입력 검증 · 봇 방지 · 전송/저장 암호화)
거래처 링크부동산(비로그인)토큰 10자 · 유효기간 30일 · 재발급 시 이전 주소 즉시 차단
외부 공개 보기투자자·외부 공유특정 지점에서만 켜짐 · 개인정보 마스킹 · 내부 메뉴 숨김 · 열람 전용

외부 공개는 전체 지점에서 켤 수 없습니다. 특정 지점을 고른 상태에서만 켜지고, 전체로 되돌리면 자동 해제됩니다. 공개 중에는 지점 변경이 잠깁니다 — 스코프가 스크롤 아래로 사라진 채 공유하면 다른 지점이 노출되기 때문입니다.

거래처 공개 페이지는 데이터에 담지 않습니다. 화면에서 가리는 것과 애초에 내려보내지 않는 것은 다릅니다. 공개 대상은 «담당자 체크 AND 지금 배정 가능»인 방만입니다.