Lightsail 배포에 대한 캐싱 구성 - Amazon Lightsail

Lightsail 배포에 대한 캐싱 구성

캐시 동작을 사용하면 Amazon Lightsail 배포에 의해 오리진에서 캐싱되거나 캐싱되지 않는 항목을 구성할 수 있습니다. 예를 들어, 오리진에서 개별 디렉터리, 파일 또는 파일 유형을 캐싱하도록 지정할 수 있습니다. 오리진에 전달되는 HTML 메서드와 헤더를 지정할 수도 있습니다. 이 가이드에서는 배포의 캐싱 동작을 변경하는 방법을 안내합니다. 배포에 대한 자세한 내용은 콘텐츠 전송 네트워크 배포를 참조하세요.

목차

캐싱 사전 설정

캐싱 사전 설정은 오리진에서 호스팅하는 콘텐츠 유형에 대한 배포 설정을 자동으로 구성합니다. 예를 들어, 정적 콘텐츠에 가장 적합한 사전 설정을 선택하면 정적 웹 사이트에서 가장 효과적인 설정으로 배포를 자동으로 구성합니다. 웹 사이트가 WordPress 인스턴스에서 호스팅되는 경우 WordPress에 가장 적합한 사전 설정을 선택하여 WordPress 웹 사이트에서 배포를 사용할 수 있도록 자동으로 구성하면 됩니다.

배포에 대해 다음 캐싱 사전 설정 중 하나를 선택할 수 있습니다.

  • 정적 콘텐츠에 가장 적합 - 이 사전 설정은 모든 항목을 캐싱하도록 배포를 구성합니다. 이 사전 설정은 오리진에서 정적 콘텐츠(예: 정적 HTML 페이지)를 호스팅하거나 웹 사이트를 방문하는 각 사용자에 대해 변함없는 콘텐츠를 호스팅하는 경우에 사용하면 좋습니다. 이 사전 설정을 선택하면 배포의 모든 콘텐츠가 캐싱됩니다.

  • 동적 콘텐츠에 가장 적합 - 이 사전 설정은 배포 생성(Create a distribution) 페이지의 디렉터리 및 파일 재정의(Directory and file overrides) 섹션에서 캐시로 지정한 파일을 제외한 다른 파일을 캐싱하지 않도록 배포를 구성합니다. 자세한 내용은 가이드 후반부에 나와 있는 디렉터리 및 파일 재정의를 참조하세요. 이 사전 설정은 오리진에서 동적 콘텐츠를 호스팅하거나, 웹 사이트에 방문하거나 웹 애플리케이션을 이용하는 각 사용자에게 맞춰 변경될 수 있는 콘텐츠를 호스팅하는 경우에 적합합니다.

  • WordPress에 가장 적합 - 이 사전 설정은 WordPress 인스턴스의 wp-includes/wp-content/ 디렉터리에 있는 파일 외에는 어떤 것도 캐싱하지 않도록 배포를 구성합니다. 이 사전 설정은 오리진이 Bitnami 및 Automattic 인증 WordPress 블루프린트(Multisite 블루프린트 제외)를 사용하는 인스턴스인 경우 유용합니다. 이 사전 설정에 대한 자세한 내용은 WordPress 캐싱 사전 설정 모범 사례를 참조하세요.

    참고

    사용자 지정 설정 사전 설정은 선택할 수 없습니다. 이 설정은 사전 설정을 선택했으나 추후 배포 설정을 수동으로 수정하는 경우 자동으로 선택됩니다.

Lightsail 콘솔에서만 캐싱 사전 설정을 지정할 수 있으며, Lightsail API, AWS CLI 및 SDK를 통해서는 지정할 수 없습니다.

WordPress 캐싱 사전 설정 모범 사례

배포 오리진으로 Bitnami 및 Automattic 인증 WordPress 블루프린트를 사용하는 인스턴스를 선택하면 Lightsail에서 배포에 WordPress에 가장 적합한 캐싱 사전 설정을 적용할지 묻는 메시지가 표시됩니다. 해당 사전 설정을 적용하면 배포가 WordPress 웹 사이트에서 가장 효과적으로 작동하도록 자동으로 구성됩니다. 다른 배포 설정을 적용하지 않아도 됩니다. WordPress 웹 사이트의 wp-includes/wp-content/ 디렉터리에 있는 파일 외에는 캐싱하지 않는 WordPress에 가장 적합한 사전 설정. 또한, 매일 캐시를 지우고(캐시 수명 1일), 모든 HTTP 메서드를 허용하고, Host 헤더만 전달하고, 쿠키를 전달하지 않고, 모든 쿼리 문자열을 전달하도록 배포를 구성합니다.

