어제까지 서버·스토리지·네트워크라는 "내부 인프라"를 봤다. 오늘은 그 인프라가 만든 콘텐츠를 전 세계 사용자에게 빠르게 전달하는 바깥쪽 서비스다. 핵심은 두 가지 질문이다 — "어떻게 하면 멀리 있는 사용자에게도 빠르게 줄까(CloudFront)"와 "사용자가 도메인 이름을 쳤을 때 어디로 보낼까(Route 53)". 이 둘이 함께 "엣지(Edge)" 서비스를 이룬다.
오늘은 CDN의 원리(CloudFront), DNS의 원리(Route 53), 그리고 둘이 어떻게 협력하는지를 입문 수준으로 정리한다.
서버가 미국 버지니아에 있고 사용자가 서울에 있다면, 데이터는 태평양을 건너 왕복해야 한다. 빛의 속도에도 한계가 있어 물리적 거리는 곧 지연(latency)이 된다. 매번 이미지·동영상·웹페이지를 지구 반대편에서 가져오면 느리다.
이게 왜 큰 문제인지 감이 잘 안 올 수 있다. 한 번 왕복하는 시간은 눈 깜짝할 사이니까. 하지만 웹페이지 하나를 여는 데 필요한 왕복은 한 번이 아니다. HTML을 받아 오면 그 안에 CSS·JavaScript·이미지·폰트가 줄줄이 걸려 있고, 브라우저는 그것들을 또 요청한다. 게다가 연결을 맺는 과정(주소 확인, 연결 수립, 암호화 협상)에서도 왕복이 여러 번 일어난다.
즉 왕복 한 번의 지연이 수십 배로 증폭된다. 거리가 멀면 아무리 서버 성능이 좋아도, 회선이 굵어도 이 왕복 시간은 줄지 않는다