Cloud CDN 개요

Cloud CDN(Content Delivery Network)은 Google의 글로벌 에지 네트워크를 사용하여 사용자에게 더 근접하여 콘텐츠를 제공하므로 웹사이트 및 애플리케이션 속도가 빨라집니다.

Cloud CDN은 외부 HTTP(S) 부하 분산과 함께 작동하여 사용자에게 콘텐츠를 제공합니다. 외부 HTTP(S) 부하 분산기는 요청을 수신하는 프런트엔드 IP 주소와 포트, 요청에 응답하는 백엔드를 제공합니다.

Cloud CDN 콘텐츠는 다음과 같은 다양한 유형의 백엔드에서 가져올 수 있습니다.

Cloud CDN에서는 이러한 백엔드를 원본 서버라고 부르기도 합니다. 다음 그림은 VM 인스턴스에서 실행 중인 원본 서버의 응답이 Cloud CDN에 의해 전송되기 전에 어떻게 HTTP(S) 부하 분산기를 통과하는지 보여줍니다.

Cloud CDN을 통해 원본 서버에서 클라이언트로 응답이 전달됩니다.
Cloud CDN 응답 흐름

Cloud CDN 작동 방식

사용자가 외부 HTTP(S) 부하 분산기에서 콘텐츠를 요청하면 이 요청은 사용자와 최대한 가까이에 있는 Google 네트워크 에지에 위치한 Google 프런트엔드(GFE)에 도착합니다.

부하 분산기의 URL 맵이 Cloud CDN이 구성된 백엔드 서비스 또는 백엔드 버킷으로 트래픽을 라우팅하는 경우 GFE는 Cloud CDN을 사용합니다.

캐시 적중 및 캐시 부적중

캐시는 콘텐츠를 저장하고 관리하여 해당 콘텐츠에 대한 향후 요청을 더 빨리 처리할 수 있는 서버 그룹입니다. 캐시된 콘텐츠는 원본 서버에 저장된 캐시 가능한 콘텐츠의 사본입니다.

GFE가 Cloud CDN 캐시를 살펴보고 사용자의 요청에 캐시된 응답을 찾으면 캐시된 응답을 사용자에게 전송합니다. 이것을 캐시 적중이라고 합니다. 캐시 적중이 발생하면 GFE는 캐시 키를 사용하여 콘텐츠를 검색하고 사용자에게 직접 응답하여 왕복 시간을 줄이고 원본 서버는 요청을 처리하지 않아도 됩니다.

처음으로 콘텐츠가 요청되면 GFE는 캐시에서 요청을 수행할 수 없다고 판단합니다. 이를 캐시 부적중이라고 합니다. 캐시 부적중이 발생하면 GFE는 두 번째 캐시에서 콘텐츠를 가져오려고 시도할 수 있습니다. 다른 캐시에 콘텐츠가 있으면 두 번째 캐시의 GFE는 캐시 간 채우기를 사용하여 콘텐츠를 첫 번째 캐시로 보냅니다. 그렇지 않으면 두 번째 캐시의 GFE가 요청을 외부 HTTP(S) 부하 분산기로 전달합니다. 그러면 부하 분산기가 요청을 원본 서버 중 하나로 전달합니다. 캐시가 콘텐츠를 수신하면 GFE는 콘텐츠를 사용자에게 전달합니다.

다음 그림은 캐시 적중 및 캐시 부적중을 보여줍니다.

  1. VM 인스턴스에서 실행되는 원본 서버가 HTTP(S) 응답을 보냅니다.
  2. 외부 HTTP(S) 부하 분산기는 Cloud CDN에 응답을 배포합니다.
  3. Cloud CDN은 최종 사용자에게 응답을 제공합니다.
초기 응답은 원본 서버에서 제공되고 후속 응답은 GFE에 의해 캐시에서 제공됩니다.
캐시 적중 및 캐시 부적중

캐시 이그레스 및 캐시 채우기

이 요청에 대한 원본 서버의 응답이 캐시 가능하면 Cloud CDN은 이후 요청을 위해 Cloud CDN 캐시에 응답을 저장합니다.

캐시에서 클라이언트로의 데이터 전송을 캐시 이그레스라고 합니다. 캐시로의 데이터 전송을 캐시 채우기라고 합니다. 다음 그림과 같이 캐시 채우기는 다른 Cloud CDN 캐시 또는 원본 서버를 출처로 할 수 있습니다.

캐시 채우기는 원본 서버에서 캐시로 또는 캐시에서 다른 캐시로의 데이터 전송입니다. 캐시 이그레스는 캐시에서 클라이언트로의 데이터 전송입니다.
캐시 채우기 및 캐시 이그레스

캐시 적중, 캐시 부적중, 캐시 채우기와 관련된 비용은 가격 책정을 참조하세요.