중요

WordPress 웹 사이트를 배포와 함께 사용할 수 있도록 하려면 인스턴스에서 WordPress 구성 파일을 편집해야 합니다. 자세한 내용은 배포와 함께 사용할 수 있도록 WordPress 인스턴스 구성을 참조하세요.

기본 동작

기본 동작은 배포에서 콘텐츠 캐싱을 처리하는 방법을 좌우합니다. 선택한 캐싱 사전 설정에 따라 배포의 기본 동작이 자동으로 지정됩니다. 다른 기본 동작을 선택하면 캐싱 사전 설정이 자동으로 사용자 지정 설정으로 변경됩니다.

배포에 대해 다음 기본 동작 중 하나를 선택할 수 있습니다.

  • 모든 항목 캐싱 - 이 동작은 전체 웹 사이트를 캐싱하고 정적 콘텐츠로 제공하도록 배포를 구성합니다. 이 옵션은 오리진이 보는 사람에 따라 변경되지 않는 콘텐츠를 호스팅하거나 웹 사이트에서 콘텐츠를 개인화하는 데 쿠키, 헤더 또는 쿼리 문자열을 활용하지 않는 경우에 사용하면 좋습니다.

  • 캐싱하지 않음 - 이 동작은 지정한 오리진 파일과 폴더 경로만 캐싱하도록 배포를 구성합니다. 이 옵션은 웹 사이트 또는 웹 응용 프로그램에서 쿠키, 헤더 및 쿼리 문자열을 활용하여 개별 사용자에게 맞춰 콘텐츠를 개인화하는 경우에 적합합니다. 이 옵션을 선택하는 경우 캐시에 디렉터리 및 파일 경로 재정의지정해야 합니다.

디렉터리 및 파일 재정의

디렉터리 및 파일 재정의는 선택한 기본 동작을 재정의하거나 예외를 추가하는 데 사용할 수 있습니다. 예를 들어, 모든 항목을 캐싱하도록 선택한 경우 재정의를 통해 배포에서 캐싱하지 않아야 하는 디렉터리, 파일 또는 파일 유형을 지정할 수 있습니다. 반대로 어떤 것도 캐싱하지 않도록 선택한 경우 재정의를 통해 배포에서 캐싱해야 하는 디렉터리, 파일 또는 파일 유형을 지정하면 됩니다.

