# Single EC2, AP1, no Google 한 VM의 Docker Compose에 PostgreSQL, Keycloak, Spring API, nginx SPA를 둔다. 외부 진입점만 nginx/TLS proxy로 제한하고 Keycloak 8080, API 8081, PostgreSQL은 loopback 또는 Docker private network에 둔다. ```text Internet :443 -> TLS proxy/SPA |-> Spring API:8081 Browser ----------->|-> Keycloak:8080 (public auth path만 proxy) Keycloak ----------> PostgreSQL:5432 ``` 이 profile은 Google credential과 tunnel이 필요 없다. EC2 보안 그룹은 22 (관리 정책에 따른 제한), 80/443만 열고 container 내부 포트를 공개하지 않는다. backup 대상은 PostgreSQL 데이터와 realm/config/secret이며 Keycloak 개발 모드 `start-dev`는 production에서 사용하지 않는다. `verify-single-ec2-no-google.sh`는 Compose rendering, loopback binding, AP1 local-identity 계약을 확인한다.