YWS 문서
YWS 콘솔로 이동
네트워크/내부 주소 (auth · alarm)

내부 주소 (auth · alarm)

EC2와 Lambda 안에서는 플랫폼 서비스를 인터넷을 거치지 않는 짧은 이름으로 부를 수 있습니다. 따로 설정할 것은 없습니다 — 모든 EC2와 Lambda에서 바로 됩니다.

이름 내부 주소 공개 주소 용도
auth http://auth https://auth.jimmy-home.com OAuth /oauth/token, /oauth/userinfo (OAuth)
alarm http://alarm https://alarm.jimmy-home.com 알림 서버 POST /v1/notify
  • 내부 주소는 Cloudflare를 거치지 않아 조금 빠르고, EC2의 "인터넷 차단"을 켜도 동작함. 공개 주소도 그대로 쓸 수 있음
  • 두 서비스 모두 원래 공개 API라 호출할 때 앱 인증(client secret, notify_token)이 필요함 — 내부 주소로 연다고 새로 생기는 권한은 없음
  • DB 이름(postgres, mysql, redis)도 같은 방식으로 만들어져 있지만 접속은 네트워크 탭에서 EC2 → DB로 이은 EC2만(Lambda는 항상) — DB

구조

  • 이름: ec2 네임스페이스의 ClusterIP Service(셀렉터 없음) + 실제 대상 Service에서 복사해 오는 Endpoints (provisioning/system_services.py의 ensure_system_service_alias, 1분마다 다시 맞춤). 모델 SystemService(seed.py에서 생성, 사용자가 만들 수 없음)
  • 접근: 대상 네임스페이스의 NetworkPolicy system-service-<이름> — kube-system(Traefik)은 포트 제한 없이, ec2 네임스페이스 전체는 대상의 실제 포트(포털 8000)만. open_to_ec2s = False인 DB 서버들은 이 정책이 없음
  • 2026-10-07까지는 연동 → "시스템 서비스" 페이지에서 EC2마다 연결해야 했음 → 어렵고 실익이 없어 페이지를 없애고 전체 허용으로 바꿈 (안 쓰게 된 표 system_service_connections는 TODO 10 정리 대기). EC2 안의 앱 로그 전달기가 막혔던 원인(포털 접속 차단)도 이걸로 풀림 — 실제 전송 재개는 아직 확인 안 함 (로그)

2026-09-24 사고에서 얻은 교훈 — 이 기능을 만들면서 실제로 겪은 버그 세 개:

  • headless Service는 포트 변환을 안 해줌. EC2끼리 쓰는 별칭(alias_service)은 headless라 그대로 따라 했는데, 이 별칭은 공개 포트(80)와 실제 컨테이너 포트(8000)가 달라야 해서 headless로는 동작 안 함 (headless DNS는 그냥 pod IP를 그대로 돌려줘서 kube-proxy DNAT를 안 탐) — 일반 ClusterIP Service로 바꿔서 해결
  • NetworkPolicy 포트를 실제 컨테이너 포트가 아니라 별칭의 공개 포트로 잘못 지정해서, 정작 진짜 트래픽(8000번, Traefik 헬스체크 포함)이 전부 막히면서 사이트가 잠깐 다운됨. 처음엔 이걸 "jimmy-master 노드에서 NetworkPolicy 자체가 안 먹는 인프라 버그"로 오진했는데, 격리된 재현 테스트로 실제로는 단순 포트 불일치였다는 걸 확인 — jimmy-master의 NetworkPolicy 강제 자체는 정상 동작함
  • 연결된 EC2가 0개일 때 "아무도 못 들어옴"이 아니라 "전부 들어옴"으로 뒤집히는 버그. k8s client 라이브러리가 빈 파이썬 리스트(_from=[])를 from 필드가 아예 없는 룰로 직렬화하는데, NetworkPolicy에서 from이 없는 룰은 "전체 허용"을 뜻함 — 연결 해제 테스트로 잡아냄. 연결된 EC2가 없으면 그 룰 자체를 아예 안 넣는 걸로 수정

추가로, kube-router의 정책 동기화 루프가 NetworkPolicy 오브젝트 변경을 실제 iptables/ipset에 반영하기까지 최대 ~20초 정도 지연이 있습니다 — 연결/해제 직후 바로 접근이 바뀌지 않아도 정상입니다.