티스토리 뷰


정적 컨텐츠와 동적 컨텐츠

정적 컨텐츠는 사용자 요청에 관계 없이 항상 동일하게 제공되는 컨텐츠이다. 별도의 데이터 처리가 필요 없이 모든 사용자에게 동일한 결과를 반환하고, 미리 생성되어 있기 때문에 빠르게 로드된다.

예로 HTML, CSS, JavaScript 파일, 이미지, 비디오 등이 있다.

 

동적 컨텐츠는 사용자 요청에 따라 실시간으로 생성되거나 업데이트되는 컨텐츠이다. 서버의 연산 및 데이터베이스와 상호작용이 필요하기 때문에 정적 컨텐츠에 비해 상대적으로 처리 시간이 더 걸린다.

예를 들어 사용자의 정보마다 페이지가 달라야 되는 경우, 실시간으로 데이터가 업데이트 되는 주식이나 실시간 뉴스가 있다.

 

 

정적 컨텐츠 캐싱, CDN

정적 컨텐츠 캐싱 방법으로 CDN(Content Delivery Network) 기술이 있다.

CDN은 지리적으로 분산된 서버들을 연결한 네트워크로서 컨텐츠를 전달하는 역할을 한다.

 

https://www.akamai.com/ko/glossary/what-is-a-cdn

CDN은 세 가지 서버에 의존하는데, 이 서버들은 CDN이 컨텐츠를 제공하는데 중요한 역할을 한다.

1. Origin Server

컨텐츠의 원본 데이터가 저장된 서버로, 최초 요청되거나 업데이트해야할 컨텐츠를 가져올 때 사용된다.

 

2. Edge Server

전 세계 여러 지리적 위치에 위치하는 CDN의 캐시 서버로, PoP(Point of Presense)라고도 한다.

(PoP는 인터넷 서비스 제공업체나 CDN 서비스가 제공하는 지리적 위치를 의미하는데, 사용자가 인터넷에 접속할 수 있는 접속 지점이다.)

Origin Server에서 복사된 컨텐츠를 캐싱하고, 인근 사용자에게 컨텐츠를 전송하는 역할을 담당한다. 만약 캐싱된 컨텐츠가 오래된 경우에는 Origin Server에 업데이트 된 컨텐츠를 요청하기도 한다.

 

3. DNS Server

클라이언트의 요청을 받으면 컨텐츠를 더 빠르게 제공할 수 있는 Edge Server로 라우팅한다.

 

사용자가 웹 사이트나 앱을 이용할 때, 해당 사용자에게 가장 가까운 CDN 서버가 컨텐츠를 전달하게 된다.

예를 들어, 영국에 있는 사용자가 대한민국의 웹사이트를 방문한다고 가정해보자. 이 경우 사용자의 요청은 물리적으로 8,857 km 멀리 떨어진 대한민국에 있는 서버까지 도달해야 하는데, 이는 네트워크 지연 시간이 발생하게 된다. 반대로 대한민국과 가까운 나라일수록 네트워크 이동 거리가 짧아 요청 시간이 상대적으로 줄어든다.

이러한 문제를 해결하기 위해 CDN을 활용하여 전 세계에 분산된 서버를 통해 컨텐츠를 제공한다. 사용자에게 가장 가까운 위치에 있는 서버에서 정적 컨텐츠를 전달하기 때문에, 원래 서버의 물리적인 위치와 관계없이 정적 컨텐츠 제공 속도를 높일 수 있게된다.

 

이러한 CDN도 사용할 때 고려해야 할 사항이 있다.

1. CDN는 보통 third-party 에 의해 운영되며, 데이터 전송 양에 따라 요금을 부과하게 된다. 따라서 자주 요청되는 정적 컨텐츠를 캐싱하여 CDN에서 직접 제공하도록 설정하는 것이 비용을 절감할 수 있다.

 

