![]() |
도서 "가상 면접 사례로 배우는 대규모 시스템 설계 기초" 를 읽은 후 작성한 내용입니다. |
CDN(Content Delivery Network)이란?
- 정의 : 정적 콘텐츠 전송을 위한 지리적으로 분산된 서버 네트워크
- 접근 과정
1) 클라이언트가 이미지 URL을 통해 img.png에 접근
2) CDN 서버의 캐시에 해당 이미지 존재 여부 확인
3) 이미지가 존재하지 않는다면, 원본 서버에서 이미지 파일 요청
4) 원본 서버가 CDN 서버에 파일 반환
5) CDN 서버는 파일을 캐시
6) 파일을 사용자에게 반환
=> 이후 동일 파일 요청 시 캐시를 통해 처리
* 정적 콘텐츠? : 이미지, 영상, CSS 파일 등등
* URL 제공 : Cloudfront, Akamai 등
* 4) 과정에 파일의 캐시 기간을 설명하는 TTL(Time-To-Live) 포함
CDN 사용 시 고려사항
1) 비용
> 보통 제 3 사업자에 의해 운영되기 때문
2) 적절한 만료 시한 설정
> 시의성이 중요한 콘텐츠의 만료 시점 기준
3) 장애 대처
> CDN 자체가 죽은 경우 대응 (접근 불가 시 원본 서버 접속)
4) 콘텐츠 무효화
> 만료되지 않은 콘텐츠에 대해 CDN 제거 방안
> 방안1) CDN 서비스 사업자 제공 API 이용
> 방안2) 오브젝트 버저닝
* 오브젝트 버저닝(Object versioning)
> 콘텐츠의 버전을 나누는 것
> 버전 지정 법 : URl 마지막에 버전 번호를 인자로 주기
ex) img.png?v=2
무상태(stateless) 웹계층

- 수평적 확장을 위한 구조
- 상태 정보(ex. 세션데이터)를 웹 계층에서 제거
- 제거된 정보는 지속성 저장소(관계형 DB)에 보관 후 필요 시 접근
- 상태 정보 의존적 아키텍처
> 클라이언트A가 서버A에게 인증을 받는다.
> 세션 정보 프로파일 이미지 등은 서버 A에게만 저장된다.
> 재인증을 위해서는 서버 A에게만 HTTP 요청을 전송한다.
- 무상태 아키텍처
> 클라이언트는 어떤 서버로도 HTTP 요청을 보내도 된다.
> 상태 정보가 필요할 시 공유 저장소에서 가져온다.
=> 구조의 단순함, 규모 확장이 쉬움
현재까지의 구조

1) 세션 데이터를 웹 계층에서 분리
2) 세션 데이터를 지속성 데이터 보관소(그림의 NoSQL)에 저장
=> 트래픽에 따라 서버를 자동으로 추가/삭제 간단
* 왜 NoSQL? : 규모 확장의 간편함. 이외의 다른 것도 될 수 있음
데이터 센터

- 장애가 없을 시 가장 가까운 데이터 센터로 안내 : 지리적 라우팅
- geoDNS : 사용자 위치에 따라 도메인을 어떤 IP로 변환할지 결정
- 장애 발생 시 유효한 곳으로 트래픽 전송
* 지리적 라우팅 : geoDNS-routing, geo-routing이라고 불림
다중 데이터 센터 아키텍처 설계 시의 고민점
1) 트래픽 우회
: 올바른 데이터 센터로 트래픽을 보내는 효과적인 방법은?
2) 데이터 동기화
: 별도 DB 사용 시, 장애 발생 후 데이터 소실 우려
3) 테스트와 배포
: 여러위치 테스트 및 자동화된 배포 구성
'기술 단어장 > Network' 카테고리의 다른 글
[가상화] 가상화와 가상화의 종류 (1) | 2023.06.17 |
---|---|
[통신이론] 서블릿(Servlet)의 역할, 특징 (0) | 2023.05.31 |
[모니터링] 로그(Log)와 메트릭(Metric) (0) | 2023.05.23 |
연도별 컴퓨터 장치간 응답 지연 값 (1990-2020) (0) | 2023.05.18 |
[네트워크] HTTP 통신의 개요 및 기법 - 요약지 (0) | 2023.05.01 |
댓글