URL 리디렉션 없음

Cloud CDN은 URL 리디렉션을 수행하지 않습니다. Cloud CDN 캐시는 GFE에 위치합니다. 이는 다음을 의미합니다.

  • Cloud CDN 사용 설정 여부에 관계없이 클라이언트가 요청하는 URL은 동일한 URL로 유지됩니다.
  • 캐시 적중이 있는지에 관계없이 URL은 동일한 URL로 유지됩니다.

캐시 적중률

캐시 적중률은 요청된 객체가 캐시에서 제공된 횟수를 백분율로 표시한 것입니다. 캐시 적중률이 60%라면 요청된 객체를 캐시에서 제공한 경우가 전체 중 60%이며 원본에서 가져와야 하는 경우는 40%임을 의미합니다.

캐시 키가 캐시 적중률에 미치는 영향에 대한 자세한 내용은 캐시 키 사용을 참조하세요. 문제 해결 정보는 캐시 적중률이 낮음을 참조하세요.

짧은 기간의 캐시 적중률 보기

짧은 기간(최근 몇 분)의 캐시 적중률을 보려면 다음 단계를 따르세요.

  1. Google Cloud Console에서 Cloud CDN 페이지로 이동합니다.

    Cloud CDN으로 이동

  2. 각 원본의 경우 캐시 적중률 열을 참조하세요.

    해당 사항 없음은 부하 분산된 콘텐츠가 현재 캐시되지 않았거나 최근에 요청되지 않았음을 의미합니다.

더 긴 기간의 캐시 적중률 보기

1시간~30일 기간의 캐시 적중률을 보려면 다음 단계를 따르세요.

  1. Google Cloud Console에서 Cloud CDN 페이지로 이동합니다.

    Cloud CDN으로 이동

  2. 연결된 부하 분산기 열에서 부하 분산기 이름을 클릭합니다.
  3. 모니터링 탭을 클릭합니다.
  4. 특정 백엔드를 선택합니다.
  5. 기간을 선택합니다.
  6. 적중률이 해당 사항 없음이 아니면 캐시 적중률이 Monitoring 탭 하단에 표시됩니다.

캐시에 콘텐츠 삽입

캐싱은 요청이 해당 캐시를 통과한 경우와 응답이 캐시 가능할 경우 특정 캐시에 객체가 저장된다는 점에서 반응성을 가집니다. 한 캐시에 저장된 객체는 다른 캐시에 자동으로 복제되지 않습니다. 캐시 간 채우기는 클라이언트가 시작한 요청에 대해서만 이행됩니다. 개별 캐시를 통해 요청에 응답하는 경우를 제외하고 캐시를 미리 로드할 수 없습니다.

원본 서버가 바이트 범위 요청을 지원하는 경우 Cloud CDN은 단일 클라이언트 요청에 대한 응답으로 여러 캐시 채우기 요청을 시작할 수 있습니다.

캐시에서 콘텐츠 제공

Cloud CDN을 사용하도록 설정하면 캐시 가능한 모든 콘텐츠에 대해 자동으로 캐싱이 이행됩니다. 원본 서버는 HTTP 헤더를 사용하여 어떤 응답을 캐시하는지를 나타냅니다. 캐시 모드를 사용하면 캐시 가능성도 제어할 수 있습니다.

백엔드 버킷을 사용하는 경우 원본 서버는 Cloud Storage입니다. VM 인스턴스를 사용할 때 원본 서버는 해당 인스턴스에서 실행되는 웹 서버 소프트웨어입니다.

Cloud CDN은 전 세계 수많은 곳에 있는 캐시를 사용합니다. 캐시의 특성으로 인해 특정 요청이 캐시에서 제공되는지 여부를 예측하는 것은 불가능합니다. 하지만 캐시 가능한 콘텐츠에 대한 인기 있는 요청은 대부분 캐시에서 제공되므로 지연 시간이 줄어들고 비용이 절감되며 원본 서버의 부하가 낮아집니다.

Cloud CDN이 캐시하는 내용과 캐시 기간에 대한 자세한 내용은 캐싱 개요를 참조하세요.

Cloud CDN이 캐시에서 제공하는 항목은 로그를 보면 확인할 수 있습니다.

캐시에서 콘텐츠 삭제

캐시에서 항목을 삭제하려면 캐시된 콘텐츠를 무효화합니다. 자세한 내용은 다음을 참조하세요.

캐시 우회

Cloud Storage 버킷이나 Compute Engine VM에서 바로 객체를 요청하면 Cloud CDN을 우회할 수 있습니다. 예를 들어 Cloud Storage 버킷 객체에 대한 URL은 다음과 같습니다.

https://storage.googleapis.com/STORAGE_BUCKET/FILENAME

제거 및 만료