페이지의 디렉터리 및 파일 재정의(Directory and file overrides) 섹션에서 캐싱하거나 캐싱하지 않을 디렉터리 또는 파일 경로를 지정할 수 있습니다. 별표 기호를 사용하여 와일드카드 디렉터리(path/to/assets/*) 및 파일 유형(*.html, *jpg, *js)을 지정합니다. 디렉터리와 파일 경로는 대/소문자를 구분합니다.

다음은 디렉터리 및 파일 재정의를 지정하는 몇 가지 방법입니다.

  • Lightsail 인스턴스에서 실행 중인 Apache 웹 서버의 문서 루트에 있는 모든 파일을 캐싱하려면 다음을 지정하세요.

    var/www/html/
  • Apache 웹 서버의 문서 루트에 있는 인덱스 페이지만 캐싱하려면 다음을 지정하세요.

    var/www/html/index.html
  • Apache 웹 서버의 문서 루트에 있는 .html 파일만 캐싱하려면 다음을 지정하세요.

    var/www/html/*.html
  • Apache 웹 서버 문서 루트의 이미지 하위 디렉터리에 있는 .jpg, .png 및 .gif 파일만 캐싱하려면 다음을 지정하세요.

    var/www/html/images/*.jpg
    var/www/html/images/*.png
    var/www/html/images/*.gif

    Apache 웹 서버 문서 루트의 이미지 하위 디렉터리에 있는 모든 파일을 캐싱하려면 다음을 지정하세요.

    var/www/html/images/

고급 캐시 설정

고급 설정을 사용하여 배포에 있는 콘텐츠의 캐시 수명, 허용되는 HTTP 메서드, HTTP 헤더 전달, 쿠키 전달 및 쿼리 문자열 전달을 지정할 수 있습니다. 지정한 고급 설정은 캐시로 지정한 디렉터리 및 파일을 재정의하는 등 배포가 캐싱하는 디렉터리 및 파일에만 적용됩니다.

다음과 같은 고급 설정을 구성할 수 있습니다.

캐시 수명(TTL)

배포가 오리진으로 다른 요청을 전달하여 콘텐츠가 업데이트되었는지 확인하기 전에 콘텐츠가 배포의 캐시에 남아 있는 시간을 제어합니다. 기본값은 1일입니다. 이 기간을 줄여 보다 효과적인 동적 콘텐츠를 제공할 수 있습니다. 이 기간이 늘어나면 파일이 엣지 로케이션에서 바로 제공될 가능성이 크므로 사용자에게 제공되는 성능이 향상됩니다. 또한, 기간을 늘리면 배포에서 콘텐츠를 가져오는 빈도가 줄어들어 오리진에 가해지는 부하도 줄어듭니다.

참고

지정한 캐시 수명 값은 오리진이 콘텐츠에 Cache-Control max-age, Cache-Control s-maxageExpires와 같은 HTTP 헤더를 추가하지 않을 경우에만 적용됩니다.

허용되는 HTTP 메서드

배포가 처리하고 오리진으로 전달하는 HTTP 메서드를 제어합니다. HTTP 메서드는 오리진에서 수행되기를 바라는 작업을 나타냅니다. 예를 들어, GET 메서드는 오리진에서 데이터를 검색하고 PUT 메서드는 함께 제공되는 엔터티를 오리진에 저장하도록 요청합니다.

배포에 대해 다음 HTTP 메서드 옵션 중 하나를 선택할 수 있습니다.

  • GET, HEAD, OPTIONS, PUT, PATCH, POST 및 DELETE 메서드 허용

  • GET, HEAD 및 OPTIONS 메서드 허용

  • GET 및 HEAD 메서드 허용

배포는 항상 GET 및 HEAD 요청에 대한 응답을 캐싱합니다. 또한, 이러한 요청을 허용하도록 선택한 경우 배포에서는 OPTIONS 요청에 대한 응답도 캐싱합니다. 배포는 다른 HTTP 메서드에 대한 응답을 캐싱하지 않습니다.

중요

지원되는 모든 HTTP 메서드를 허용하도록 배포를 구성할 경우 모든 메서드를 처리하도록 오리진 인스턴스를 구성해야 합니다. 예를 들어, POST를 사용하기 위해 이러한 메서드를 허용하도록 배포를 구성하는 경우, 최종 사용자가 원치 않는 리소스를 삭제할 수 없도록 오리진 서버가 DELETE 요청을 적절히 처리할 수 있게 구성해야 합니다. 자세한 내용은 웹 사이트 또는 웹 애플리케이션 문서를 살펴보세요.

HTTP 헤더 전달

지정된 헤더 값을 기준으로 배포가 콘텐츠를 캐싱할지와 캐싱한다면 어떤 헤더 값을 캐싱할지 제어합니다. HTTP 헤더는 클라이언트 브라우저, 요청된 페이지, 오리진 등에 대한 정보를 전달합니다. 예를 들어, Accept-Language 헤더는 클라이언트 언어(예: 영어의 경우 en-US)를 전송하여 오리진이 사용 가능한 경우 클라이언트 언어로 된 내용으로 응답할 수 있도록 합니다.

배포에 대해 다음 HTTP 헤더 옵션 중 하나를 선택할 수 있습니다.

  • 헤더 전달 안 함(Forward no headers)

  • 지정한 헤더만 전달

헤더 전달 안 함(Forward no headers)을 선택하면 배포가 헤더 값을 기반으로 콘텐츠를 캐싱하지 않습니다. 선택한 옵션에 관계없이 배포는 구체적인 헤더를 오리진으로 전달하고 전달한 헤더를 기반으로 특정 작업을 수행합니다.

쿠키 전달

배포에서 쿠키를 오리진에 전달할지 여부와 전달할 경우 어떤 쿠키를 전달할지 제어합니다. 쿠키에는 방문자의 이름 및 관심사와 같은 방문자가 제공한 정보뿐만 아니라 오리진의 웹 페이지에서 방문자가 보인 행동에 대한 정보처럼 오리진으로 전송된 작은 데이터 조각이 포함됩니다.

배포에 대해 다음 쿠키 전달 옵션 중 하나를 선택할 수 있습니다.

  • 쿠키 전달 안 함(Don't forward cookies)

  • 모든 쿠키 전달(Forward all cookies)

  • 지정한 쿠키 전달(Forward cookies I specify)

모든 쿠키 전달(Forward all cookies)을 선택하는 경우 배포에서는 애플리케이션에서 사용하는 쿠키 수와 관계없이 모든 쿠키를 전달합니다. 지정한 쿠키 전달(Forward cookies I specify)을 선택한 경우 표시되는 텍스트 상자에 배포에서 전달할 쿠키의 이름을 입력합니다. 쿠키 이름을 지정할 때 다음 와일드카드 기호를 지정할 수 있습니다.

  • *는 쿠키 이름의 0개 이상의 문자에 해당합니다.

  • ?는 쿠키 이름의 정확히 1문자에 해당합니다.

예를 들어, userid_member-number라는 이름의 쿠키가 포함된 객체에 대한 최종 사용자 요청을 가정해 봅니다. 각각의 사용자는 member-number(userid_123, userid_124, userid_125 등)에 대한 고유한 값을 갖습니다. 이 경우에는 배포에서 구성원별로 개별 콘텐츠 버전을 캐싱하려 합니다. 모든 쿠키를 오리진에 전달하여 이를 달성할 수는 있지만, 최종 사용자 요청에 배포에서 캐싱하길 원치 않는 쿠키가 일부 포함됩니다. 다음 값을 쿠키 이름으로 지정할 수 있습니다. 이렇게 하면 배포에서 userid_로 시작하는 모든 쿠키를 오리진으로 전달합니다. userid_*

쿼리 문자열 전달

배포에서 쿼리 문자열을 오리진에 전달할지 여부와 전달할 경우 어떤 쿼리 문자열을 전달할지 제어합니다. 쿼리 문자열은 지정된 파라미터에 값을 할당하는 URL의 일부입니다. 예를 들어, https://example.com/over/there?name=ferret URL은 name=ferret 쿼리 문자열을 포함합니다. 서버가 이러한 페이지에 대한 요청을 수신하면 프로그램을 실행하여 name=ferret 쿼리 문자열을 변경하지 않고 프로그램에 전달할 수 있습니다. 물음표는 구분자로 사용되며 쿼리 문자열의 일부를 구성하지 않습니다.

배포에서 쿼리 문자열 없이 전달하거나 지정한 쿼리 문자열만 전달하도록 선택할 수 있습니다. 오리진에서 쿼리 문자열 파라미터 값과 상관없이 동일한 콘텐츠 버전을 반환할 경우 쿼리 문자열을 전달하지 않도록 선택합니다. 이렇게 하면 배포에서 캐시로부터 요청을 제공할 수 있는 가능성을 높이고, 그에 따라 성능이 향상되고 오리진에 걸리는 부하가 줄어듭니다. 오리진 서버에서 하나 이상의 쿼리 문자열 파라미터를 기준으로 다른 콘텐츠 버전을 반환할 경우 지정한 쿼리 문자열만 전달하도록 선택합니다.

배포의 캐시 동작 변경

배포의 기본 캐시 동작을 변경하려면 다음 절차를 수행하세요.

  1. Lightsail 콘솔에 로그인합니다.

  2. 왼쪽 탐색 창에서 네트워킹을 선택합니다.

  3. 기본 캐시 동작을 변경하려는 배포의 이름을 선택합니다.

  4. 배포의 관리 페이지에서 캐시(Cache) 탭을 선택합니다.

  5. 페이지의 캐싱 구성(Configure caching) 섹션에서 배포의 캐싱 사전 설정을 선택합니다. 자세한 정보는 캐싱 사전 설정을 참조하세요.

  6. 기본 캐시 동작 변경(Change default cache behavior)을 선택하여 배포에 대한 기본 동작을 변경합니다. 그런 다음 배포에 대한 기본 동작을 선택합니다. 자세한 내용은 기본 동작을 참조하세요.

  7. 경로 추가(Add path)를 선택하여 배포의 캐싱 동작에 디렉터리 및 파일 재정의를 추가합니다. 자세한 내용은 디렉터리 및 파일 재정의를 참조하세요.

  8. 배포에 대해 편집할 고급 설정 옆에 표시된 연필 아이콘을 선택합니다. 자세한 내용은 고급 캐시 설정을 참조하세요.

배포 구성에 대한 변경 내용을 저장하면 배포에서 이러한 변경 내용을 모든 엣지 로케이션으로 전파하기 시작합니다. 구성이 엣지 로케이션에서 업데이트될 때까지 배포는 이전 구성에 따라 해당 위치에서 콘텐츠를 계속 제공합니다. 구성이 엣지 로케이션에서 업데이트된 후에는 배포가 즉시 새 구성에 따라 해당 위치에서 콘텐츠를 제공하기 시작합니다.

변경 내용이 모든 엣지 로케이션으로 즉시 전파되지는 않습니다. 전파가 완료되면 배포의 상태가 진행 중(InProgress)에서 사용(Enabled)으로 변경됩니다. 배포가 변경 내용을 전파하고 있는 동안은 지정된 엣지 로케이션이 이전 구성과 새 구성 중 어느 것에 기초하여 콘텐츠를 제공하는지 확인할 수 없습니다.