Azure Content Delivery Network를 통한 동적 사이트 가속

소셜 미디어소셜 미디어, 전자 상거래 및 하이퍼 개인 설정 웹의 폭발적 증가로 인해 최종 사용자에게 제공되는 콘텐츠의 증가율도 실시간으로 빠르게 성장합니다. 사용자는 브라우저, 위치, 디바이스 또는 네트워크와 독립된 빠르고 안정적인 개인 설정 웹 환경을 기대합니다. 그러나 이러한 환경을 구성하는 매우 혁신적인 기능도 페이지 다운로드 속도를 저하시키고 소비자 환경의 품질을 위험에 노출합니다.

표준 콘텐츠 배달 네트워크 기능에는 정적 파일 배달 속도를 높이기 위해 최종 사용자에게 가까운 파일을 캐시하는 기능이 포함됩니다. 그러나 동적 웹 애플리케이션에서 서버가 사용자 동작에 대한 응답으로 콘텐츠를 생성하기 때문에 에지 위치에 해당 콘텐츠를 캐싱할 수 없습니다. 이러한 콘텐츠의 배달 속도를 향상시키는 작업은 기존의 에지 캐싱보다 더 복잡하고 배달할 전체 데이터 경로에 있는 각 요소를 처음부터 세밀하게 조정하는 엔드투엔드 솔루션이 필요합니다. Azure Content Delivery Network DSA(동적 사이트 가속) 최적화를 사용하면 동적 콘텐츠가 있는 웹 페이지의 성능이 크게 향상됩니다.

Edgio의 Azure CDN은 엔드포인트 만드는 동안 최적화 대상 메뉴를 통해 DSA 최적화를 제공합니다. Microsoft의 동적 사이트 가속은 Azure Front Door를 통해 제공됩니다.

Important

Edgio 프로필의 Azure CDN의 경우 콘텐츠 배달 네트워크 엔드포인트를 만든 후에는 최적화를 변경할 수 없습니다.

동적 파일 배달을 가속화하기 위한 콘텐츠 배달 네트워크 엔드포인트 구성

동적 파일 배달을 최적화하도록 콘텐츠 배달 네트워크 엔드포인트를 구성하려면 Azure Portal, REST API 또는 클라이언트 SDK를 사용하여 프로그래밍 방식으로 동일한 작업을 수행할 수 있습니다.

Azure Portal을 사용하여 DSA 최적화를 위해 CDN 엔드포인트를 구성하려면:

  1. CDN 프로필 페이지에서 엔드포인트를 선택합니다.

    새 콘텐츠 배달 네트워크 엔드포인트를 추가하는 스크린샷.

    엔드포인트 추가 창이 나타납니다.

  2. 최적화 목표에서 동적 사이트 가속을 선택합니다.

    DSA를 사용하여 새 콘텐츠 배달 네트워크 엔드포인트를 만드는 스크린샷

  3. 프로브 경로의 경우 파일에 올바른 경로를 입력합니다.

    프로브 경로는 DSA에 지정된 기능이고 생성을 위해 유효한 경로가 필요합니다. DSA는 원본 서버에 배치된 작은 프로브 경로 파일을 사용하여 콘텐츠 배달 네트워크에 대한 네트워크 라우팅 구성을 최적화합니다. 프로브 경로 파일의 경우 사이트에 샘플 파일을 다운로드하고 업로드하거나 크기가 약 10KB인 원본의 기존 자산을 사용할 수 있습니다.

  4. 필요한 다른 엔드포인트 옵션(자세한 내용은 새 콘텐츠 배달 네트워크 엔드포인트 만들기 참조)을 입력한 다음 추가를 선택합니다.

    콘텐츠 배달 네트워크 엔드포인트를 만든 후에는 특정 조건과 일치하는 모든 파일에 대해 DSA 최적화를 적용합니다.

Azure Content Delivery Network를 사용한 DSA 최적화

Azure Content Delivery Network의 동적 사이트 가속은 다음 기술을 사용하여 동적 자산의 배달 속도를 향상합니다.

경로 최적화

인터넷이 매우 동적이기 때문에 경로 최적화가 중요합니다. 여기서 트래픽 및 일시적인 중단은 지속적으로 네트워크 토폴로지를 변경합니다. BGP(Border Gateway Protocol)는 인터넷의 라우팅 프로토콜이지만 POP(중간 지점) 서버를 통해 더 빠른 경로가 있을 수 있습니다.

경로 최적화는 사이트에 계속 액세스할 수 있고 동적 콘텐츠를 가능한 가장 빠르고 가장 안정적인 경로를 통해 최종 사용자에게 배달하도록 원본에 최적인 경로를 선택합니다.

Edgio 네트워크는 Anycast DNS, 고용량 지원 PoP 및 상태 확인의 조합을 사용하여 클라이언트에서 원본으로 데이터를 가장 잘 라우팅하는 최상의 게이트웨이를 결정합니다.

결과적으로 완전히 동적인 트랜잭션 콘텐츠를 캐시할 수 없는 경우에도 보다 빠르고 안정적으로 최종 사용자에게 전달할 수 있습니다.

TCP 최적화