캐시에서 콘텐츠를 제공하려면 콘텐츠를 캐시에 삽입해야 하며 제거하거나 만료하지 않아야 합니다.

제거만료는 서로 다른 두 가지 개념입니다. 모두 서비스 대상에 영향을 미치지만 서로에게 직접적인 영향을 주지는 않습니다.

제거

소수의 요청으로 콘텐츠 캐싱을 테스트할 경우 콘텐츠가 삭제될 수 있습니다.

모든 캐시의 저장 용량에는 제한이 있습니다. 하지만 Cloud CDN은 캐시가 가득 찬 후에도 콘텐츠를 추가합니다. 가득 찬 공간에 콘텐츠를 삽입하기 위해 캐시는 먼저 다른 항목을 제거하여 공간을 확보합니다. 이를 제거라고 합니다. 캐시는 대개 가득 차 있기 때문에 끊임없이 콘텐츠를 제거합니다. 일반적으로 콘텐츠의 만료 시간에 관계없이 최근에 액세스하지 않은 콘텐츠를 제거합니다. 제거된 콘텐츠는 만료되었을 수 있고 그렇지 않을 수도 있습니다. 만료 시간 설정은 제거에 영향을 주지 않습니다.

인기가 없는 콘텐츠란 한동안 액세스하지 않은 콘텐츠를 의미합니다. 얼마간인기 없음은 모두 캐시에 있는 다른 항목의 양에 대해 상대적입니다. 여러 Google Cloud 프로젝트가 동일한 GFE 집합에서 제공되므로 공통의 캐시 공간 풀을 공유합니다. 콘텐츠의 상대적 인기도는 단일 프로젝트 내에서뿐만 아니라 여러 프로젝트에서 비교됩니다.

캐시가 더 많은 트래픽을 수신하면 더 많은 캐시 콘텐츠가 제거됩니다.

모든 대용량 캐시를 통해 콘텐츠가 예기치 않게 제거될 수 있으므로 캐시에서 제공하는 항목에 대한 특별한 요청은 보장되지 않습니다.

만료

HTTP(S) 캐시의 콘텐츠에는 구성 가능한 만료 시간이 있을 수 있습니다. 만료 시간은 콘텐츠가 제거되지 않은 경우에도 캐시에게 오래된 콘텐츠를 제공하지 않도록 알립니다.

예를 들어 시간별 사진 URL을 고려해보세요. 응답은 1시간 이내에 만료되도록 설정되어야 합니다. 그렇지 않은 경우 제공된 콘텐츠는 캐시의 오래된 사진일 수 있습니다.

만료 시간을 미세 조정하는 방법에 대한 자세한 내용은 TTL 설정 및 재정의 사용을 참조하세요.

Cloud CDN에서 시작된 요청

원본 서버가 바이트 범위 요청을 지원하면 Cloud CDN은 단일 클라이언트 요청에 대한 응답으로 여러 요청을 원본 서버에 보낼 수 있습니다. 바이트 범위 요청 지원에서 설명한 대로 Cloud CDN은 유효성 검사 요청과 바이트 범위 요청 등 두 가지 유형의 요청을 시작할 수 있습니다.

다른 클라우드 플랫폼 서비스의 데이터 위치 설정

Cloud CDN을 사용한다는 것은 데이터가 원본 서버의 리전 또는 영역 외부의 제공 위치에 저장될 수 있음을 의미합니다. 이는 정상이며 인터넷에서 HTTP 캐싱이 작동하는 방식입니다. Google Cloud Platform 서비스 약관의 서비스별 약관에 따라 특정 Cloud Platform 서비스에서 사용할 수 있는 데이터 위치 설정은 다른 Google 제품 및 서비스(이 경우 Cloud CDN 서비스)와 함께 사용 시 각 Cloud Platform 서비스에 대한 핵심 고객 데이터에는 적용되지 않습니다. 이러한 결과를 원하지 않는 경우 Cloud CDN 서비스를 사용하지 마세요.

Google 관리형 SSL 인증서 지원

Cloud CDN가 사용 설정되면 Google 관리형 인증서를 사용할 수 있습니다.

Cloud CDN이 포함된 Google Cloud Armor

Cloud CDN이 포함된 Google Cloud Armor에는 두 가지 유형의 보안 정책이 있습니다.

  • 에지 보안 정책. 이러한 정책은 Cloud CDN이 사용 설정된 원본 서버에 적용할 수 있습니다. CDN 조회 이전의 모든 트래픽에 적용됩니다.
  • 백엔드 보안 정책. 이러한 정책은 동적 콘텐츠, 캐시 부적중 또는 대상이 CDN 원본 서버인 기타 요청에만 적용됩니다.

자세한 내용은 Google Cloud Armor 문서를 참조하세요.

다음 단계