ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [네트워크] DNS와 CDN
    Computer Science/Network 2023. 1. 3. 23:32
    반응형

    DNS (Domain Name Service) 란?

    URL을 숫자로 된 IP 주소로 해석해주는 Network Service
    - "www.tistory.com" => 도메인 이름 (www는 호스트 이름(서버 이름)) 
    - 특정 URL로 접속했을 때 DNS 서버가 해당 웹 사이트 서버의 IP 주소를 알려줌 (이름 해석)

    DNS Server

    : DNS Service를 제공하는 서버
    - IP에 대한 도메인을 저장하고 있음(일종의 전화번호부)
    - DNS Server가 모여 DNS(Domain Name System)을 구성 (분산형 데이터베이스 시스템)

    - 보통 UDP 프로토콜을 이용(많은 요청을 받아들이기 때문에 TCP 사용시 부하가 생길 수 있음, 데이터의 신뢰성이 중요할 경우에 사용)

    주소 변환 과정

    1. 컴퓨터로 웹 브라우저에 URL("https://www.naver.com")을 입력

    2-1. 웹 브라우저가 URL을 해석하고, 문법에 맞지 않으면 기본 검색엔진으로 검색 ➡️ end

    2-2. 문법에 맞을 경우 URL의 호스트 부분을 인코딩 ➡️ 3번으로 진행

    3. HSTS(HTTP Strict Transport Security) 목록을 확인하고 있으면 HTTPS로, 없으면 HTTP 요청을 함

    HTTP Strict Transport Security란?
    : HTTP대신 HTTPS만을 사용하여 통신해야 한다고 웹 사이트가 웹 브라우저에 알리는 보안 기능
    - HTTP 요청이 올 경우, 응답 헤더에 "Strict Transport Security"라는 필드를 포함하여 응답함으로써 브라우저가 해당 서버에 요청을 할 때 HTTPS만을 통해 통신할 수 있도록 함, 또한 자신의 HSTS 캐시에 해당 URL을 저장하여 관리함(HSTS 목록)

    4. DNS(Domain Name Server) 조회 (참고: https://hwan-shell.tistory.com/320)
     1) 브라우저/Local DNS서버(통신사 서버)를 확인해 해당 도메인의 IP가 있는지 확인
     1-1) 있으면 브라우저/로컬 캐시에 저장된 IP 주소 반환 ➡️ end
     2) 없으면 Root DNS에 TLD(Top-Level-Domain) 서버(com, kr과 같은 서버) 를 물어봄
     3) TLD 서버에서 authoritative DNS 서버 주소(도메인 네임에 대한 정보와 IP주소를 모두 갖고 있는 서버)가 있는지 확인

     4) authoritative DNS 서버인 naver.com 서버는 IP주소를 Local DNS 서버에 전달

    5. Local DNS는 www.naver.com에 대한 IP 주소를 캐싱(도메인 네임 주소를 저장)하고 IP 주소 정보를 전달

     

    CDN (Content Delivery Network) 이란?

    지리, 물리적 제약 없이 전 세계 사용자에게 더 빠르고 안전하게 콘텐츠를 전송할 수 있는 콘텐츠 전송 기술

    - 서버와 사용자 사이의 물리적 거리를 줄여 컨텐츠 로딩에 소요되는 시간 최소화
    - 각 지역에 캐시서버(PoP, Points of Presence)를 분산 배치해 사용자의 요청에 원본서버가 아닌 근접 캐시 서버가 전달하도록 함

    동작 순서

    1.  최초 요청시 원본 서버로부터 컨텐츠를 가져와 고객에게 전송하며 동시에 CDN 캐싱 장비에 캐싱

    2. 최초 요청 이후에는 컨텐츠 만료 전까지 캐싱되어있는 컨텐츠를 전송

    3. 자주 사용하는 페이지에 한하여 캐싱되며, 해당 컨텐츠의 호출이 일정 시간 없을 경우 주기적으로 삭제

    4. 서버가 파일을 찾는 데 실패하면 CDN 플랫폼의 다른 서버에서 컨텐츠를 찾음

    5. 컨텐츠를 사용할 수 없거나 오래된 경우 삭제 후, 새로운 컨텐츠를 받아 저장/캐싱

    CDN 이 필요한 경우

    - 인터넷을 통해 비즈니스를 운영하거나 웹 사이트에서 그래픽 이미지, 동영상 파일 등의 컨텐츠를 제공할 경우
     (동영상 스트리밍, 온라인 게임, 대용량 파일 전송, 고용량 이미지를 다루는 쇼핑몰 등에서 안정적인 서비스 제공을 위해 활용)

    - 특정 국가나 지역만을 타깃으로 하는 웹 서비스의 경우 CDN 서비스를 활용할 필요 없음

     (오히려 불필요한 연결 지점이 늘어나 웹 사이트의 성능 저하를 불러올 수 있음)

    CDN 캐싱 방법

    - Static Caching : 원래 서버에 저장되어 있는 컨텐츠를 미리 캐싱해둠으로써 사용자가 컨텐츠 요청시 무조건 캐시 서버에 있는 정보 반환

       (대부분의 국내 CDN에서 해당 방식 사용 ➡️ ex. 게임회사에서 파일 다운로드 할 때)

    - Dynamic Caching: 요청이 들어올 경우에만 캐싱해놓는 방법

     

    반응형

    댓글

Designed by Tistory.