TCP(Transmission Control Protocol)는 IP 네트워크의 애플리케이션 간에 정보를 제공하는 데 사용되는 인터넷 프로토콜 제품군의 표준입니다. 기본적으로 TCP 연결을 설정하려면 여러 양방향 요청이 필요합니다. 또한 네트워크 정체를 방지하기 위한 제한이 있으며, 이로 인해 대규모로 작동할 때 비효율성이 발생할 수 있습니다. Edgio의 Azure CDN은 다음 세 가지 영역을 최적화하여 이 문제를 처리합니다.

TCP 느린 시작 제거

TCP 느린 시작은 네트워크를 통해 전송되는 데이터 양을 제한하여 네트워크 정체를 방지하는 TCP 프로토콜의 알고리즘입니다. 이 기능은 최대값에 도달하거나 패킷 손실이 감지될 때까지 먼저 발신자와 수신자 사이의 작은 정체 창 크기로 시작합니다.

Edgio의 Azure CDN 프로필은 다음 세 단계를 통해 TCP 느린 시작을 제거합니다.

  1. 상태 및 대역폭 모니터링은 에지 POP 서버 간의 연결 대역폭을 측정하는 데 사용됩니다.

  2. 메트릭은 에지 POP 서버 간에 공유되므로 각 서버는 주위의 다른 PO의 네트워크 상태 및 서버 상태를 인식합니다.

  3. 콘텐츠 배달 네트워크 에지 서버는 근접한 다른 콘텐츠 배달 네트워크 에지 서버와 통신할 때 최적의 창 크기가 무엇인지와 같은 일부 전송 매개 변수를 가정합니다. 이 단계는 콘텐츠 배달 네트워크 에지 서버 간의 연결 상태가 더 높은 패킷 데이터 전송이 가능한 경우 초기 정체 기간 크기를 늘릴 수 있음을 의미합니다.

영구 연결 사용

콘텐츠 배달 네트워크를 사용하는 경우 원본에 직접 연결하는 사용자에 비해 원본 서버에 직접 연결하는 고유 컴퓨터 수가 줄어듭니다. 또한 Azure Content Delivery Network는 사용자 요청을 함께 풀하여 원본과의 연결 수를 줄입니다.

위에서 언급한 대로 몇몇 핸드셰이크 요청은 TCP 연결을 설정해야 합니다. Keep-Alive HTTP 헤더에서 구현하는 영구 연결은 여러 HTTP 요청에 기존 TCP 연결을 다시 사용하여 왕복 시간을 저장하고 배달 속도를 향상시킵니다.

또한 Edgio의 Azure CDN은 TCP 연결을 통해 정기적인 연결 유지 패킷을 보내서 열린 연결이 닫히지 않게 방지합니다.

캐싱

DSA를 사용하면 원본이 응답에 포함되거나 Expires 헤더가 있는 Cache-Control 경우에도 기본적으로 콘텐츠 배달 네트워크에서 캐싱이 해제됩니다. DSA는 각 클라이언트에 고유하기 때문에 캐시되지 않아야 하는 동적 자산에 일반적으로 사용됩니다. 캐싱은 이 동작을 손상시킬 수 있습니다.

고정 자산과 동적 자산이 혼합된 웹 사이트가 있는 경우 최상의 성능을 얻기 위해서는 하이브리드 접근 방식을 취하는 것이 가장 좋습니다.

Edgio의 Azure CDN Standard 프로필을 사용하면 캐싱 규칙을 사용하여 특정 DSA 엔드포인트에 대한 캐싱을 설정할 수 있습니다.

캐싱 규칙에 액세스하려면

  1. CDN 프로필 페이지의 설정 아래에서 캐싱 규칙을 선택합니다.

    콘텐츠 배달 네트워크 캐싱 규칙 단추의 스크린샷

    캐싱 규칙 페이지가 열립니다.

  2. DSA 엔드포인트에 대한 캐싱을 설정하려면 전역 또는 사용자 지정 캐싱 규칙을 만듭니다.

Edgio의 Azure CDN Premium 프로필의 경우에만 규칙 엔진을 사용하여 특정 DSA 엔드포인트에 대한 캐싱을 설정합니다. 생성되는 모든 규칙은 DSA에 최적화된 프로필의 해당 엔드포인트에만 영향을 줍니다.

규칙 엔진에 액세스하려면

  1. CDN 프로필 페이지에서 관리를 선택합니다.

    콘텐츠 배달 네트워크 프로필 관리 단추의 스크린샷

    콘텐츠 배달 네트워크 관리 포털이 열립니다.

  2. 콘텐츠 배달 네트워크 관리 포털에서 ADN을 선택한 다음, 규칙 엔진을 선택합니다.

    DSA에 대한 규칙 엔진

또는 DSA로 최적화된 엔드포인트와 일반 웹 배달과 같은 정적 최적화 형식으로 최적화된 다른 엔드포인트를 캐시 가능한 자산 배달에 제공하는 두 개의 콘텐츠 배달 네트워크 엔드포인트를 사용할 수 있습니다. 사용하려는 콘텐츠 배달 네트워크 엔드포인트의 자산에 직접 연결하도록 웹 페이지 URL을 수정합니다.

예를 들어 mydynamic.azureedge.net/index.html은 동적 페이지이고 DSA 엔드포인트에서 로드됩니다. HTML 페이지는 JavaScript 라이브러리 또는 정적 콘텐츠 배달 네트워크 엔드포인트에서 로드되는 이미지와 같은 여러 정적 자산(예: mystatic.azureedge.net/banner.jpgmystatic.azureedge.net/scripts.js)을 참조합니다.