(생필) 인터넷 이야기

인터넷을 빠르게 하는 기술들 (Cache, CDN)

생활IT 2024. 4. 19. 14:21
반응형

 

여러분들의 지식을 이제 "와이파이"에서 벗어나 더 넓은 시야로 전체적인 그림을 이해하실 수 있도록 더 다양한 것들을 다뤄보려고 합니다.

 

항상 사용하시는 인터넷, 그 인터넷을 사용하시며 당연하다고 생각하셨던 것들, 그 당연한 것을 위해 어떤 기술들이 숨어 있는지 설명드리려고 하는데요. 

 

# Cache 기술

수많은 기술들이 있지만, 오늘은 Cache(캐시)와 관련된 설명을 간단히 드리려 합니다. 

 

"캐시"는 우리가 더 빠른 인터넷을 사용할 수 있게 해주는 아주 고마운 녀석입니다. ^^ 

 

대표적인 3가지 캐시를 설명드려볼께요.

사전적인 설명은 아래와 같습니다. 그럼, 이 캐시 기술이 어디에서 어떻게 동작되고 있는지 한벌 알아볼까요?

 

# DNS Cache

인터넷 접속을 위해 웹 브라우저를 실행하고, 어떤 URL 주소를 주소창에 입력하시는 순간, 우리 눈에는 보이지 않지만 브라우저는 그 주소에 해당하는 IP 주소를 찾기 위해 가장 먼저 "DNS 서버"와 연결하여 IP 주소를 확인합니다. 

 

그럼 브라우저는 이 IP 주소를 이용하여 내가 입력했던 웹 서버와 연결되게 됩니다. 

 

여기서, 첫번째 캐시가 저장이 됩니다. 바로 "DNS cache" 인데요.

 

내가 다시 Daum.net에 접속하려고 할 때, DNS 서버로 다시 IP 주소를 요청하는 것이 아니라 PC에 저장된 DNS 캐시 정보를 사용하여 접속하게 됩니다. 

 

이 캐시들은 CMD 창에서 ipconfig /displaydns 명령어를 통해서 확인하실 수 있어요.

 

이로 인해, 아주 짧은 시간이긴 하지만 그 만큼 웹 사이트에 접속하는 시간이 단축되었습니다. 

 

# Browser Cache

자 그럼, 브라우저에 URL 주소를 입력하였으니 요청하신 페이지가 브라우저에 나타날텐데요. 

 

여기서, 두번째 캐시가 저장이 됩니다. 바로 "브라우저 캐시" 입니다. 

 

한번 접속했던 사이트는 그 다음 같은 사이트에 접속할 때, 웹 서버에서 가져오는 것이 아니라 메모리에 저장된 "웹 사이트 캐시"를 사용하여 페이지를 표시하게 됩니다. 단, 캐시도 유효시간이 있어서 정해진 시간이 지나면 그 캐시가 만료되긴 합니다. 

 

아래 붉은색 박스에서 확인하실 수 있는데요. "memory cache"라고 표기된 부분을 통해 이 데이터는 웹 서버에서 가져온 거이 아니라 메모리에 저장된 캐시에서 가져온 데이터임을 확인할 수 있습니다. 

 

이 캐시로 인해 이미 접속했던 사이트들은 처음 접속했을 때보다 훨씬 빨리 뜨게 되는 것을 느끼실 수 있을거에요.

 

# Content Delivery Network

세번째 캐시를 설명드리기에 앞서 이러한 상황을 가정해 보겠습니다. 

 

내가 접속하고자 하는 웹 서버가 아주 먼~ 나라에 있어요. 이 웹 서버에 접속하면 당연히 페이지는 느리게 뜰 수 밖에 없겠죠?

 

예를들어, ebay.com에 접속한다고 하면, 이 서버가 미국에 있기 때문에 정말로 웹 페이지가 늦게 뜨게 될까요??

 

하지만, 실상은 그렇지 않죠? 해외에 있는 웹 서버라고 할지라도 국내에 있는 것처럼 빨리 뜨게 됩니다. 

 

그 이유는 이 웹 서버들이 CDN (컨텐츠 딜리버리 네트워크) 서비스를 사용하고 있기 때문인데요.

 

좌측 그림은 CDN 서비스를 사용하지 않았을 때 입니다. 모든 사용자가 웹 서버에 직접 요청하게 되고, 이로인해 웹 서버의 부하 뿐만 아니라 먼 거리로 인해 지연이 발생할 수 밖에 없는 구조 입니다. 

 

하지만, 오른쪽 그림의 경우, 실제 사용자들은 웹 서버에 바로 요청하는 것이 아니라 전진배치 되어 있는 CDN 서버로 연결을 요청하게 됩니다. 

 

이로 인해, 응답속도가 빨라지고, 웹 서버의 부하를 줄일 수 있게 되는데요.

 

여기서, 세번째 캐시가 등장합니다. 이 CDN 서버들은 사용자가 요청한 페이지들을 저장(캐시) 해두고, 같은 요청에 오면 캐시를 이용하여 응답하게 됩니다. 

 

자기가 가지고 있지 않은 데이터만 웹 서버에 요청하게 되는 원리 인거죠. (또는 다른 CDN 서버로 요청)

 

그럼 ebay.com이 CDN 서비스를 사용하고 있는지 어떻게 확인하는지 한번 볼까요?

 

C:\>nslookup ebay.com
서버:    bns1.hananet.net
Address:  210.220.163.82

권한 없는 응답:
이름:    ebay.com
Addresses:  23.193.119.207
          23.193.119.212

 

ebay.com의 주소가 23.193.119.207 이라고 나옵니다. 이것은 whois에 한번 검색해볼께요.

 

이 주소는 Akamai technologies가 사용하는 IP 인데요. Akamai는 대표적인 CDN 서비스 회사 중에 하나입니다. 

 

# 결론

우리가 항상 사용하고 있지만 관심을 갖지 않으면 알 수 없는 캐시(Cache)에 대해서 간단히 알아봤는데요.

 

이 캐시 기능들로 인해 우리는 빠르고 편안~하게 인터넷을 사용할 수 있게 됩니다. ^^

 

반응형