본문으로 건너뛰기

버그 제보

이상한 점을 알려 주시면 고칠게요. 지금 보고 있는 페이지와 브라우저 정보가 함께 담겨요.

페이지:

Backend

DNS·CDN·로드 밸런서·리버스 프록시

추가
목차3개 항목
출처와 참고

Donne Martin의 「The System Design Primer」에 제시된 개념과 사례를 주제별로 재구성한 노트다. 원본 라이선스는 CC BY 4.0이다.

요청이 애플리케이션에 도착하는 경로

flowchart LR
 A["클라이언트"] --> B["DNS"]
 B --> C["CDN/Edge"]
 C --> D["L4 또는 L7 LB"]
 D --> E["리버스 프록시·API"]
 E --> F["서비스 인스턴스"]
 F --> G["저장소·캐시"]

이 구조는 가능한 구성의 한 예이며, 모든 서비스가 모든 계층을 별도 배치해야 하는 것은 아니다.

요소역할설계상 확인할 한계
DNS도메인을 주소에 연결, 지역·장애 대응에 활용캐시된 응답의 TTL 때문에 즉시 전환되지 않을 수 있음
CDN사용자 가까이 정적·일부 동적 콘텐츠를 제공캐시 적중·무효화와 오래된 콘텐츠
L4 로드 밸런서전송 계층 연결을 기준으로 분산HTTP 헤더나 경로를 직접 판단하지 않는 유형이 많음
L7 로드 밸런서HTTP 경로·호스트·헤더에 따른 라우팅TLS 종료·복호화·처리량 비용
리버스 프록시백엔드를 대신해 요청 전달·접근 통제·압축프록시 자체가 병목·장애 지점이 될 수 있음
애플리케이션 계층비즈니스 로직 처리, 독립 확장서비스 간 호출·관측·배포 복잡성
서비스 디스커버리동적으로 변하는 서비스 주소 탐색등록 정보 신선도·헬스 체크

CDN 운영 방식

  • Push: 콘텐츠를 사전에 에지에 배치한다. 배포 경로와 무효화 정책을 관리한다.
  • Pull: 캐시 미스 때 원본 서버에서 가져온다. 최초 요청 지연과 원본 부하를 고려한다.

수평 확장 전에 확인할 원칙

  1. 가능한 한 무상태 애플리케이션으로 만들고 세션·공유 데이터를 외부화한다.
  2. 오토스케일링 조건은 CPU만 아니라 큐 길이·동시 처리량·에러율 등으로 검증한다.
  3. 단일 LB·캐시·서비스 디스커버리의 장애를 포함한 전체 경로를 분석한다.

관련 노트: 로드 밸런서, 웹 확장 구성요소, 마이크로서비스

원본 기록2

댓글

GitHub 계정으로 댓글을 남길 수 있어요.