2. 시의성이 중요한 컨텐츠의 경우 적절한 만료시간을 정해야 한다. 시간이 너무 길면 컨텐츠의 신선도는 떨어지고, 너무 짧으면 원본 서버에 빈번히 접속하게 되어야 하니 적절한 만료시간을 정하는 것이 좋다.

 

동적 컨텐츠 캐싱, CloudFront

동적 컨텐츠 캐싱은 요청 경로, 질의 문자열, 쿠키, 요청 헤더 등 정보에 기반하여 페이지를 캐시하는 것이다.

이러한 방법을 제공하는 AWS의 CloudFront 서비스가 있는데, AWS의 CDN 기술이라고 보면 된다. (정적 컨텐츠도 포함한다.)

 

먼저, CloudFront는 다음 개념이 존재한다.

Edge Locations (POP)

사용자의 요청을 처리하는 첫 번째 지점으로, CloudFront POP를 의미한다.

사용자와의 지연 시간을 줄여 컨텐츠를 빠르게 제공하고, 캐시에 요청된 컨텐츠가 없는 경우에 REC 또는 원본 서버로 요청을 전달한다.

 

Embedded POPs

ISP(인터넷 서비스 제공자) 네트워크와 피어링되어 사용자의 요청을 처리하는 

 

Regional Edge Caches

POP와 원본 서버 사이에 위치하며, POP보다 큰 캐시 공간을 제공하는 중간 캐싱 계층이다.

 

다음은 CloudFront의 동작 흐름이다.

https://docs.aws.amazon.com/ko_kr/AmazonCloudFront/latest/DeveloperGuide/HowCloudFrontWorks.html

1. 사용자가 웹 사이트나 어플리케이션에 요청을 한다.

2. DNS는 요청을 사용자의 위치와 가장 가까운 Edge location으로 라우팅한다.

3. Edge location에서 해당 캐시에 요청된 데이터가 있는지 확인한다. 데이터가 캐시에 있으면 바로 사용자한테 반환하고, 없으면 Edge location과 가장 가까운 REC로 데이터를 요청한다.

4. REC에 데이터가 있는지 확인한다. 데이터가 있으면 POP로 전달하고, 없으면 CloudFront는 원본 서버로 데이터를 요청한다.

5. 원본 서버가 데이터를 REC로 전달하면 REC는 POP로 전달하고 CloudFront는 사용자에게 데이터를 반환한다. 정리하면, 이 과정의 데이터 흐름은 '원본 서버 -> REC -> POP'로, CloudFront가 사용자에게 데이터를 전달하고 POP와 REC에 저장한다.

 

이제는, CloudFront는 어떻게 동적 컨텐츠를 캐싱할 수 있는지 알아보자.

CloudFront는 캐시 정책을 지원하는데, 이 정책을 사용하면 URL 쿼리 문자열, HTTP 헤더 및 쿠키와 같은 캐시 키에 포함된 값을 세부적으로 제어할 수 있다.

TODO..https://docs.aws.amazon.com/ko_kr/AmazonCloudFront/latest/DeveloperGuide/cache-key-understand-cache-policy.html


참고

가상 면접 사례로 배우는 대규모 시스템 설계 기초

https://www.akamai.com/ko/glossary/what-is-a-cdn

 

CDN(콘텐츠 전송 네트워크)이란 무엇일까요? CDN은 어떻게 작동하나요? | Akamai

콘텐츠 전송 네트워크(CDN)는 사용자와 가까운 곳에서 콘텐츠를 전송함으로써 더 빠르고 안정적인 온라인 경험을 제공합니다. 자세히 알아보세요.

www.akamai.com

https://aws.amazon.com/ko/cloudfront/?nc=sn&loc=1

 

CDN 서비스 | CloudFront | Amazon Web Services

트래픽 암호화, 액세스 제어, VPC 오리진을 통해 보안을 개선하고, AWS Shield Standard를 사용하여 추가 요금 없이 DDoS 공격으로부터 보호합니다.

aws.amazon.com

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함